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:
parent
c2a1c063b4
commit
021bf3d973
53 changed files with 170 additions and 107 deletions
|
@ -41,6 +41,7 @@ bootstrap_go_package {
|
|||
"buildinfo_prop.go",
|
||||
"config.go",
|
||||
"test_config.go",
|
||||
"configurable_properties.go",
|
||||
"configured_jars.go",
|
||||
"csuite_config.go",
|
||||
"deapexer.go",
|
||||
|
|
|
@ -849,7 +849,7 @@ func translateAndroidModule(ctx SingletonContext, w io.Writer, moduleInfoJSONs *
|
|||
mod blueprint.Module, provider AndroidMkDataProvider) error {
|
||||
|
||||
amod := mod.(Module).base()
|
||||
if shouldSkipAndroidMkProcessing(amod) {
|
||||
if shouldSkipAndroidMkProcessing(ctx, amod) {
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -939,7 +939,7 @@ func WriteAndroidMkData(w io.Writer, data AndroidMkData) {
|
|||
|
||||
func translateAndroidMkEntriesModule(ctx SingletonContext, w io.Writer, moduleInfoJSONs *[]*ModuleInfoJSON,
|
||||
mod blueprint.Module, provider AndroidMkEntriesProvider) error {
|
||||
if shouldSkipAndroidMkProcessing(mod.(Module).base()) {
|
||||
if shouldSkipAndroidMkProcessing(ctx, mod.(Module).base()) {
|
||||
return nil
|
||||
}
|
||||
|
||||
|
@ -961,11 +961,11 @@ func translateAndroidMkEntriesModule(ctx SingletonContext, w io.Writer, moduleIn
|
|||
return nil
|
||||
}
|
||||
|
||||
func ShouldSkipAndroidMkProcessing(module Module) bool {
|
||||
return shouldSkipAndroidMkProcessing(module.base())
|
||||
func ShouldSkipAndroidMkProcessing(ctx ConfigAndErrorContext, module Module) bool {
|
||||
return shouldSkipAndroidMkProcessing(ctx, module.base())
|
||||
}
|
||||
|
||||
func shouldSkipAndroidMkProcessing(module *ModuleBase) bool {
|
||||
func shouldSkipAndroidMkProcessing(ctx ConfigAndErrorContext, module *ModuleBase) bool {
|
||||
if !module.commonProperties.NamespaceExportedToMake {
|
||||
// TODO(jeffrygaston) do we want to validate that there are no modules being
|
||||
// exported to Kati that depend on this module?
|
||||
|
@ -984,7 +984,7 @@ func shouldSkipAndroidMkProcessing(module *ModuleBase) bool {
|
|||
return true
|
||||
}
|
||||
|
||||
return !module.Enabled() ||
|
||||
return !module.Enabled(ctx) ||
|
||||
module.commonProperties.HideFromMake ||
|
||||
// Make does not understand LinuxBionic
|
||||
module.Os() == LinuxBionic ||
|
||||
|
|
|
@ -486,7 +486,7 @@ func osMutator(bpctx blueprint.BottomUpMutatorContext) {
|
|||
// dependencies on OsType variants that are explicitly disabled in their
|
||||
// properties. The CommonOS variant will still depend on disabled variants
|
||||
// if they are disabled afterwards, e.g. in archMutator if
|
||||
if module.Enabled() {
|
||||
if module.Enabled(mctx) {
|
||||
mctx.AddInterVariantDependency(commonOsToOsSpecificVariantTag, commonOSVariant, module)
|
||||
}
|
||||
}
|
||||
|
@ -511,7 +511,7 @@ func GetOsSpecificVariantsOfCommonOSVariant(mctx BaseModuleContext) []Module {
|
|||
var variants []Module
|
||||
mctx.VisitDirectDeps(func(m Module) {
|
||||
if mctx.OtherModuleDependencyTag(m) == commonOsToOsSpecificVariantTag {
|
||||
if m.Enabled() {
|
||||
if m.Enabled(mctx) {
|
||||
variants = append(variants, m)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -423,7 +423,7 @@ func TestArchMutator(t *testing.T) {
|
|||
variants := ctx.ModuleVariantsForTests(name)
|
||||
for _, variant := range variants {
|
||||
m := ctx.ModuleForTests(name, variant)
|
||||
if m.Module().Enabled() {
|
||||
if m.Module().Enabled(PanickingConfigAndErrorContext(ctx)) {
|
||||
ret = append(ret, variant)
|
||||
}
|
||||
}
|
||||
|
@ -533,7 +533,7 @@ func TestArchMutatorNativeBridge(t *testing.T) {
|
|||
variants := ctx.ModuleVariantsForTests(name)
|
||||
for _, variant := range variants {
|
||||
m := ctx.ModuleForTests(name, variant)
|
||||
if m.Module().Enabled() {
|
||||
if m.Module().Enabled(PanickingConfigAndErrorContext(ctx)) {
|
||||
ret = append(ret, variant)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -325,7 +325,7 @@ func (b *baseModuleContext) validateAndroidModule(module blueprint.Module, tag b
|
|||
return nil
|
||||
}
|
||||
|
||||
if !aModule.Enabled() {
|
||||
if !aModule.Enabled(b) {
|
||||
if t, ok := tag.(AllowDisabledModuleDependency); !ok || !t.AllowDisabledModuleDependency(aModule) {
|
||||
if b.Config().AllowMissingDependencies() {
|
||||
b.AddMissingDependencies([]string{b.OtherModuleName(aModule)})
|
||||
|
|
28
android/configurable_properties.go
Normal file
28
android/configurable_properties.go
Normal file
|
@ -0,0 +1,28 @@
|
|||
package android
|
||||
|
||||
import "github.com/google/blueprint/proptools"
|
||||
|
||||
// CreateSelectOsToBool is a utility function that makes it easy to create a
|
||||
// Configurable property value that maps from os to a bool. Use an empty string
|
||||
// to indicate a "default" case.
|
||||
func CreateSelectOsToBool(cases map[string]*bool) proptools.Configurable[bool] {
|
||||
var resultCases []proptools.ConfigurableCase[bool]
|
||||
for pattern, value := range cases {
|
||||
if pattern == "" {
|
||||
resultCases = append(resultCases, proptools.NewConfigurableCase(
|
||||
[]proptools.ConfigurablePattern{proptools.NewDefaultConfigurablePattern()},
|
||||
value,
|
||||
))
|
||||
} else {
|
||||
resultCases = append(resultCases, proptools.NewConfigurableCase(
|
||||
[]proptools.ConfigurablePattern{proptools.NewStringConfigurablePattern(pattern)},
|
||||
value,
|
||||
))
|
||||
}
|
||||
}
|
||||
|
||||
return proptools.NewConfigurable(
|
||||
[]proptools.ConfigurableCondition{proptools.NewConfigurableCondition("os", nil)},
|
||||
resultCases,
|
||||
)
|
||||
}
|
|
@ -173,5 +173,5 @@ func (e *earlyModuleContext) Namespace() *Namespace {
|
|||
}
|
||||
|
||||
func (e *earlyModuleContext) OtherModulePropertyErrorf(module Module, property string, fmt string, args ...interface{}) {
|
||||
e.EarlyModuleContext.OtherModulePropertyErrorf(module, property, fmt, args)
|
||||
e.EarlyModuleContext.OtherModulePropertyErrorf(module, property, fmt, args...)
|
||||
}
|
||||
|
|
|
@ -62,7 +62,7 @@ func (s *genNoticeBuildRules) GenerateBuildActions(ctx SingletonContext) {
|
|||
if mod == nil {
|
||||
continue
|
||||
}
|
||||
if !mod.Enabled() { // don't depend on variants without build rules
|
||||
if !mod.Enabled(ctx) { // don't depend on variants without build rules
|
||||
continue
|
||||
}
|
||||
modules = append(modules, mod)
|
||||
|
|
|
@ -36,7 +36,7 @@ var (
|
|||
func buildLicenseMetadata(ctx ModuleContext, licenseMetadataFile WritablePath) {
|
||||
base := ctx.Module().base()
|
||||
|
||||
if !base.Enabled() {
|
||||
if !base.Enabled(ctx) {
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -69,7 +69,7 @@ func buildLicenseMetadata(ctx ModuleContext, licenseMetadataFile WritablePath) {
|
|||
if dep == nil {
|
||||
return
|
||||
}
|
||||
if !dep.Enabled() {
|
||||
if !dep.Enabled(ctx) {
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
@ -98,6 +98,7 @@ type MakeVarsContext interface {
|
|||
BlueprintFile(module blueprint.Module) string
|
||||
|
||||
ModuleErrorf(module blueprint.Module, format string, args ...interface{})
|
||||
OtherModulePropertyErrorf(module Module, property, format string, args ...interface{})
|
||||
Errorf(format string, args ...interface{})
|
||||
|
||||
VisitAllModules(visit func(Module))
|
||||
|
@ -265,7 +266,7 @@ func (s *makeVarsSingleton) GenerateBuildActions(ctx SingletonContext) {
|
|||
}
|
||||
|
||||
ctx.VisitAllModules(func(m Module) {
|
||||
if provider, ok := m.(ModuleMakeVarsProvider); ok && m.Enabled() {
|
||||
if provider, ok := m.(ModuleMakeVarsProvider); ok && m.Enabled(ctx) {
|
||||
mctx := &makeVarsContext{
|
||||
SingletonContext: ctx,
|
||||
}
|
||||
|
|
|
@ -60,7 +60,7 @@ type Module interface {
|
|||
|
||||
base() *ModuleBase
|
||||
Disable()
|
||||
Enabled() bool
|
||||
Enabled(ctx ConfigAndErrorContext) bool
|
||||
Target() Target
|
||||
MultiTargets() []Target
|
||||
|
||||
|
@ -287,7 +287,7 @@ type commonProperties struct {
|
|||
// but are not usually required (e.g. superceded by a prebuilt) should not be
|
||||
// disabled as that will prevent them from being built by the checkbuild target
|
||||
// and so prevent early detection of changes that have broken those modules.
|
||||
Enabled *bool `android:"arch_variant"`
|
||||
Enabled proptools.Configurable[bool] `android:"arch_variant,replace_instead_of_append"`
|
||||
|
||||
// Controls the visibility of this module to other modules. Allowable values are one or more of
|
||||
// these formats:
|
||||
|
@ -1392,14 +1392,11 @@ func (m *ModuleBase) PartitionTag(config DeviceConfig) string {
|
|||
return partition
|
||||
}
|
||||
|
||||
func (m *ModuleBase) Enabled() bool {
|
||||
func (m *ModuleBase) Enabled(ctx ConfigAndErrorContext) bool {
|
||||
if m.commonProperties.ForcedDisabled {
|
||||
return false
|
||||
}
|
||||
if m.commonProperties.Enabled == nil {
|
||||
return !m.Os().DefaultDisabled
|
||||
}
|
||||
return *m.commonProperties.Enabled
|
||||
return m.commonProperties.Enabled.GetOrDefault(m.ConfigurableEvaluator(ctx), !m.Os().DefaultDisabled)
|
||||
}
|
||||
|
||||
func (m *ModuleBase) Disable() {
|
||||
|
@ -1643,7 +1640,7 @@ func (m *ModuleBase) generateModuleTarget(ctx ModuleContext) {
|
|||
// not be created if the module is not exported to make.
|
||||
// Those could depend on the build target and fail to compile
|
||||
// for the current build target.
|
||||
if !ctx.Config().KatiEnabled() || !shouldSkipAndroidMkProcessing(a) {
|
||||
if !ctx.Config().KatiEnabled() || !shouldSkipAndroidMkProcessing(ctx, a) {
|
||||
allCheckbuildFiles = append(allCheckbuildFiles, a.checkbuildFiles...)
|
||||
}
|
||||
})
|
||||
|
@ -1835,7 +1832,7 @@ func (m *ModuleBase) GenerateBuildActions(blueprintCtx blueprint.ModuleContext)
|
|||
checkDistProperties(ctx, fmt.Sprintf("dists[%d]", i), &m.distProperties.Dists[i])
|
||||
}
|
||||
|
||||
if m.Enabled() {
|
||||
if m.Enabled(ctx) {
|
||||
// ensure all direct android.Module deps are enabled
|
||||
ctx.VisitDirectDepsBlueprint(func(bm blueprint.Module) {
|
||||
if m, ok := bm.(Module); ok {
|
||||
|
@ -2136,7 +2133,7 @@ func (m *ModuleBase) ConfigurableEvaluator(ctx ConfigAndErrorContext) proptools.
|
|||
}
|
||||
|
||||
func (e configurationEvalutor) PropertyErrorf(property string, fmt string, args ...interface{}) {
|
||||
e.ctx.OtherModulePropertyErrorf(e.m, property, fmt, args)
|
||||
e.ctx.OtherModulePropertyErrorf(e.m, property, fmt, args...)
|
||||
}
|
||||
|
||||
func (e configurationEvalutor) EvaluateConfiguration(condition proptools.ConfigurableCondition, property string) proptools.ConfigurableValue {
|
||||
|
@ -2535,7 +2532,7 @@ func (c *buildTargetSingleton) GenerateBuildActions(ctx SingletonContext) {
|
|||
}
|
||||
osDeps := map[osAndCross]Paths{}
|
||||
ctx.VisitAllModules(func(module Module) {
|
||||
if module.Enabled() {
|
||||
if module.Enabled(ctx) {
|
||||
key := osAndCross{os: module.Target().Os, hostCross: module.Target().HostCross}
|
||||
osDeps[key] = append(osDeps[key], module.base().checkbuildFiles...)
|
||||
}
|
||||
|
|
|
@ -674,13 +674,11 @@ func RegisterComponentsMutator(ctx RegisterMutatorsContext) {
|
|||
// on component modules to be added so that they can depend directly on a prebuilt
|
||||
// module.
|
||||
func componentDepsMutator(ctx BottomUpMutatorContext) {
|
||||
if m := ctx.Module(); m.Enabled() {
|
||||
m.ComponentDepsMutator(ctx)
|
||||
}
|
||||
ctx.Module().ComponentDepsMutator(ctx)
|
||||
}
|
||||
|
||||
func depsMutator(ctx BottomUpMutatorContext) {
|
||||
if m := ctx.Module(); m.Enabled() {
|
||||
if m := ctx.Module(); m.Enabled(ctx) {
|
||||
m.base().baseDepsMutator(ctx)
|
||||
m.DepsMutator(ctx)
|
||||
}
|
||||
|
|
|
@ -322,7 +322,7 @@ func performOverrideMutator(ctx BottomUpMutatorContext) {
|
|||
}
|
||||
|
||||
func overridableModuleDepsMutator(ctx BottomUpMutatorContext) {
|
||||
if b, ok := ctx.Module().(OverridableModule); ok && b.Enabled() {
|
||||
if b, ok := ctx.Module().(OverridableModule); ok && b.Enabled(ctx) {
|
||||
b.OverridablePropertiesDepsMutator(ctx)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -60,6 +60,7 @@ type EarlyModulePathContext interface {
|
|||
|
||||
ModuleDir() string
|
||||
ModuleErrorf(fmt string, args ...interface{})
|
||||
OtherModulePropertyErrorf(module Module, property, fmt string, args ...interface{})
|
||||
}
|
||||
|
||||
var _ EarlyModulePathContext = ModuleContext(nil)
|
||||
|
@ -561,7 +562,7 @@ func getPathsFromModuleDep(ctx ModuleWithDepsPathContext, path, moduleName, tag
|
|||
if module == nil {
|
||||
return nil, missingDependencyError{[]string{moduleName}}
|
||||
}
|
||||
if aModule, ok := module.(Module); ok && !aModule.Enabled() {
|
||||
if aModule, ok := module.(Module); ok && !aModule.Enabled(ctx) {
|
||||
return nil, missingDependencyError{[]string{moduleName}}
|
||||
}
|
||||
if outProducer, ok := module.(OutputFileProducer); ok {
|
||||
|
|
|
@ -275,7 +275,7 @@ func InitSingleSourcePrebuiltModule(module PrebuiltInterface, srcProps interface
|
|||
srcPropertyName := proptools.PropertyNameForField(srcField)
|
||||
|
||||
srcsSupplier := func(ctx BaseModuleContext, _ Module) []string {
|
||||
if !module.Enabled() {
|
||||
if !module.Enabled(ctx) {
|
||||
return nil
|
||||
}
|
||||
value := srcPropsValue.FieldByIndex(srcFieldIndex)
|
||||
|
@ -425,7 +425,7 @@ func PrebuiltSourceDepsMutator(ctx BottomUpMutatorContext) {
|
|||
m := ctx.Module()
|
||||
// If this module is a prebuilt, is enabled and has not been renamed to source then add a
|
||||
// dependency onto the source if it is present.
|
||||
if p := GetEmbeddedPrebuilt(m); p != nil && m.Enabled() && !p.properties.PrebuiltRenamedToSource {
|
||||
if p := GetEmbeddedPrebuilt(m); p != nil && m.Enabled(ctx) && !p.properties.PrebuiltRenamedToSource {
|
||||
bmn, _ := m.(baseModuleName)
|
||||
name := bmn.BaseModuleName()
|
||||
if ctx.OtherModuleReverseDependencyVariantExists(name) {
|
||||
|
@ -702,7 +702,7 @@ func (p *Prebuilt) usePrebuilt(ctx BaseMutatorContext, source Module, prebuilt M
|
|||
}
|
||||
|
||||
// If source is not available or is disabled then always use the prebuilt.
|
||||
if source == nil || !source.Enabled() {
|
||||
if source == nil || !source.Enabled(ctx) {
|
||||
return true
|
||||
}
|
||||
|
||||
|
|
|
@ -351,7 +351,7 @@ func TestPrebuilts(t *testing.T) {
|
|||
}
|
||||
})
|
||||
|
||||
moduleIsDisabled := !foo.Module().Enabled()
|
||||
moduleIsDisabled := !foo.Module().Enabled(PanickingConfigAndErrorContext(result.TestContext))
|
||||
deps := foo.Module().(*sourceModule).deps
|
||||
if moduleIsDisabled {
|
||||
if len(deps) > 0 {
|
||||
|
|
|
@ -16,8 +16,9 @@ package android
|
|||
|
||||
import (
|
||||
"fmt"
|
||||
"github.com/google/blueprint"
|
||||
"reflect"
|
||||
|
||||
"github.com/google/blueprint"
|
||||
)
|
||||
|
||||
// A sortable component is one whose registration order affects the order in which it is executed
|
||||
|
|
|
@ -284,5 +284,5 @@ func (s *singletonContextAdaptor) moduleProvider(module blueprint.Module, provid
|
|||
}
|
||||
|
||||
func (s *singletonContextAdaptor) OtherModulePropertyErrorf(module Module, property string, format string, args ...interface{}) {
|
||||
s.blueprintSingletonContext().OtherModulePropertyErrorf(module, property, format, args)
|
||||
s.blueprintSingletonContext().OtherModulePropertyErrorf(module, property, format, args...)
|
||||
}
|
||||
|
|
|
@ -1287,3 +1287,21 @@ func EnsureListContainsSuffix(t *testing.T, result []string, expected string) {
|
|||
t.Errorf("%q is not found in %v", expected, result)
|
||||
}
|
||||
}
|
||||
|
||||
type panickingConfigAndErrorContext struct {
|
||||
ctx *TestContext
|
||||
}
|
||||
|
||||
func (ctx *panickingConfigAndErrorContext) OtherModulePropertyErrorf(module Module, property, fmt string, args ...interface{}) {
|
||||
panic(ctx.ctx.PropertyErrorf(module, property, fmt, args...).Error())
|
||||
}
|
||||
|
||||
func (ctx *panickingConfigAndErrorContext) Config() Config {
|
||||
return ctx.ctx.Config()
|
||||
}
|
||||
|
||||
func PanickingConfigAndErrorContext(ctx *TestContext) ConfigAndErrorContext {
|
||||
return &panickingConfigAndErrorContext{
|
||||
ctx: ctx,
|
||||
}
|
||||
}
|
||||
|
|
|
@ -58,13 +58,13 @@ type variableProperties struct {
|
|||
// unbundled_build is a catch-all property to annotate modules that don't build in one or
|
||||
// more unbundled branches, usually due to dependencies missing from the manifest.
|
||||
Unbundled_build struct {
|
||||
Enabled *bool `android:"arch_variant"`
|
||||
Enabled proptools.Configurable[bool] `android:"arch_variant,replace_instead_of_append"`
|
||||
} `android:"arch_variant"`
|
||||
|
||||
// similar to `Unbundled_build`, but `Always_use_prebuilt_sdks` means that it uses prebuilt
|
||||
// sdk specifically.
|
||||
Always_use_prebuilt_sdks struct {
|
||||
Enabled *bool `android:"arch_variant"`
|
||||
Enabled proptools.Configurable[bool] `android:"arch_variant,replace_instead_of_append"`
|
||||
} `android:"arch_variant"`
|
||||
|
||||
Malloc_not_svelte struct {
|
||||
|
|
16
apex/apex.go
16
apex/apex.go
|
@ -1077,7 +1077,7 @@ type ApexInfoMutator interface {
|
|||
// specific variant to modules that support the ApexInfoMutator.
|
||||
// It also propagates updatable=true to apps of updatable apexes
|
||||
func apexInfoMutator(mctx android.TopDownMutatorContext) {
|
||||
if !mctx.Module().Enabled() {
|
||||
if !mctx.Module().Enabled(mctx) {
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -1094,7 +1094,7 @@ func apexInfoMutator(mctx android.TopDownMutatorContext) {
|
|||
// apexStrictUpdatibilityLintMutator propagates strict_updatability_linting to transitive deps of a mainline module
|
||||
// This check is enforced for updatable modules
|
||||
func apexStrictUpdatibilityLintMutator(mctx android.TopDownMutatorContext) {
|
||||
if !mctx.Module().Enabled() {
|
||||
if !mctx.Module().Enabled(mctx) {
|
||||
return
|
||||
}
|
||||
if apex, ok := mctx.Module().(*apexBundle); ok && apex.checkStrictUpdatabilityLinting() {
|
||||
|
@ -1121,7 +1121,7 @@ func apexStrictUpdatibilityLintMutator(mctx android.TopDownMutatorContext) {
|
|||
|
||||
// enforceAppUpdatability propagates updatable=true to apps of updatable apexes
|
||||
func enforceAppUpdatability(mctx android.TopDownMutatorContext) {
|
||||
if !mctx.Module().Enabled() {
|
||||
if !mctx.Module().Enabled(mctx) {
|
||||
return
|
||||
}
|
||||
if apex, ok := mctx.Module().(*apexBundle); ok && apex.Updatable() {
|
||||
|
@ -1199,7 +1199,7 @@ func (a *apexBundle) checkStrictUpdatabilityLinting() bool {
|
|||
// unique apex variations for this module. See android/apex.go for more about unique apex variant.
|
||||
// TODO(jiyong): move this to android/apex.go?
|
||||
func apexUniqueVariationsMutator(mctx android.BottomUpMutatorContext) {
|
||||
if !mctx.Module().Enabled() {
|
||||
if !mctx.Module().Enabled(mctx) {
|
||||
return
|
||||
}
|
||||
if am, ok := mctx.Module().(android.ApexModule); ok {
|
||||
|
@ -1211,7 +1211,7 @@ func apexUniqueVariationsMutator(mctx android.BottomUpMutatorContext) {
|
|||
// the apex in order to retrieve its contents later.
|
||||
// TODO(jiyong): move this to android/apex.go?
|
||||
func apexTestForDepsMutator(mctx android.BottomUpMutatorContext) {
|
||||
if !mctx.Module().Enabled() {
|
||||
if !mctx.Module().Enabled(mctx) {
|
||||
return
|
||||
}
|
||||
if am, ok := mctx.Module().(android.ApexModule); ok {
|
||||
|
@ -1226,7 +1226,7 @@ func apexTestForDepsMutator(mctx android.BottomUpMutatorContext) {
|
|||
|
||||
// TODO(jiyong): move this to android/apex.go?
|
||||
func apexTestForMutator(mctx android.BottomUpMutatorContext) {
|
||||
if !mctx.Module().Enabled() {
|
||||
if !mctx.Module().Enabled(mctx) {
|
||||
return
|
||||
}
|
||||
if _, ok := mctx.Module().(android.ApexModule); ok {
|
||||
|
@ -1340,7 +1340,7 @@ func apexModuleTypeRequiresVariant(module ApexInfoMutator) bool {
|
|||
// See android.UpdateDirectlyInAnyApex
|
||||
// TODO(jiyong): move this to android/apex.go?
|
||||
func apexDirectlyInAnyMutator(mctx android.BottomUpMutatorContext) {
|
||||
if !mctx.Module().Enabled() {
|
||||
if !mctx.Module().Enabled(mctx) {
|
||||
return
|
||||
}
|
||||
if am, ok := mctx.Module().(android.ApexModule); ok {
|
||||
|
@ -1968,7 +1968,7 @@ func (a *apexBundle) depVisitor(vctx *visitorContext, ctx android.ModuleContext,
|
|||
if _, ok := depTag.(android.ExcludeFromApexContentsTag); ok {
|
||||
return false
|
||||
}
|
||||
if mod, ok := child.(android.Module); ok && !mod.Enabled() {
|
||||
if mod, ok := child.(android.Module); ok && !mod.Enabled(ctx) {
|
||||
return false
|
||||
}
|
||||
depName := ctx.OtherModuleName(child)
|
||||
|
|
|
@ -5601,8 +5601,21 @@ func TestBootDexJarsFromSourcesAndPrebuilts(t *testing.T) {
|
|||
compile_dex: true,
|
||||
}
|
||||
`
|
||||
// This test disables libbar, which causes the ComponentDepsMutator to add
|
||||
// deps on libbar.stubs and other sub-modules that don't exist. We can
|
||||
// enable AllowMissingDependencies to work around that, but enabling that
|
||||
// causes extra checks for missing source files to dex_bootjars, so add those
|
||||
// to the mock fs as well.
|
||||
preparer2 := android.GroupFixturePreparers(
|
||||
preparer,
|
||||
android.PrepareForTestWithAllowMissingDependencies,
|
||||
android.FixtureMergeMockFs(map[string][]byte{
|
||||
"build/soong/scripts/check_boot_jars/package_allowed_list.txt": nil,
|
||||
"frameworks/base/config/boot-profile.txt": nil,
|
||||
}),
|
||||
)
|
||||
|
||||
ctx := testDexpreoptWithApexes(t, bp, "", preparer, fragment)
|
||||
ctx := testDexpreoptWithApexes(t, bp, "", preparer2, fragment)
|
||||
checkBootDexJarPath(t, ctx, "libfoo", "out/soong/.intermediates/prebuilt_myapex.deapexer/android_common/deapexer/javalib/libfoo.jar")
|
||||
checkBootDexJarPath(t, ctx, "libbar", "out/soong/.intermediates/prebuilt_myapex.deapexer/android_common/deapexer/javalib/libbar.jar")
|
||||
|
||||
|
@ -9220,7 +9233,7 @@ func TestPrebuiltStubLibDep(t *testing.T) {
|
|||
continue
|
||||
}
|
||||
mod := ctx.ModuleForTests(modName, variant).Module().(*cc.Module)
|
||||
if !mod.Enabled() || mod.IsHideFromMake() {
|
||||
if !mod.Enabled(android.PanickingConfigAndErrorContext(ctx)) || mod.IsHideFromMake() {
|
||||
continue
|
||||
}
|
||||
for _, ent := range android.AndroidMkEntriesForTest(t, ctx, mod) {
|
||||
|
|
4
cc/cc.go
4
cc/cc.go
|
@ -2509,7 +2509,7 @@ func (c *Module) shouldUseApiSurface() bool {
|
|||
}
|
||||
|
||||
func (c *Module) DepsMutator(actx android.BottomUpMutatorContext) {
|
||||
if !c.Enabled() {
|
||||
if !c.Enabled(actx) {
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -2757,7 +2757,7 @@ func (c *Module) DepsMutator(actx android.BottomUpMutatorContext) {
|
|||
}
|
||||
|
||||
func BeginMutator(ctx android.BottomUpMutatorContext) {
|
||||
if c, ok := ctx.Module().(*Module); ok && c.Enabled() {
|
||||
if c, ok := ctx.Module().(*Module); ok && c.Enabled(ctx) {
|
||||
c.beginMutator(ctx)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -433,7 +433,7 @@ func (s *ccRustFuzzPackager) GenerateBuildActions(ctx android.SingletonContext)
|
|||
return
|
||||
}
|
||||
// Discard non-fuzz targets.
|
||||
if ok := fuzz.IsValid(ccModule.FuzzModuleStruct()); !ok {
|
||||
if ok := fuzz.IsValid(ctx, ccModule.FuzzModuleStruct()); !ok {
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
@ -181,7 +181,7 @@ func llndkMutator(mctx android.BottomUpMutatorContext) {
|
|||
return
|
||||
}
|
||||
|
||||
if shouldSkipLlndkMutator(m) {
|
||||
if shouldSkipLlndkMutator(mctx, m) {
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -201,8 +201,8 @@ func llndkMutator(mctx android.BottomUpMutatorContext) {
|
|||
}
|
||||
|
||||
// Check for modules that mustn't be LLNDK
|
||||
func shouldSkipLlndkMutator(m *Module) bool {
|
||||
if !m.Enabled() {
|
||||
func shouldSkipLlndkMutator(mctx android.BottomUpMutatorContext, m *Module) bool {
|
||||
if !m.Enabled(mctx) {
|
||||
return true
|
||||
}
|
||||
if !m.Device() {
|
||||
|
|
|
@ -279,7 +279,7 @@ func makeVarsToolchain(ctx android.MakeVarsContext, secondPrefix string,
|
|||
sanitizerLibs := android.SortedStringValues(sanitizerVariables)
|
||||
var sanitizerLibStems []string
|
||||
ctx.VisitAllModules(func(m android.Module) {
|
||||
if !m.Enabled() {
|
||||
if !m.Enabled(ctx) {
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
@ -40,7 +40,7 @@ type ndkAbiDumpSingleton struct{}
|
|||
func (n *ndkAbiDumpSingleton) GenerateBuildActions(ctx android.SingletonContext) {
|
||||
var depPaths android.Paths
|
||||
ctx.VisitAllModules(func(module android.Module) {
|
||||
if !module.Enabled() {
|
||||
if !module.Enabled(ctx) {
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -78,7 +78,7 @@ type ndkAbiDiffSingleton struct{}
|
|||
func (n *ndkAbiDiffSingleton) GenerateBuildActions(ctx android.SingletonContext) {
|
||||
var depPaths android.Paths
|
||||
ctx.VisitAllModules(func(module android.Module) {
|
||||
if m, ok := module.(android.Module); ok && !m.Enabled() {
|
||||
if m, ok := module.(android.Module); ok && !m.Enabled(ctx) {
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
@ -148,7 +148,7 @@ func ndkLibraryVersions(ctx android.BaseMutatorContext, from android.ApiLevel) [
|
|||
}
|
||||
|
||||
func (this *stubDecorator) stubsVersions(ctx android.BaseMutatorContext) []string {
|
||||
if !ctx.Module().Enabled() {
|
||||
if !ctx.Module().Enabled(ctx) {
|
||||
return nil
|
||||
}
|
||||
if ctx.Target().NativeBridge == android.NativeBridgeEnabled {
|
||||
|
|
|
@ -150,7 +150,7 @@ func (n *ndkSingleton) GenerateBuildActions(ctx android.SingletonContext) {
|
|||
var installPaths android.Paths
|
||||
var licensePaths android.Paths
|
||||
ctx.VisitAllModules(func(module android.Module) {
|
||||
if m, ok := module.(android.Module); ok && !m.Enabled() {
|
||||
if m, ok := module.(android.Module); ok && !m.Enabled(ctx) {
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
@ -82,7 +82,7 @@ var (
|
|||
hwasanGlobalOptions = []string{"heap_history_size=1023", "stack_history_size=512",
|
||||
"export_memory_stats=0", "max_malloc_fill_size=131072", "malloc_fill_byte=0"}
|
||||
memtagStackCommonFlags = []string{"-march=armv8-a+memtag"}
|
||||
memtagStackLlvmFlags = []string{"-dom-tree-reachability-max-bbs-to-explore=128"}
|
||||
memtagStackLlvmFlags = []string{"-dom-tree-reachability-max-bbs-to-explore=128"}
|
||||
|
||||
hostOnlySanitizeFlags = []string{"-fno-sanitize-recover=all"}
|
||||
deviceOnlySanitizeFlags = []string{"-fsanitize-trap=all"}
|
||||
|
@ -858,7 +858,7 @@ func (s *sanitize) flags(ctx ModuleContext, flags Flags) Flags {
|
|||
|
||||
flags.Local.CFlags = append(flags.Local.CFlags, cfiCflags...)
|
||||
flags.Local.AsFlags = append(flags.Local.AsFlags, cfiAsflags...)
|
||||
flags.CFlagsDeps = append(flags.CFlagsDeps, android.PathForSource(ctx, cfiBlocklistPath + "/" + cfiBlocklistFilename))
|
||||
flags.CFlagsDeps = append(flags.CFlagsDeps, android.PathForSource(ctx, cfiBlocklistPath+"/"+cfiBlocklistFilename))
|
||||
if Bool(s.Properties.Sanitize.Config.Cfi_assembly_support) {
|
||||
flags.Local.CFlags = append(flags.Local.CFlags, cfiAssemblySupportFlag)
|
||||
}
|
||||
|
@ -1378,7 +1378,7 @@ func sanitizerRuntimeDepsMutator(mctx android.TopDownMutatorContext) {
|
|||
// Add the dependency to the runtime library for each of the sanitizer variants
|
||||
func sanitizerRuntimeMutator(mctx android.BottomUpMutatorContext) {
|
||||
if c, ok := mctx.Module().(*Module); ok && c.sanitize != nil {
|
||||
if !c.Enabled() {
|
||||
if !c.Enabled(mctx) {
|
||||
return
|
||||
}
|
||||
var sanitizers []string
|
||||
|
|
|
@ -220,7 +220,7 @@ func collectTidyObjModuleTargets(ctx android.SingletonContext, module android.Mo
|
|||
|
||||
// (1) Collect all obj/tidy files into OS-specific groups.
|
||||
ctx.VisitAllModuleVariants(module, func(variant android.Module) {
|
||||
if ctx.Config().KatiEnabled() && android.ShouldSkipAndroidMkProcessing(variant) {
|
||||
if ctx.Config().KatiEnabled() && android.ShouldSkipAndroidMkProcessing(ctx, variant) {
|
||||
return
|
||||
}
|
||||
if m, ok := variant.(*Module); ok {
|
||||
|
|
|
@ -322,8 +322,8 @@ func processVndkLibrary(mctx android.BottomUpMutatorContext, m *Module) {
|
|||
}
|
||||
|
||||
// Check for modules that mustn't be VNDK
|
||||
func shouldSkipVndkMutator(m *Module) bool {
|
||||
if !m.Enabled() {
|
||||
func shouldSkipVndkMutator(ctx android.ConfigAndErrorContext, m *Module) bool {
|
||||
if !m.Enabled(ctx) {
|
||||
return true
|
||||
}
|
||||
if !m.Device() {
|
||||
|
@ -338,7 +338,7 @@ func shouldSkipVndkMutator(m *Module) bool {
|
|||
}
|
||||
|
||||
func IsForVndkApex(mctx android.BottomUpMutatorContext, m *Module) bool {
|
||||
if shouldSkipVndkMutator(m) {
|
||||
if shouldSkipVndkMutator(mctx, m) {
|
||||
return false
|
||||
}
|
||||
|
||||
|
@ -369,7 +369,7 @@ func VndkMutator(mctx android.BottomUpMutatorContext) {
|
|||
return
|
||||
}
|
||||
|
||||
if shouldSkipVndkMutator(m) {
|
||||
if shouldSkipVndkMutator(mctx, m) {
|
||||
return
|
||||
}
|
||||
|
||||
|
@ -548,6 +548,7 @@ func (txt *vndkLibrariesTxt) SubDir() string {
|
|||
func (txt *vndkLibrariesTxt) OutputFiles(tag string) (android.Paths, error) {
|
||||
return android.Paths{txt.outputFile}, nil
|
||||
}
|
||||
|
||||
func getVndkFileName(m *Module) (string, error) {
|
||||
if library, ok := m.linker.(*libraryDecorator); ok {
|
||||
return library.getLibNameHelper(m.BaseModuleName(), true, false) + ".so", nil
|
||||
|
|
|
@ -449,10 +449,10 @@ func IsValidFrameworkForModule(targetFramework Framework, lang Lang, moduleFrame
|
|||
}
|
||||
}
|
||||
|
||||
func IsValid(fuzzModule FuzzModule) bool {
|
||||
func IsValid(ctx android.ConfigAndErrorContext, fuzzModule FuzzModule) bool {
|
||||
// Discard ramdisk + vendor_ramdisk + recovery modules, they're duplicates of
|
||||
// fuzz targets we're going to package anyway.
|
||||
if !fuzzModule.Enabled() || fuzzModule.InRamdisk() || fuzzModule.InVendorRamdisk() || fuzzModule.InRecovery() {
|
||||
if !fuzzModule.Enabled(ctx) || fuzzModule.InRamdisk() || fuzzModule.InVendorRamdisk() || fuzzModule.InRecovery() {
|
||||
return false
|
||||
}
|
||||
|
||||
|
|
|
@ -299,7 +299,7 @@ func (g *Module) generateCommonBuildActions(ctx android.ModuleContext) {
|
|||
case android.HostToolProvider:
|
||||
// A HostToolProvider provides the path to a tool, which will be copied
|
||||
// into the sandbox.
|
||||
if !t.(android.Module).Enabled() {
|
||||
if !t.(android.Module).Enabled(ctx) {
|
||||
if ctx.Config().AllowMissingDependencies() {
|
||||
ctx.AddMissingDependencies([]string{tool})
|
||||
} else {
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
||||
|
|
|
@ -18,6 +18,7 @@ package provenance
|
|||
|
||||
import (
|
||||
"android/soong/android"
|
||||
|
||||
"github.com/google/blueprint"
|
||||
)
|
||||
|
||||
|
@ -68,6 +69,15 @@ type provenanceInfoSingleton struct {
|
|||
|
||||
func (p *provenanceInfoSingleton) GenerateBuildActions(context android.SingletonContext) {
|
||||
allMetaDataFiles := make([]android.Path, 0)
|
||||
moduleFilter := func(module android.Module) bool {
|
||||
if !module.Enabled(context) || module.IsSkipInstall() {
|
||||
return false
|
||||
}
|
||||
if p, ok := module.(ProvenanceMetadata); ok {
|
||||
return p.ProvenanceMetaDataFile().String() != ""
|
||||
}
|
||||
return false
|
||||
}
|
||||
context.VisitAllModulesIf(moduleFilter, func(module android.Module) {
|
||||
if p, ok := module.(ProvenanceMetadata); ok {
|
||||
allMetaDataFiles = append(allMetaDataFiles, p.ProvenanceMetaDataFile())
|
||||
|
@ -91,16 +101,6 @@ func (p *provenanceInfoSingleton) GenerateBuildActions(context android.Singleton
|
|||
context.Phony("droidcore", android.PathForPhony(context, "provenance_metadata"))
|
||||
}
|
||||
|
||||
func moduleFilter(module android.Module) bool {
|
||||
if !module.Enabled() || module.IsSkipInstall() {
|
||||
return false
|
||||
}
|
||||
if p, ok := module.(ProvenanceMetadata); ok {
|
||||
return p.ProvenanceMetaDataFile().String() != ""
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
func GenerateArtifactProvenanceMetaData(ctx android.ModuleContext, artifactPath android.Path, installedFile android.InstallPath) android.OutputPath {
|
||||
onDevicePathOfInstalledFile := android.InstallPathToOnDevicePath(ctx, installedFile)
|
||||
artifactMetaDataFile := android.PathForIntermediates(ctx, "provenance_metadata", ctx.ModuleDir(), ctx.ModuleName(), "provenance_metadata.textproto")
|
||||
|
|
|
@ -39,7 +39,7 @@ func (afdo *afdo) addDep(ctx BaseModuleContext, actx android.BottomUpMutatorCont
|
|||
return
|
||||
}
|
||||
|
||||
if mod, ok := ctx.Module().(*Module); ok && mod.Enabled() {
|
||||
if mod, ok := ctx.Module().(*Module); ok && mod.Enabled(ctx) {
|
||||
fdoProfileName, err := actx.DeviceConfig().AfdoProfile(actx.ModuleName())
|
||||
if err != nil {
|
||||
ctx.ModuleErrorf("%s", err.Error())
|
||||
|
|
|
@ -38,7 +38,7 @@ func (n *rustdocSingleton) GenerateBuildActions(ctx android.SingletonContext) {
|
|||
FlagWithArg("-D ", docDir.String())
|
||||
|
||||
ctx.VisitAllModules(func(module android.Module) {
|
||||
if !module.Enabled() {
|
||||
if !module.Enabled(ctx) {
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
@ -713,7 +713,7 @@ func LibraryMutator(mctx android.BottomUpMutatorContext) {
|
|||
if sourceVariant {
|
||||
sv := modules[0]
|
||||
for _, v := range modules[1:] {
|
||||
if !v.Enabled() {
|
||||
if !v.Enabled(mctx) {
|
||||
continue
|
||||
}
|
||||
mctx.AddInterVariantDependency(sourceDepTag, v, sv)
|
||||
|
|
|
@ -119,7 +119,7 @@ func isModuleSupported(ctx android.SingletonContext, module android.Module) (*Mo
|
|||
if !ok {
|
||||
return nil, false
|
||||
}
|
||||
if !rModule.Enabled() {
|
||||
if !rModule.Enabled(ctx) {
|
||||
return nil, false
|
||||
}
|
||||
return rModule, true
|
||||
|
|
|
@ -1697,7 +1697,7 @@ func (mod *Module) DepsMutator(actx android.BottomUpMutatorContext) {
|
|||
}
|
||||
|
||||
func BeginMutator(ctx android.BottomUpMutatorContext) {
|
||||
if mod, ok := ctx.Module().(*Module); ok && mod.Enabled() {
|
||||
if mod, ok := ctx.Module().(*Module); ok && mod.Enabled(ctx) {
|
||||
mod.beginMutator(ctx)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -258,7 +258,7 @@ func (sanitize *sanitize) deps(ctx BaseModuleContext, deps Deps) Deps {
|
|||
|
||||
func rustSanitizerRuntimeMutator(mctx android.BottomUpMutatorContext) {
|
||||
if mod, ok := mctx.Module().(*Module); ok && mod.sanitize != nil {
|
||||
if !mod.Enabled() {
|
||||
if !mod.Enabled(mctx) {
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
@ -116,7 +116,7 @@ func (c *hostFakeSingleton) GenerateBuildActions(ctx android.SingletonContext) {
|
|||
prebuilts[android.RemoveOptionalPrebuiltPrefix(module.Name())] = true
|
||||
return
|
||||
}
|
||||
if !module.Enabled() || module.IsHideFromMake() {
|
||||
if !module.Enabled(ctx) || module.IsHideFromMake() {
|
||||
return
|
||||
}
|
||||
apexInfo, _ := android.SingletonModuleProvider(ctx, module, android.ApexInfoProvider)
|
||||
|
|
Loading…
Reference in a new issue