diff options
author | 2021-08-11 15:13:43 -0400 | |
---|---|---|
committer | 2021-08-12 13:18:34 +0000 | |
commit | a9a1fc07473ef512d3ae84f4c368d5e3752649e6 (patch) | |
tree | ac0cf93ba8ff5cd24488b7eb500b2356885a16f5 /rust/builder.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/builder.go')
-rw-r--r-- | rust/builder.go | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/rust/builder.go b/rust/builder.go index a5b3ab9de..426a569bf 100644 --- a/rust/builder.go +++ b/rust/builder.go @@ -269,6 +269,17 @@ func transformSrctoCrate(ctx ModuleContext, main android.Path, deps PathDeps, fl envVars = append(envVars, "ANDROID_RUST_VERSION="+config.RustDefaultVersion) + if ctx.RustModule().compiler.CargoEnvCompat() { + if _, ok := ctx.RustModule().compiler.(*binaryDecorator); ok { + envVars = append(envVars, "CARGO_BIN_NAME="+strings.TrimSuffix(outputFile.Base(), outputFile.Ext())) + } + envVars = append(envVars, "CARGO_CRATE_NAME="+ctx.RustModule().CrateName()) + pkgVersion := ctx.RustModule().compiler.CargoPkgVersion() + if pkgVersion != "" { + envVars = append(envVars, "CARGO_PKG_VERSION="+pkgVersion) + } + } + if flags.Clippy { clippyFile := android.PathForModuleOut(ctx, outputFile.Base()+".clippy") ctx.Build(pctx, android.BuildParams{ |