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:
33
rust/rust.go
33
rust/rust.go
@@ -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())
|
||||||
|
Reference in New Issue
Block a user