Merge "Installation routine for rust is similar to that of cc" am: 4af0d002a5

Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1843014

Change-Id: Ib91d4b5b895d650856ffeb03576636431d37466a
This commit is contained in:
Treehugger Robot
2021-10-12 00:21:22 +00:00
committed by Automerger Merge Worker

View File

@@ -130,9 +130,10 @@ type BaseProperties struct {
// Minimum sdk version that the artifact should support when it runs as part of mainline modules(APEX).
Min_sdk_version *string
PreventInstall bool
HideFromMake bool
Installable *bool
HideFromMake bool `blueprint:"mutated"`
PreventInstall bool `blueprint:"mutated"`
Installable *bool
}
type Module struct {
@@ -177,8 +178,8 @@ func (mod *Module) SetHideFromMake() {
mod.Properties.HideFromMake = true
}
func (c *Module) HiddenFromMake() bool {
return c.Properties.HideFromMake
func (mod *Module) HiddenFromMake() bool {
return mod.Properties.HideFromMake
}
func (mod *Module) SanitizePropDefined() bool {
@@ -526,10 +527,6 @@ func (mod *Module) PreventInstall() bool {
return mod.Properties.PreventInstall
}
func (mod *Module) HideFromMake() {
mod.Properties.HideFromMake = true
}
func (mod *Module) MarkAsCoverageVariant(coverage bool) {
mod.coverage.Properties.IsCoverageVariant = coverage
}
@@ -898,8 +895,24 @@ func (mod *Module) GenerateAndroidBuildActions(actx android.ModuleContext) {
}
apexInfo := actx.Provider(android.ApexInfoProvider).(android.ApexInfo)
if mod.installable(apexInfo) {
if !proptools.BoolDefault(mod.Installable(), mod.EverInstallable()) {
// If the module has been specifically configure to not be installed then
// hide from make as otherwise it will break when running inside make as the
// output path to install will not be specified. Not all uninstallable
// modules can be hidden from make as some are needed for resolving make
// side dependencies.
mod.HideFromMake()
} else if !mod.installable(apexInfo) {
mod.SkipInstall()
}
// Still call install though, the installs will be stored as PackageSpecs to allow
// using the outputs in a genrule.
if mod.OutputFile().Valid() {
mod.compiler.install(ctx)
if ctx.Failed() {
return
}
}
ctx.Phony("rust", ctx.RustModule().OutputFile().Path())