commit | ada2e524a9f005fe4f3316e7eddbb437e8f68336 | [log] [tgz] |
---|---|---|
author | Pieter Agten <Pagten@users.noreply.github.com> | Fri Jun 07 17:23:46 2024 +0200 |
committer | GitHub <noreply@github.com> | Fri Jun 07 15:23:46 2024 +0000 |
tree | b91f517049ab922b78430dbe60a551cd795777c6 | |
parent | 837b7f892a9dbe71e23dd736f46c96774ffe1a2a [diff] |
[Bugfix] Convert metadata keys to screaming snake case instead of screaming kebab case in `cargo_build_script_runner` (#2682) The `cargo_build_script_runner` currently converts the keys from `cargo:KEY=VALUE` metadata build script output lines into uppercase. This is not completely correct, however, because Cargo converts those keys to uppercase AND replaces dashes with underscores (effectively doing a conversion to SCREAMING_SNAKE_CASE). To verify that Cargo is indeed doing the dash-to-underscore conversion, have a look at https://github.com/rust-lang/cargo/blob/10b7d384352f6d9a39f609de44476f815fc792a2/src/cargo/core/compiler/custom_build.rs#L46, which is the code responsible for building the `DEP_{crate-name}_{metadata-key}` env variables in Cargo. The code is ```rust cmd.env( &format!("DEP_{}_{}", super::envify(&name), super::envify(key)), value, ); ``` where `super::envify()` is defined as ```rust fn envify(s: &str) -> String { s.chars() .flat_map(|c| c.to_uppercase()) .map(|c| if c == '-' { '_' } else { c }) .collect() } ``` This PR adds the dash-to-underscore conversion to `cargo_build_script_runner`.
This repository provides rules for building Rust projects with Bazel.
General discussions and announcements take place in the GitHub Discussions, but there are additional places where community members gather to discuss rules_rust
.
Please refer to the full documentation.