diff options
Diffstat (limited to 'android/override_module.go')
-rw-r--r-- | android/override_module.go | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/android/override_module.go b/android/override_module.go index 9e95c0f10..a4b7431f6 100644 --- a/android/override_module.go +++ b/android/override_module.go @@ -46,8 +46,8 @@ type OverrideModule interface { // Internal funcs to handle interoperability between override modules and prebuilts. // i.e. cases where an overriding module, too, is overridden by a prebuilt module. - setOverriddenByPrebuilt(overridden bool) - getOverriddenByPrebuilt() bool + setOverriddenByPrebuilt(prebuilt Module) + getOverriddenByPrebuilt() Module // Directory containing the Blueprint definition of the overriding module setModuleDir(string) @@ -60,7 +60,7 @@ type OverrideModuleBase struct { overridingProperties []interface{} - overriddenByPrebuilt bool + overriddenByPrebuilt Module moduleDir string } @@ -96,11 +96,11 @@ func (o *OverrideModuleBase) GetOverriddenModuleName() string { return proptools.String(o.moduleProperties.Base) } -func (o *OverrideModuleBase) setOverriddenByPrebuilt(overridden bool) { - o.overriddenByPrebuilt = overridden +func (o *OverrideModuleBase) setOverriddenByPrebuilt(prebuilt Module) { + o.overriddenByPrebuilt = prebuilt } -func (o *OverrideModuleBase) getOverriddenByPrebuilt() bool { +func (o *OverrideModuleBase) getOverriddenByPrebuilt() Module { return o.overriddenByPrebuilt } @@ -281,7 +281,7 @@ func overrideModuleDepsMutator(ctx BottomUpMutatorContext) { panic("PrebuiltDepTag leads to a non-prebuilt module " + dep.Name()) } if prebuilt.UsePrebuilt() { - module.setOverriddenByPrebuilt(true) + module.setOverriddenByPrebuilt(dep) return } }) @@ -314,8 +314,10 @@ func performOverrideMutator(ctx BottomUpMutatorContext) { ctx.AliasVariation(variants[0]) for i, o := range overrides { mods[i+1].(OverridableModule).override(ctx, mods[i+1], o) - if o.getOverriddenByPrebuilt() { + if prebuilt := o.getOverriddenByPrebuilt(); prebuilt != nil { // The overriding module itself, too, is overridden by a prebuilt. + // Perform the same check for replacement + checkInvariantsForSourceAndPrebuilt(ctx, mods[i+1], prebuilt) // Copy the flag and hide it in make mods[i+1].ReplacedByPrebuilt() } |