diff options
author | 2021-08-11 15:13:43 -0400 | |
---|---|---|
committer | 2021-08-12 13:18:34 +0000 | |
commit | a9a1fc07473ef512d3ae84f4c368d5e3752649e6 (patch) | |
tree | ac0cf93ba8ff5cd24488b7eb500b2356885a16f5 /rust/compiler.go | |
parent | adffbe9166d8740083e245f179a9e9eb705b3837 (diff) |
rust: Add support to emit certain Cargo env vars.
Some crates expect Cargo to provide certain environment variables. This
CL adds a compatability flag that emulates the behavior of Cargo by
setting these environment variables when building.
Bug: 171011485
Test: New soong tests pass
Test: quiche no longer requires patch removing CARGO_PKG_VERSION
Change-Id: I4c95c284846f6075428c6f61fe8c260f2e35fbd9
Diffstat (limited to 'rust/compiler.go')
-rw-r--r-- | rust/compiler.go | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/rust/compiler.go b/rust/compiler.go index de59f39ac..6b3ccfcfa 100644 --- a/rust/compiler.go +++ b/rust/compiler.go @@ -154,6 +154,14 @@ type BaseCompilerProperties struct { // linkage if all dependencies of the root binary module do not link against libstd\ // the same way. Prefer_rlib *bool `android:"arch_variant"` + + // Enables emitting certain Cargo environment variables. Only intended to be used for compatibility purposes. + // Will set CARGO_CRATE_NAME to the crate_name property's value. + // Will set CARGO_BIN_NAME to the output filename value without the extension. + Cargo_env_compat *bool + + // If cargo_env_compat is true, sets the CARGO_PKG_VERSION env var to this value. + Cargo_pkg_version *string } type baseCompiler struct { @@ -309,6 +317,14 @@ func (compiler *baseCompiler) CargoOutDir() android.OptionalPath { return android.OptionalPathForPath(compiler.cargoOutDir) } +func (compiler *baseCompiler) CargoEnvCompat() bool { + return Bool(compiler.Properties.Cargo_env_compat) +} + +func (compiler *baseCompiler) CargoPkgVersion() string { + return String(compiler.Properties.Cargo_pkg_version) +} + func (compiler *baseCompiler) strippedOutputFilePath() android.OptionalPath { return compiler.strippedOutputFile } |