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). // Minimum sdk version that the artifact should support when it runs as part of mainline modules(APEX).
Min_sdk_version *string Min_sdk_version *string
PreventInstall bool HideFromMake bool `blueprint:"mutated"`
HideFromMake bool PreventInstall bool `blueprint:"mutated"`
Installable *bool
Installable *bool
} }
type Module struct { type Module struct {
@@ -177,8 +178,8 @@ func (mod *Module) SetHideFromMake() {
mod.Properties.HideFromMake = true mod.Properties.HideFromMake = true
} }
func (c *Module) HiddenFromMake() bool { func (mod *Module) HiddenFromMake() bool {
return c.Properties.HideFromMake return mod.Properties.HideFromMake
} }
func (mod *Module) SanitizePropDefined() bool { func (mod *Module) SanitizePropDefined() bool {
@@ -526,10 +527,6 @@ func (mod *Module) PreventInstall() bool {
return mod.Properties.PreventInstall return mod.Properties.PreventInstall
} }
func (mod *Module) HideFromMake() {
mod.Properties.HideFromMake = true
}
func (mod *Module) MarkAsCoverageVariant(coverage bool) { func (mod *Module) MarkAsCoverageVariant(coverage bool) {
mod.coverage.Properties.IsCoverageVariant = coverage mod.coverage.Properties.IsCoverageVariant = coverage
} }
@@ -898,8 +895,24 @@ func (mod *Module) GenerateAndroidBuildActions(actx android.ModuleContext) {
} }
apexInfo := actx.Provider(android.ApexInfoProvider).(android.ApexInfo) 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) mod.compiler.install(ctx)
if ctx.Failed() {
return
}
} }
ctx.Phony("rust", ctx.RustModule().OutputFile().Path()) ctx.Phony("rust", ctx.RustModule().OutputFile().Path())