From 416201d081fbb83224c43eb535a1d5ba2921aa0d Mon Sep 17 00:00:00 2001 From: Liz Kammer Date: Wed, 15 Dec 2021 13:18:42 -0500 Subject: [PATCH] Make all defaults modules bazelable Since these are not being converted directly, this has two primary impacts: * defaults modules will no longer appear as unconverted deps. * defaults modules do not have to be marked individually, which should allow all defaults-based soong-config-modules to just convert as necessary. Test: bp2build.sh Change-Id: I44c99d5a51d1887a95c17dfdf956f91af671b2ea --- android/defaults.go | 12 ++++++++++-- cc/cc.go | 6 ------ 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/android/defaults.go b/android/defaults.go index 7b3d38c07..d3a331497 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