Merge "Make installable arch-variant and static vs shared variant for cc modules"

This commit is contained in:
Colin Cross
2021-10-30 04:56:22 +00:00
committed by Gerrit Code Review
3 changed files with 21 additions and 3 deletions

View File

@@ -325,7 +325,7 @@ type BaseProperties struct {
SnapshotStaticLibs []string `blueprint:"mutated"`
SnapshotRuntimeLibs []string `blueprint:"mutated"`
Installable *bool
Installable *bool `android:"arch_variant"`
// Set by factories of module types that can only be referenced from variants compiled against
// the SDK.
@@ -1865,7 +1865,7 @@ func (c *Module) maybeUnhideFromMake() {
}
func (c *Module) maybeInstall(ctx ModuleContext, apexInfo android.ApexInfo) {
if !proptools.BoolDefault(c.Properties.Installable, true) {
if !proptools.BoolDefault(c.Installable(), true) {
// 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
@@ -3260,6 +3260,11 @@ func (c *Module) PreventInstall() bool {
}
func (c *Module) Installable() *bool {
if c.library != nil {
if i := c.library.installable(); i != nil {
return i
}
}
return c.Properties.Installable
}

View File

@@ -123,7 +123,7 @@ func IsValidSharedDependency(dependency android.Module) bool {
}
// Discard installable:false libraries because they are expected to be absent
// in runtime.
if !proptools.BoolDefault(ccLibrary.Properties.Installable, true) {
if !proptools.BoolDefault(ccLibrary.Installable(), true) {
return false
}
}

View File

@@ -159,6 +159,8 @@ type StaticOrSharedProperties struct {
Export_static_lib_headers []string `android:"arch_variant"`
Apex_available []string `android:"arch_variant"`
Installable *bool `android:"arch_variant"`
}
type LibraryMutatedProperties struct {
@@ -1048,6 +1050,8 @@ type libraryInterface interface {
availableFor(string) bool
getAPIListCoverageXMLPath() android.ModuleOutPath
installable() *bool
}
type versionedInterface interface {
@@ -1972,6 +1976,15 @@ func (library *libraryDecorator) availableFor(what string) bool {
return android.CheckAvailableForApex(what, list)
}
func (library *libraryDecorator) installable() *bool {
if library.static() {
return library.StaticProperties.Static.Installable
} else if library.shared() {
return library.SharedProperties.Shared.Installable
}
return nil
}
func (library *libraryDecorator) makeUninstallable(mod *Module) {
if library.static() && library.buildStatic() && !library.buildStubs() {
// If we're asked to make a static library uninstallable we don't do