Merge changes from topic "variational-required"
* changes: cc/cc.go: Support per-image-variation "required" android/androidmk.go: Calls *RequiredModuleNames() to get required modules
This commit is contained in:
@@ -486,9 +486,9 @@ func (a *AndroidMkEntries) fillInEntries(ctx fillInEntriesContext, mod blueprint
|
||||
if a.Include == "" {
|
||||
a.Include = "$(BUILD_PREBUILT)"
|
||||
}
|
||||
a.Required = append(a.Required, amod.commonProperties.Required...)
|
||||
a.Host_required = append(a.Host_required, amod.commonProperties.Host_required...)
|
||||
a.Target_required = append(a.Target_required, amod.commonProperties.Target_required...)
|
||||
a.Required = append(a.Required, mod.(Module).RequiredModuleNames()...)
|
||||
a.Host_required = append(a.Host_required, mod.(Module).HostRequiredModuleNames()...)
|
||||
a.Target_required = append(a.Target_required, mod.(Module).TargetRequiredModuleNames()...)
|
||||
|
||||
for _, distString := range a.GetDistForGoals(mod) {
|
||||
fmt.Fprintf(&a.header, distString)
|
||||
|
30
cc/cc.go
30
cc/cc.go
@@ -354,6 +354,24 @@ type BaseProperties struct {
|
||||
// can depend on libraries that are not exported by the APEXes and use private symbols
|
||||
// from the exported libraries.
|
||||
Test_for []string `android:"arch_variant"`
|
||||
|
||||
Target struct {
|
||||
Platform struct {
|
||||
// List of modules required by the core variant.
|
||||
Required []string `android:"arch_variant"`
|
||||
|
||||
// List of modules not required by the core variant.
|
||||
Exclude_required []string `android:"arch_variant"`
|
||||
} `android:"arch_variant"`
|
||||
|
||||
Recovery struct {
|
||||
// List of modules required by the recovery variant.
|
||||
Required []string `android:"arch_variant"`
|
||||
|
||||
// List of modules not required by the recovery variant.
|
||||
Exclude_required []string `android:"arch_variant"`
|
||||
} `android:"arch_variant"`
|
||||
} `android:"arch_variant"`
|
||||
}
|
||||
|
||||
type VendorProperties struct {
|
||||
@@ -865,6 +883,18 @@ func (c *Module) HiddenFromMake() bool {
|
||||
return c.Properties.HideFromMake
|
||||
}
|
||||
|
||||
func (c *Module) RequiredModuleNames() []string {
|
||||
required := android.CopyOf(c.ModuleBase.RequiredModuleNames())
|
||||
if c.ImageVariation().Variation == android.CoreVariation {
|
||||
required = append(required, c.Properties.Target.Platform.Required...)
|
||||
required = removeListFromList(required, c.Properties.Target.Platform.Exclude_required)
|
||||
} else if c.InRecovery() {
|
||||
required = append(required, c.Properties.Target.Recovery.Required...)
|
||||
required = removeListFromList(required, c.Properties.Target.Recovery.Exclude_required)
|
||||
}
|
||||
return android.FirstUniqueStrings(required)
|
||||
}
|
||||
|
||||
func (c *Module) Toc() android.OptionalPath {
|
||||
if c.linker != nil {
|
||||
if library, ok := c.linker.(libraryInterface); ok {
|
||||
|
Reference in New Issue
Block a user