diff --git a/cargo/private/cargo_build_script.bzl b/cargo/private/cargo_build_script.bzl index bce74b9510..23f49b2cf1 100644 --- a/cargo/private/cargo_build_script.bzl +++ b/cargo/private/cargo_build_script.bzl @@ -391,7 +391,6 @@ def _cargo_build_script_impl(ctx): env.update({ "CARGO_CRATE_NAME": name_to_crate_name(pkg_name), "CARGO_MANIFEST_DIR": manifest_dir, - "CARGO_PKG_NAME": pkg_name, "HOST": toolchain.exec_triple.str, "NUM_JOBS": "1", "OPT_LEVEL": compilation_mode_opt_level, @@ -406,15 +405,6 @@ def _cargo_build_script_impl(ctx): "PROFILE": {"dbg": "debug", "fastbuild": "debug", "opt": "release"}.get(ctx.var["COMPILATION_MODE"], "unknown"), }) - if ctx.attr.version: - version = ctx.attr.version.split("+")[0].split(".") - patch = version[2].split("-") if len(version) > 2 else [""] - env["CARGO_PKG_VERSION_MAJOR"] = version[0] - env["CARGO_PKG_VERSION_MINOR"] = version[1] if len(version) > 1 else "" - env["CARGO_PKG_VERSION_PATCH"] = patch[0] - env["CARGO_PKG_VERSION_PRE"] = patch[1] if len(patch) > 1 else "" - env["CARGO_PKG_VERSION"] = ctx.attr.version - # Pull in env vars which may be required for the cc_toolchain to work (e.g. on OSX, the SDK version). # We hope that the linker env is sufficient for the whole cc_toolchain. cc_toolchain, feature_configuration = find_cc_toolchain(ctx) diff --git a/cargo/private/cargo_build_script_wrapper.bzl b/cargo/private/cargo_build_script_wrapper.bzl index a7295b80d1..4aadf2c3bb 100644 --- a/cargo/private/cargo_build_script_wrapper.bzl +++ b/cargo/private/cargo_build_script_wrapper.bzl @@ -145,8 +145,6 @@ def cargo_build_script( pkg_name = name_to_pkg_name(name) rustc_env = dict(rustc_env) - if "CARGO_PKG_NAME" not in rustc_env: - rustc_env["CARGO_PKG_NAME"] = pkg_name if "CARGO_CRATE_NAME" not in rustc_env: rustc_env["CARGO_CRATE_NAME"] = name_to_crate_name(name_to_pkg_name(name)) diff --git a/crate_universe/BUILD.bazel b/crate_universe/BUILD.bazel index 3f8a594dfc..b54f23f354 100644 --- a/crate_universe/BUILD.bazel +++ b/crate_universe/BUILD.bazel @@ -1,7 +1,12 @@ load("@bazel_skylib//:bzl_library.bzl", "bzl_library") load("@cui//:defs.bzl", "aliases", "all_crate_deps") load("@rules_rust//rust:defs.bzl", "rust_binary", "rust_doc", "rust_doc_test", "rust_library", "rust_test") -load("//crate_universe:version.bzl", "VERSION") +load("//cargo:defs.bzl", "cargo_toml_env_vars") + +cargo_toml_env_vars( + name = "cargo_toml_env_vars", + src = "Cargo.toml", +) exports_files( glob([ @@ -72,7 +77,7 @@ rust_library( # for more information). Set stamp = -1 to indicate that it should respect # the value of the --stamp commandline flag. stamp = -1, - version = VERSION, + rustc_env_files = [":cargo_toml_env_vars"], visibility = ["//visibility:public"], deps = all_crate_deps(normal = True), ) @@ -81,7 +86,6 @@ rust_binary( name = "cargo_bazel_bin", srcs = ["src/main.rs"], edition = "2021", - version = VERSION, visibility = ["//visibility:public"], deps = [":cargo_bazel"], ) @@ -156,6 +160,8 @@ rust_test( ), ) +# TODO(zbarsky): At this point version.bzl only exists to trigger `cargo_bazel_release` GH workflow. +# Consider swapping that to the main repo's `version.bzl` and remove this. rust_test( name = "versions_test", srcs = ["tests/version_test.rs"], diff --git a/rust/private/rustc.bzl b/rust/private/rustc.bzl index 105352a8b8..62c44f704e 100644 --- a/rust/private/rustc.bzl +++ b/rust/private/rustc.bzl @@ -140,26 +140,10 @@ def _get_rustc_env(attr, toolchain, crate_name): Returns: dict: Rustc environment variables """ - version = attr.version if hasattr(attr, "version") else "0.0.0" - major, minor, patch = version.split(".", 2) - if "-" in patch: - patch, pre = patch.split("-", 1) - else: - pre = "" - result = { "CARGO_CFG_TARGET_ARCH": "" if toolchain.target_arch == None else toolchain.target_arch, "CARGO_CFG_TARGET_OS": "" if toolchain.target_os == None else toolchain.target_os, "CARGO_CRATE_NAME": crate_name, - "CARGO_PKG_AUTHORS": "", - "CARGO_PKG_DESCRIPTION": "", - "CARGO_PKG_HOMEPAGE": "", - "CARGO_PKG_NAME": attr.name, - "CARGO_PKG_VERSION": version, - "CARGO_PKG_VERSION_MAJOR": major, - "CARGO_PKG_VERSION_MINOR": minor, - "CARGO_PKG_VERSION_PATCH": patch, - "CARGO_PKG_VERSION_PRE": pre, } if hasattr(attr, "_is_proc_macro_dep_enabled") and attr._is_proc_macro_dep_enabled[IsProcMacroDepEnabledInfo].enabled: is_proc_macro_dep = "0" diff --git a/test/build_env/src/build.rs b/test/build_env/src/build.rs index 654572a2be..8801398668 100644 --- a/test/build_env/src/build.rs +++ b/test/build_env/src/build.rs @@ -1,8 +1,4 @@ fn main() { - println!( - "cargo:rustc-env=CARGO_PKG_NAME_FROM_BUILD_SCRIPT={}", - env!("CARGO_PKG_NAME") - ); println!( "cargo:rustc-env=CARGO_CRATE_NAME_FROM_BUILD_SCRIPT={}", env!("CARGO_CRATE_NAME") diff --git a/test/build_env/tests/cargo.rs b/test/build_env/tests/cargo.rs index 2c9d244c2a..630918a0f0 100644 --- a/test/build_env/tests/cargo.rs +++ b/test/build_env/tests/cargo.rs @@ -1,11 +1,6 @@ #[test] fn cargo_env_vars() { - assert_eq!(env!("CARGO_PKG_NAME"), "cargo_env-vars_test"); assert_eq!(env!("CARGO_CRATE_NAME"), "cargo_env_vars_test"); - assert_eq!( - env!("CARGO_PKG_NAME_FROM_BUILD_SCRIPT"), - "cargo_build_script_env-vars" - ); assert_eq!( env!("CARGO_CRATE_NAME_FROM_BUILD_SCRIPT"), "cargo_build_script_env_vars" diff --git a/test/build_env/tests/custom_crate_name.rs b/test/build_env/tests/custom_crate_name.rs index e80bd89983..ef43a8b2df 100644 --- a/test/build_env/tests/custom_crate_name.rs +++ b/test/build_env/tests/custom_crate_name.rs @@ -1,8 +1,4 @@ #[test] fn cargo_env_vars() { - assert_eq!( - env!("CARGO_PKG_NAME"), - "cargo-env-vars-custom-crate-name-test" - ); assert_eq!(env!("CARGO_CRATE_NAME"), "custom_crate_name"); }