diff --git a/android/defaults.go b/android/defaults.go index 0953f9505..5677638b7 100644 --- a/android/defaults.go +++ b/android/defaults.go @@ -92,6 +92,7 @@ func InitDefaultableModule(module DefaultableModule) { if module.base().module == nil { panic("InitAndroidModule must be called before InitDefaultableModule") } + module.setProperties(module.GetProperties(), module.base().variableProperties) module.AddProperties(module.defaults()) @@ -118,6 +119,11 @@ type DefaultsVisibilityProperties struct { type DefaultsModuleBase struct { DefaultableModuleBase + + // Included to support setting bazel_module.label for multiple Soong modules to the same Bazel + // target. This is primarily useful for modules that were architecture specific and instead are + // handled in Bazel as a select(). + BazelModuleBase } // The common pattern for defaults modules is to register separate instances of @@ -160,6 +166,7 @@ func (d *DefaultsModuleBase) isDefaults() bool { type DefaultsModule interface { Module Defaults + Bazelable } func (d *DefaultsModuleBase) properties() []interface{} { @@ -170,8 +177,7 @@ func (d *DefaultsModuleBase) productVariableProperties() interface{} { return d.defaultableVariableProperties } -func (d *DefaultsModuleBase) GenerateAndroidBuildActions(ctx ModuleContext) { -} +func (d *DefaultsModuleBase) GenerateAndroidBuildActions(ctx ModuleContext) {} // ConvertWithBp2build to fulfill Bazelable interface; however, at this time defaults module are // *NOT* converted with bp2build @@ -186,6 +192,8 @@ func InitDefaultsModule(module DefaultsModule) { &ApexProperties{}, &distProperties{}) + // Bazel module must be initialized _before_ Defaults to be included in cc_defaults module. + InitBazelModule(module) initAndroidModuleBase(module) initProductVariableModule(module) initArchModule(module) diff --git a/cc/cc.go b/cc/cc.go index 5c4edb94d..215ef9c91 100644 --- a/cc/cc.go +++ b/cc/cc.go @@ -3496,10 +3496,6 @@ func (c *Module) ConvertWithBp2build(ctx android.TopDownMutatorContext) { type Defaults struct { android.ModuleBase android.DefaultsModuleBase - // Included to support setting bazel_module.label for multiple Soong modules to the same Bazel - // target. This is primarily useful for modules that were architecture specific and instead are - // handled in Bazel as a select(). - android.BazelModuleBase android.ApexModuleBase } @@ -3547,8 +3543,6 @@ func DefaultsFactory(props ...interface{}) android.Module { &prebuiltLinkerProperties{}, ) - // Bazel module must be initialized _before_ Defaults to be included in cc_defaults module. - android.InitBazelModule(module) android.InitDefaultsModule(module) return module