rust: Add support for more cargo pkg version vars

Add support for CARGO_PKG_VERSION_{MAJOR,MINOR,PATCH}.

Bug: 293602526
Test: m
Test: check build flags for cargo_env_compat module
Change-Id: I6b2796656e3a489cd077c2f42b0bbd04de610ba4
This commit is contained in:
Ivan Lozano 2023-07-28 12:42:20 -04:00
parent 5c2b3e2ea6
commit f445562840

View file

@ -228,6 +228,17 @@ func rustEnvVars(ctx ModuleContext, deps PathDeps) []string {
pkgVersion := ctx.RustModule().compiler.CargoPkgVersion()
if pkgVersion != "" {
envVars = append(envVars, "CARGO_PKG_VERSION="+pkgVersion)
// Ensure the version is in the form of "x.y.z" (approximately semver compliant).
//
// For our purposes, we don't care to enforce that these are integers since they may
// include other characters at times (e.g. sometimes the patch version is more than an integer).
if strings.Count(pkgVersion, ".") == 2 {
var semver_parts = strings.Split(pkgVersion, ".")
envVars = append(envVars, "CARGO_PKG_VERSION_MAJOR="+semver_parts[0])
envVars = append(envVars, "CARGO_PKG_VERSION_MINOR="+semver_parts[1])
envVars = append(envVars, "CARGO_PKG_VERSION_PATCH="+semver_parts[2])
}
}
}