Skip to content

Commit

Permalink
support --action_env vars in build scripts (#447)
Browse files Browse the repository at this point in the history
The existing rustc_env attribute is useful when the provided env var
will not differ between machines, but is not practical when each
user of the build script may require a different value, such as passing
in a custom path to a tool on their machine.

Fixes the issue mentioned in
#314 (comment)
by starting from the default environment.
  • Loading branch information
dae committed Oct 16, 2020
1 parent 1d2ad1f commit b2a482f
Showing 1 changed file with 6 additions and 2 deletions.
8 changes: 6 additions & 2 deletions cargo/cargo_build_script.bzl
Original file line number Diff line number Diff line change
Expand Up @@ -40,15 +40,19 @@ def _build_script_impl(ctx):

cc_toolchain = find_cpp_toolchain(ctx)

env = {
# Start with the default shell env, which contains any --action_env
# settings passed in on the command line.
env = dict(ctx.configuration.default_shell_env)

env.update({
"CARGO_MANIFEST_DIR": manifest_dir,
"CARGO_PKG_NAME": crate_name,
"HOST": toolchain.exec_triple,
"OPT_LEVEL": compilation_mode_opt_level,
"RUSTC": toolchain.rustc.path,
"TARGET": toolchain.target_triple,
# OUT_DIR is set by the runner itself, rather than on the action.
}
})

if ctx.attr.version:
version = ctx.attr.version.split("+")[0].split(".")
Expand Down

0 comments on commit b2a482f

Please sign in to comment.