Reapply "Make the enabled property configurable"
Previously, I had changed some loadhook-appended property structs
to use selects instead of the "target" property struct. This seems
to not be exactly equivalent because "target" properties are merged
with the regular properties later, at the time the arch mutator runs.
With this reapplication, leave those target property structs alone
to avoid breakages, but I'll have to look into what the issue is
with them later.
This reverts commit ed5276f082
.
Ignore-AOSP-First: This cl needs to be in a topic with internal-only projects, will cherrypick to aosp after.
Bug: 323382414
Test: m nothing --no-skip-soong-tests
Change-Id: If355d24506e3f117d27b21442a6c02bca3402dc7
This commit is contained in:
@@ -509,7 +509,7 @@ func TestAndroidAppImport_ArchVariants(t *testing.T) {
|
||||
|
||||
variant := ctx.ModuleForTests("foo", "android_common")
|
||||
if test.expected == "" {
|
||||
if variant.Module().Enabled() {
|
||||
if variant.Module().Enabled(android.PanickingConfigAndErrorContext(ctx)) {
|
||||
t.Error("module should have been disabled, but wasn't")
|
||||
}
|
||||
rule := variant.MaybeRule("genProvenanceMetaData")
|
||||
@@ -586,7 +586,7 @@ func TestAndroidAppImport_SoongConfigVariables(t *testing.T) {
|
||||
|
||||
variant := ctx.ModuleForTests("foo", "android_common")
|
||||
if test.expected == "" {
|
||||
if variant.Module().Enabled() {
|
||||
if variant.Module().Enabled(android.PanickingConfigAndErrorContext(ctx)) {
|
||||
t.Error("module should have been disabled, but wasn't")
|
||||
}
|
||||
rule := variant.MaybeRule("genProvenanceMetaData")
|
||||
@@ -629,7 +629,7 @@ func TestAndroidAppImport_overridesDisabledAndroidApp(t *testing.T) {
|
||||
if !a.prebuilt.UsePrebuilt() {
|
||||
t.Errorf("prebuilt foo module is not active")
|
||||
}
|
||||
if !a.Enabled() {
|
||||
if !a.Enabled(android.PanickingConfigAndErrorContext(ctx)) {
|
||||
t.Errorf("prebuilt foo module is disabled")
|
||||
}
|
||||
}
|
||||
|
@@ -21,8 +21,8 @@ import (
|
||||
// isActiveModule returns true if the given module should be considered for boot
|
||||
// jars, i.e. if it's enabled and the preferred one in case of source and
|
||||
// prebuilt alternatives.
|
||||
func isActiveModule(module android.Module) bool {
|
||||
if !module.Enabled() {
|
||||
func isActiveModule(ctx android.ConfigAndErrorContext, module android.Module) bool {
|
||||
if !module.Enabled(ctx) {
|
||||
return false
|
||||
}
|
||||
return android.IsModulePreferred(module)
|
||||
|
@@ -127,7 +127,10 @@ func reportMissingVariationDependency(ctx android.BottomUpMutatorContext, variat
|
||||
// added by addDependencyOntoApexModulePair.
|
||||
func gatherApexModulePairDepsWithTag(ctx android.BaseModuleContext, tag blueprint.DependencyTag) []android.Module {
|
||||
var modules []android.Module
|
||||
ctx.VisitDirectDepsIf(isActiveModule, func(module android.Module) {
|
||||
isActiveModulePred := func(module android.Module) bool {
|
||||
return isActiveModule(ctx, module)
|
||||
}
|
||||
ctx.VisitDirectDepsIf(isActiveModulePred, func(module android.Module) {
|
||||
t := ctx.OtherModuleDependencyTag(module)
|
||||
if t == tag {
|
||||
modules = append(modules, module)
|
||||
|
@@ -474,7 +474,7 @@ func (b *BootclasspathFragmentModule) GenerateAndroidBuildActions(ctx android.Mo
|
||||
// Only perform a consistency check if this module is the active module. That will prevent an
|
||||
// unused prebuilt that was created without instrumentation from breaking an instrumentation
|
||||
// build.
|
||||
if isActiveModule(ctx.Module()) {
|
||||
if isActiveModule(ctx, ctx.Module()) {
|
||||
b.bootclasspathFragmentPropertyCheck(ctx)
|
||||
}
|
||||
|
||||
@@ -519,7 +519,7 @@ func (b *BootclasspathFragmentModule) GenerateAndroidBuildActions(ctx android.Mo
|
||||
// empty string if this module should not provide a boot image profile.
|
||||
func (b *BootclasspathFragmentModule) getProfileProviderApex(ctx android.BaseModuleContext) string {
|
||||
// Only use the profile from the module that is preferred.
|
||||
if !isActiveModule(ctx.Module()) {
|
||||
if !isActiveModule(ctx, ctx.Module()) {
|
||||
return ""
|
||||
}
|
||||
|
||||
@@ -590,7 +590,7 @@ func (b *BootclasspathFragmentModule) configuredJars(ctx android.ModuleContext)
|
||||
// So ignore it even if it is not in PRODUCT_APEX_BOOT_JARS.
|
||||
// TODO(b/202896428): Add better way to handle this.
|
||||
_, unknown = android.RemoveFromList("android.car-module", unknown)
|
||||
if isActiveModule(ctx.Module()) && len(unknown) > 0 {
|
||||
if isActiveModule(ctx, ctx.Module()) && len(unknown) > 0 {
|
||||
ctx.ModuleErrorf("%s in contents must also be declared in PRODUCT_APEX_BOOT_JARS", unknown)
|
||||
}
|
||||
}
|
||||
|
@@ -562,7 +562,7 @@ func gatherBootclasspathFragments(ctx android.ModuleContext) map[string]android.
|
||||
return ctx.Config().Once(dexBootJarsFragmentsKey, func() interface{} {
|
||||
fragments := make(map[string]android.Module)
|
||||
ctx.WalkDeps(func(child, parent android.Module) bool {
|
||||
if !isActiveModule(child) {
|
||||
if !isActiveModule(ctx, child) {
|
||||
return false
|
||||
}
|
||||
tag := ctx.OtherModuleDependencyTag(child)
|
||||
@@ -1125,7 +1125,7 @@ func buildBootImageVariant(ctx android.ModuleContext, image *bootImageVariant, p
|
||||
image.unstrippedInstalls = unstrippedInstalls
|
||||
|
||||
// Only set the licenseMetadataFile from the active module.
|
||||
if isActiveModule(ctx.Module()) {
|
||||
if isActiveModule(ctx, ctx.Module()) {
|
||||
image.licenseMetadataFile = android.OptionalPathForPath(ctx.LicenseMetadataFile())
|
||||
}
|
||||
|
||||
|
@@ -179,7 +179,7 @@ func (s *javaFuzzPackager) GenerateBuildActions(ctx android.SingletonContext) {
|
||||
javaFuzzModule.ApexModuleBase,
|
||||
}
|
||||
|
||||
if ok := fuzz.IsValid(fuzzModuleValidator); !ok {
|
||||
if ok := fuzz.IsValid(ctx, fuzzModuleValidator); !ok {
|
||||
return
|
||||
}
|
||||
|
||||
|
@@ -1428,7 +1428,7 @@ func deferReportingMissingBootDexJar(ctx android.ModuleContext, module android.M
|
||||
// should not contribute to anything. So, rather than have a missing dex jar cause a Soong
|
||||
// failure defer the error reporting to Ninja. Unless the prebuilt build target is explicitly
|
||||
// built Ninja should never use the dex jar file.
|
||||
if !isActiveModule(module) {
|
||||
if !isActiveModule(ctx, module) {
|
||||
return true
|
||||
}
|
||||
|
||||
|
@@ -53,7 +53,7 @@ func jacocoDepsMutator(ctx android.BottomUpMutatorContext) {
|
||||
}
|
||||
|
||||
j, ok := ctx.Module().(instrumentable)
|
||||
if !ctx.Module().Enabled() || !ok {
|
||||
if !ctx.Module().Enabled(ctx) || !ok {
|
||||
return
|
||||
}
|
||||
|
||||
|
@@ -48,7 +48,7 @@ func (j *jdepsGeneratorSingleton) GenerateBuildActions(ctx android.SingletonCont
|
||||
moduleInfos := make(map[string]android.IdeInfo)
|
||||
|
||||
ctx.VisitAllModules(func(module android.Module) {
|
||||
if !module.Enabled() {
|
||||
if !module.Enabled(ctx) {
|
||||
return
|
||||
}
|
||||
|
||||
|
@@ -19,6 +19,7 @@ import (
|
||||
"path/filepath"
|
||||
|
||||
"android/soong/android"
|
||||
|
||||
"github.com/google/blueprint"
|
||||
"github.com/google/blueprint/proptools"
|
||||
)
|
||||
@@ -233,7 +234,7 @@ func (p *platformCompatConfigSingleton) GenerateBuildActions(ctx android.Singlet
|
||||
var compatConfigMetadata android.Paths
|
||||
|
||||
ctx.VisitAllModules(func(module android.Module) {
|
||||
if !module.Enabled() {
|
||||
if !module.Enabled(ctx) {
|
||||
return
|
||||
}
|
||||
if c, ok := module.(platformCompatConfigMetadataProvider); ok {
|
||||
|
@@ -2294,7 +2294,7 @@ func (module *SdkLibrary) getApiDir() string {
|
||||
// once for public API level and once for system API level
|
||||
func (module *SdkLibrary) CreateInternalModules(mctx android.DefaultableHookContext) {
|
||||
// If the module has been disabled then don't create any child modules.
|
||||
if !module.Enabled() {
|
||||
if !module.Enabled(mctx) {
|
||||
return
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user