Add a build setting to announce crate scope #3408
Open
+186
−31
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This build setting is not used internally, but provides a way for (transitive) dependencies to be aware that they are being compiled for a rust crate.
A transition is added to all rust rules, which sets the build setting to one of either:
regular
orproc_macro
. A third valuenone
is provided as a default for targets outside of the (transitive) scope of any rust crates. The change also adds 3config_setting
s, one for each value of the build setting, to provideExamples of complex scenarios enabled by this change:
mac-x86_64
toolchain onmac-aarch64
platforms (with Rosetta) - everything (including host tools) is compiled for aarch64 whileproc_macro
s must be compiled for x86_64.cc_library
linked to both acc_binary
and arust_binary
, but needs slightly different build flags when used for rust crates.