Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make it easier to use Rust rules with different versions of Rust #14

Closed
davidzchen opened this issue Jun 29, 2016 · 3 comments
Closed
Assignees

Comments

@davidzchen
Copy link
Member

davidzchen commented Jun 29, 2016

Currently, the version of Rust used by the rules are not easily configurable. We should make it easier to use the Rust rules with different Rust versions, such as via a rust_toolchain rule (similar to cc_toolchain) or look at the approach taken by tools such as multirust.

It would also be good to make it easy to switch between having Bazel download a set of Rust binaries and using the ones installed on the local system.

davidzchen referenced this issue in kythe/kythe Jun 29, 2016
Summary:
Prepping for the implementation of the rust indexer,
this commit sets up bazel builds for rust. Currently it only
builds a hello world program but the project is split into
two different components a library and an executable.

Test Plan:
Run bazel build //kythe/rust/indexer:release. If rust is
present it will build, and //kythe/rust/indexer:test will run the
tests. If rust is not present both will fail and display an error
message.

Reviewers: zarko, schroederc

Reviewed By: schroederc

Projects: #rust

Differential Revision: https://phabricator-dot-kythe-repo.appspot.com/D931
@davidzchen
Copy link
Member Author

+cc @katre

@katre katre self-assigned this Feb 21, 2017
@katre
Copy link
Member

katre commented Feb 21, 2017

I am working on this as part of my ongoing work on Bazel Platform support, so I will take this issue.

@davidzchen
Copy link
Member Author

Sounds awesome. Thanks!

@katre katre closed this as completed in #52 Sep 27, 2017
katre added a commit that referenced this issue Sep 27, 2017
This allows rust targets to only depend on (and thus download) the
toolchains that are used, dynamically chosen based on the current target
platform.

Fixes #14.
acmcarther added a commit to acmcarther/rules_rust that referenced this issue Jan 20, 2018
* Make rule tests compatible with the new string representations in Skylark (bazelbuild#51)

* Rename set to depset (bazelbuild#50)

* Update rules_rust to use Bazel's toolchains feature. (bazelbuild#52)

This allows rust targets to only depend on (and thus download) the
toolchains that are used, dynamically chosen based on the current target
platform.

Fixes bazelbuild#14.

* Sketch of dylib support

* Update compiler toolchain to 1.20.0. (bazelbuild#56)

* Fix transitive dylib support.

* Fix 'data' field not being made available to rust_test rule.

* Topological sort for dylib link flags

* Tidy rpath fn

* Fix linking transitive static libs, and dylib ordering.

* Actually export rust_library.dynamic_libs

* Make sure TMPDIR exists for rustc.

* Properly include dynamic_libs in runfiles.

* fix syntax errors

* more

* Add support for depending on shared libraries on linux.

* Merge raze patches into dylibs branch.

* Fixup merge, including remove broken ctx.file.out_dir_tar from doc_* rules.

* look for native deps when only transitive

* deduplicate rpaths

* hackily fix .so symlink..
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants