Revert "Consolidate *MutatorContext and ModuleContext into BaseModuleContext"
This reverts commit 7e0a2cb590f2f2d117571327f40fa8557363658c.
Reason for revert: broke TARGET_BUILD_APPS builds
Change-Id: I5316a62f77bb38f6195e3df5e31b073dbd1eb682
diff --git a/android/module.go b/android/module.go
index 26e8e63..9d73859 100644
--- a/android/module.go
+++ b/android/module.go
@@ -57,40 +57,14 @@
type ModuleBuildParams BuildParams
// BaseModuleContext is the same as blueprint.BaseModuleContext except that Config() returns
-// a Config instead of an interface{}, and some methods have been wrapped to use an android.Module
-// instead of a blueprint.Module, plus some extra methods that return Android-specific information
+// a Config instead of an interface{}, plus some extra methods that return Android-specific information
// about the current module.
type BaseModuleContext interface {
- Module() Module
ModuleName() string
ModuleDir() string
ModuleType() string
Config() Config
- OtherModuleName(m blueprint.Module) string
- OtherModuleDir(m blueprint.Module) string
- OtherModuleErrorf(m blueprint.Module, fmt string, args ...interface{})
- OtherModuleDependencyTag(m blueprint.Module) blueprint.DependencyTag
- OtherModuleExists(name string) bool
-
- GetDirectDepsWithTag(tag blueprint.DependencyTag) []Module
- GetDirectDepWithTag(name string, tag blueprint.DependencyTag) blueprint.Module
- GetDirectDep(name string) (blueprint.Module, blueprint.DependencyTag)
-
- VisitDirectDepsBlueprint(visit func(blueprint.Module))
- VisitDirectDeps(visit func(Module))
- VisitDirectDepsWithTag(tag blueprint.DependencyTag, visit func(Module))
- VisitDirectDepsIf(pred func(Module) bool, visit func(Module))
- // Deprecated: use WalkDeps instead to support multiple dependency tags on the same module
- VisitDepsDepthFirst(visit func(Module))
- // Deprecated: use WalkDeps instead to support multiple dependency tags on the same module
- VisitDepsDepthFirstIf(pred func(Module) bool, visit func(Module))
- WalkDeps(visit func(Module, Module) bool)
- WalkDepsBlueprint(visit func(blueprint.Module, blueprint.Module) bool)
- // GetWalkPath is supposed to be called in visit function passed in WalkDeps()
- // and returns a top-down dependency path from a start module to current child module.
- GetWalkPath() []Module
-
ContainsProperty(name string) bool
Errorf(pos scanner.Position, fmt string, args ...interface{})
ModuleErrorf(fmt string, args ...interface{})
@@ -103,9 +77,6 @@
// file that does not match the pattern is added to a searched directory.
GlobWithDeps(pattern string, excludes []string) ([]string, error)
- Glob(globPattern string, excludes []string) Paths
- GlobFiles(globPattern string, excludes []string) Paths
-
Fs() pathtools.FileSystem
AddNinjaFileDeps(deps ...string)
@@ -144,6 +115,8 @@
ExpandSources(srcFiles, excludes []string) Paths
ExpandSource(srcFile, prop string) Path
ExpandOptionalSource(srcFile *string, prop string) OptionalPath
+ Glob(globPattern string, excludes []string) Paths
+ GlobFiles(globPattern string, excludes []string) Paths
InstallExecutable(installPath OutputPath, name string, srcPath Path, deps ...Path) OutputPath
InstallFile(installPath OutputPath, name string, srcPath Path, deps ...Path) OutputPath
@@ -161,8 +134,30 @@
HostRequiredModuleNames() []string
TargetRequiredModuleNames() []string
+ // android.ModuleContext methods
+ // These are duplicated instead of embedded so that can eventually be wrapped to take an
+ // android.Module instead of a blueprint.Module
+ OtherModuleName(m blueprint.Module) string
+ OtherModuleErrorf(m blueprint.Module, fmt string, args ...interface{})
+ OtherModuleDependencyTag(m blueprint.Module) blueprint.DependencyTag
+
+ GetDirectDepsWithTag(tag blueprint.DependencyTag) []Module
+ GetDirectDepWithTag(name string, tag blueprint.DependencyTag) blueprint.Module
+ GetDirectDep(name string) (blueprint.Module, blueprint.DependencyTag)
+
ModuleSubDir() string
+ VisitDirectDepsBlueprint(visit func(blueprint.Module))
+ VisitDirectDeps(visit func(Module))
+ VisitDirectDepsWithTag(tag blueprint.DependencyTag, visit func(Module))
+ VisitDirectDepsIf(pred func(Module) bool, visit func(Module))
+ // Deprecated: use WalkDeps instead to support multiple dependency tags on the same module
+ VisitDepsDepthFirst(visit func(Module))
+ // Deprecated: use WalkDeps instead to support multiple dependency tags on the same module
+ VisitDepsDepthFirstIf(pred func(Module) bool, visit func(Module))
+ WalkDeps(visit func(Module, Module) bool)
+ WalkDepsBlueprint(visit func(blueprint.Module, blueprint.Module) bool)
+
Variable(pctx PackageContext, name, value string)
Rule(pctx PackageContext, name string, params blueprint.RuleParams, argNames ...string) blueprint.Rule
// Similar to blueprint.ModuleContext.Build, but takes Paths instead of []string,
@@ -843,7 +838,7 @@
func (m *ModuleBase) GenerateBuildActions(blueprintCtx blueprint.ModuleContext) {
ctx := &moduleContext{
module: m.module,
- bp: blueprintCtx,
+ ModuleContext: blueprintCtx,
baseModuleContext: m.baseModuleContextFactory(blueprintCtx),
installDeps: m.computeInstallDeps(blueprintCtx),
installFiles: m.installFiles,
@@ -892,16 +887,6 @@
}
if m.Enabled() {
- ctx.VisitDirectDeps(func(dep Module) {
- if !dep.Enabled() {
- if ctx.Config().AllowMissingDependencies() {
- ctx.AddMissingDependencies([]string{ctx.OtherModuleName(dep)})
- } else {
- ctx.ModuleErrorf("depends on disabled module %q", ctx.OtherModuleName(dep))
- }
- }
- })
-
m.module.GenerateAndroidBuildActions(ctx)
if ctx.Failed() {
return
@@ -939,12 +924,10 @@
debug bool
kind moduleKind
config Config
-
- walkPath []Module
}
type moduleContext struct {
- bp blueprint.ModuleContext
+ blueprint.ModuleContext
baseModuleContext
installDeps Paths
installFiles Paths
@@ -959,7 +942,7 @@
}
func (m *moduleContext) ninjaError(desc string, outputs []string, err error) {
- m.bp.Build(pctx.PackageContext, blueprint.BuildParams{
+ m.ModuleContext.Build(pctx.PackageContext, blueprint.BuildParams{
Rule: ErrorRule,
Description: desc,
Outputs: outputs,
@@ -971,6 +954,10 @@
return
}
+func (m *moduleContext) Config() Config {
+ return m.ModuleContext.Config().(Config)
+}
+
func (m *moduleContext) ModuleBuild(pctx PackageContext, params ModuleBuildParams) {
m.Build(pctx, BuildParams(params))
}
@@ -1020,13 +1007,13 @@
m.variables[name] = value
}
- m.bp.Variable(pctx.PackageContext, name, value)
+ m.ModuleContext.Variable(pctx.PackageContext, name, value)
}
func (m *moduleContext) Rule(pctx PackageContext, name string, params blueprint.RuleParams,
argNames ...string) blueprint.Rule {
- rule := m.bp.Rule(pctx.PackageContext, name, params, argNames...)
+ rule := m.ModuleContext.Rule(pctx.PackageContext, name, params, argNames...)
if m.config.captureBuild {
m.ruleParams[rule] = params
@@ -1053,20 +1040,7 @@
return
}
- m.bp.Build(pctx.PackageContext, bparams)
-}
-
-func (m *moduleContext) Module() Module {
- return m.baseModuleContext.Module()
-}
-
-func (b *baseModuleContext) Module() Module {
- module, _ := b.BaseModuleContext.Module().(Module)
- return module
-}
-
-func (b *baseModuleContext) Config() Config {
- return b.BaseModuleContext.Config().(Config)
+ m.ModuleContext.Build(pctx.PackageContext, bparams)
}
func (m *moduleContext) GetMissingDependencies() []string {
@@ -1080,20 +1054,34 @@
}
}
-func (b *baseModuleContext) validateAndroidModule(module blueprint.Module) Module {
+func (m *moduleContext) validateAndroidModule(module blueprint.Module) Module {
aModule, _ := module.(Module)
+ if aModule == nil {
+ m.ModuleErrorf("module %q not an android module", m.OtherModuleName(aModule))
+ return nil
+ }
+
+ if !aModule.Enabled() {
+ if m.Config().AllowMissingDependencies() {
+ m.AddMissingDependencies([]string{m.OtherModuleName(aModule)})
+ } else {
+ m.ModuleErrorf("depends on disabled module %q", m.OtherModuleName(aModule))
+ }
+ return nil
+ }
+
return aModule
}
-func (b *baseModuleContext) getDirectDepInternal(name string, tag blueprint.DependencyTag) (blueprint.Module, blueprint.DependencyTag) {
+func (m *moduleContext) getDirectDepInternal(name string, tag blueprint.DependencyTag) (blueprint.Module, blueprint.DependencyTag) {
type dep struct {
mod blueprint.Module
tag blueprint.DependencyTag
}
var deps []dep
- b.VisitDirectDepsBlueprint(func(module blueprint.Module) {
+ m.VisitDirectDepsBlueprint(func(module blueprint.Module) {
if aModule, _ := module.(Module); aModule != nil && aModule.base().BaseModuleName() == name {
- returnedTag := b.BaseModuleContext.OtherModuleDependencyTag(aModule)
+ returnedTag := m.ModuleContext.OtherModuleDependencyTag(aModule)
if tag == nil || returnedTag == tag {
deps = append(deps, dep{aModule, returnedTag})
}
@@ -1103,17 +1091,17 @@
return deps[0].mod, deps[0].tag
} else if len(deps) >= 2 {
panic(fmt.Errorf("Multiple dependencies having same BaseModuleName() %q found from %q",
- name, b.ModuleName()))
+ name, m.ModuleName()))
} else {
return nil, nil
}
}
-func (b *baseModuleContext) GetDirectDepsWithTag(tag blueprint.DependencyTag) []Module {
+func (m *moduleContext) GetDirectDepsWithTag(tag blueprint.DependencyTag) []Module {
var deps []Module
- b.VisitDirectDepsBlueprint(func(module blueprint.Module) {
+ m.VisitDirectDepsBlueprint(func(module blueprint.Module) {
if aModule, _ := module.(Module); aModule != nil {
- if b.BaseModuleContext.OtherModuleDependencyTag(aModule) == tag {
+ if m.ModuleContext.OtherModuleDependencyTag(aModule) == tag {
deps = append(deps, aModule)
}
}
@@ -1126,37 +1114,37 @@
return module
}
-func (b *baseModuleContext) GetDirectDep(name string) (blueprint.Module, blueprint.DependencyTag) {
- return b.getDirectDepInternal(name, nil)
+func (m *moduleContext) GetDirectDep(name string) (blueprint.Module, blueprint.DependencyTag) {
+ return m.getDirectDepInternal(name, nil)
}
-func (b *baseModuleContext) VisitDirectDepsBlueprint(visit func(blueprint.Module)) {
- b.BaseModuleContext.VisitDirectDeps(visit)
+func (m *moduleContext) VisitDirectDepsBlueprint(visit func(blueprint.Module)) {
+ m.ModuleContext.VisitDirectDeps(visit)
}
-func (b *baseModuleContext) VisitDirectDeps(visit func(Module)) {
- b.BaseModuleContext.VisitDirectDeps(func(module blueprint.Module) {
- if aModule := b.validateAndroidModule(module); aModule != nil {
+func (m *moduleContext) VisitDirectDeps(visit func(Module)) {
+ m.ModuleContext.VisitDirectDeps(func(module blueprint.Module) {
+ if aModule := m.validateAndroidModule(module); aModule != nil {
visit(aModule)
}
})
}
-func (b *baseModuleContext) VisitDirectDepsWithTag(tag blueprint.DependencyTag, visit func(Module)) {
- b.BaseModuleContext.VisitDirectDeps(func(module blueprint.Module) {
- if aModule := b.validateAndroidModule(module); aModule != nil {
- if b.BaseModuleContext.OtherModuleDependencyTag(aModule) == tag {
+func (m *moduleContext) VisitDirectDepsWithTag(tag blueprint.DependencyTag, visit func(Module)) {
+ m.ModuleContext.VisitDirectDeps(func(module blueprint.Module) {
+ if aModule := m.validateAndroidModule(module); aModule != nil {
+ if m.ModuleContext.OtherModuleDependencyTag(aModule) == tag {
visit(aModule)
}
}
})
}
-func (b *baseModuleContext) VisitDirectDepsIf(pred func(Module) bool, visit func(Module)) {
- b.BaseModuleContext.VisitDirectDepsIf(
+func (m *moduleContext) VisitDirectDepsIf(pred func(Module) bool, visit func(Module)) {
+ m.ModuleContext.VisitDirectDepsIf(
// pred
func(module blueprint.Module) bool {
- if aModule := b.validateAndroidModule(module); aModule != nil {
+ if aModule := m.validateAndroidModule(module); aModule != nil {
return pred(aModule)
} else {
return false
@@ -1168,19 +1156,19 @@
})
}
-func (b *baseModuleContext) VisitDepsDepthFirst(visit func(Module)) {
- b.BaseModuleContext.VisitDepsDepthFirst(func(module blueprint.Module) {
- if aModule := b.validateAndroidModule(module); aModule != nil {
+func (m *moduleContext) VisitDepsDepthFirst(visit func(Module)) {
+ m.ModuleContext.VisitDepsDepthFirst(func(module blueprint.Module) {
+ if aModule := m.validateAndroidModule(module); aModule != nil {
visit(aModule)
}
})
}
-func (b *baseModuleContext) VisitDepsDepthFirstIf(pred func(Module) bool, visit func(Module)) {
- b.BaseModuleContext.VisitDepsDepthFirstIf(
+func (m *moduleContext) VisitDepsDepthFirstIf(pred func(Module) bool, visit func(Module)) {
+ m.ModuleContext.VisitDepsDepthFirstIf(
// pred
func(module blueprint.Module) bool {
- if aModule := b.validateAndroidModule(module); aModule != nil {
+ if aModule := m.validateAndroidModule(module); aModule != nil {
return pred(aModule)
} else {
return false
@@ -1192,21 +1180,15 @@
})
}
-func (b *baseModuleContext) WalkDepsBlueprint(visit func(blueprint.Module, blueprint.Module) bool) {
- b.BaseModuleContext.WalkDeps(visit)
+func (m *moduleContext) WalkDepsBlueprint(visit func(blueprint.Module, blueprint.Module) bool) {
+ m.ModuleContext.WalkDeps(visit)
}
-func (b *baseModuleContext) WalkDeps(visit func(Module, Module) bool) {
- b.walkPath = []Module{b.Module()}
- b.BaseModuleContext.WalkDeps(func(child, parent blueprint.Module) bool {
- childAndroidModule, _ := child.(Module)
- parentAndroidModule, _ := parent.(Module)
+func (m *moduleContext) WalkDeps(visit func(Module, Module) bool) {
+ m.ModuleContext.WalkDeps(func(child, parent blueprint.Module) bool {
+ childAndroidModule := m.validateAndroidModule(child)
+ parentAndroidModule := m.validateAndroidModule(parent)
if childAndroidModule != nil && parentAndroidModule != nil {
- // record walkPath before visit
- for b.walkPath[len(b.walkPath)-1] != parentAndroidModule {
- b.walkPath = b.walkPath[0 : len(b.walkPath)-1]
- }
- b.walkPath = append(b.walkPath, childAndroidModule)
return visit(childAndroidModule, parentAndroidModule)
} else {
return false
@@ -1214,26 +1196,18 @@
})
}
-func (b *baseModuleContext) GetWalkPath() []Module {
- return b.walkPath
-}
-
func (m *moduleContext) VisitAllModuleVariants(visit func(Module)) {
- m.bp.VisitAllModuleVariants(func(module blueprint.Module) {
+ m.ModuleContext.VisitAllModuleVariants(func(module blueprint.Module) {
visit(module.(Module))
})
}
func (m *moduleContext) PrimaryModule() Module {
- return m.bp.PrimaryModule().(Module)
+ return m.ModuleContext.PrimaryModule().(Module)
}
func (m *moduleContext) FinalModule() Module {
- return m.bp.FinalModule().(Module)
-}
-
-func (m *moduleContext) ModuleSubDir() string {
- return m.bp.ModuleSubDir()
+ return m.ModuleContext.FinalModule().(Module)
}
func (b *baseModuleContext) Target() Target {
@@ -1611,20 +1585,20 @@
return m.module.base().commonProperties.Target_required
}
-func (b *baseModuleContext) Glob(globPattern string, excludes []string) Paths {
- ret, err := b.GlobWithDeps(globPattern, excludes)
+func (m *moduleContext) Glob(globPattern string, excludes []string) Paths {
+ ret, err := m.GlobWithDeps(globPattern, excludes)
if err != nil {
- b.ModuleErrorf("glob: %s", err.Error())
+ m.ModuleErrorf("glob: %s", err.Error())
}
- return pathsForModuleSrcFromFullPath(b, ret, true)
+ return pathsForModuleSrcFromFullPath(m, ret, true)
}
-func (b *baseModuleContext) GlobFiles(globPattern string, excludes []string) Paths {
- ret, err := b.GlobWithDeps(globPattern, excludes)
+func (m *moduleContext) GlobFiles(globPattern string, excludes []string) Paths {
+ ret, err := m.GlobWithDeps(globPattern, excludes)
if err != nil {
- b.ModuleErrorf("glob: %s", err.Error())
+ m.ModuleErrorf("glob: %s", err.Error())
}
- return pathsForModuleSrcFromFullPath(b, ret, false)
+ return pathsForModuleSrcFromFullPath(m, ret, false)
}
func init() {
diff --git a/android/mutator.go b/android/mutator.go
index 081c2b2..cd0d152 100644
--- a/android/mutator.go
+++ b/android/mutator.go
@@ -115,14 +115,35 @@
type TopDownMutatorContext interface {
BaseModuleContext
+ OtherModuleExists(name string) bool
Rename(name string)
+ Module() Module
+
+ OtherModuleName(m blueprint.Module) string
+ OtherModuleDir(m blueprint.Module) string
+ OtherModuleErrorf(m blueprint.Module, fmt string, args ...interface{})
+ OtherModuleDependencyTag(m blueprint.Module) blueprint.DependencyTag
CreateModule(blueprint.ModuleFactory, ...interface{})
+
+ GetDirectDepWithTag(name string, tag blueprint.DependencyTag) blueprint.Module
+ GetDirectDep(name string) (blueprint.Module, blueprint.DependencyTag)
+
+ VisitDirectDeps(visit func(Module))
+ VisitDirectDepsWithTag(tag blueprint.DependencyTag, visit func(Module))
+ VisitDirectDepsIf(pred func(Module) bool, visit func(Module))
+ VisitDepsDepthFirst(visit func(Module))
+ VisitDepsDepthFirstIf(pred func(Module) bool, visit func(Module))
+ WalkDeps(visit func(Module, Module) bool)
+ // GetWalkPath is supposed to be called in visit function passed in WalkDeps()
+ // and returns a top-down dependency path from a start module to current child module.
+ GetWalkPath() []Module
}
type topDownMutatorContext struct {
- bp blueprint.TopDownMutatorContext
+ blueprint.TopDownMutatorContext
baseModuleContext
+ walkPath []Module
}
type BottomUpMutator func(BottomUpMutatorContext)
@@ -130,7 +151,9 @@
type BottomUpMutatorContext interface {
BaseModuleContext
+ OtherModuleExists(name string) bool
Rename(name string)
+ Module() blueprint.Module
AddDependency(module blueprint.Module, tag blueprint.DependencyTag, name ...string)
AddReverseDependency(module blueprint.Module, tag blueprint.DependencyTag, name string)
@@ -144,7 +167,7 @@
}
type bottomUpMutatorContext struct {
- bp blueprint.BottomUpMutatorContext
+ blueprint.BottomUpMutatorContext
baseModuleContext
}
@@ -152,8 +175,8 @@
f := func(ctx blueprint.BottomUpMutatorContext) {
if a, ok := ctx.Module().(Module); ok {
actx := &bottomUpMutatorContext{
- bp: ctx,
- baseModuleContext: a.base().baseModuleContextFactory(ctx),
+ BottomUpMutatorContext: ctx,
+ baseModuleContext: a.base().baseModuleContextFactory(ctx),
}
m(actx)
}
@@ -167,8 +190,8 @@
f := func(ctx blueprint.TopDownMutatorContext) {
if a, ok := ctx.Module().(Module); ok {
actx := &topDownMutatorContext{
- bp: ctx,
- baseModuleContext: a.base().baseModuleContextFactory(ctx),
+ TopDownMutatorContext: ctx,
+ baseModuleContext: a.base().baseModuleContextFactory(ctx),
}
m(actx)
}
@@ -193,6 +216,99 @@
}
}
+func (t *topDownMutatorContext) Config() Config {
+ return t.config
+}
+
+func (b *bottomUpMutatorContext) Config() Config {
+ return b.config
+}
+
+func (t *topDownMutatorContext) Module() Module {
+ module, _ := t.TopDownMutatorContext.Module().(Module)
+ return module
+}
+
+func (t *topDownMutatorContext) VisitDirectDeps(visit func(Module)) {
+ t.TopDownMutatorContext.VisitDirectDeps(func(module blueprint.Module) {
+ if aModule, _ := module.(Module); aModule != nil {
+ visit(aModule)
+ }
+ })
+}
+
+func (t *topDownMutatorContext) VisitDirectDepsWithTag(tag blueprint.DependencyTag, visit func(Module)) {
+ t.TopDownMutatorContext.VisitDirectDeps(func(module blueprint.Module) {
+ if aModule, _ := module.(Module); aModule != nil {
+ if t.TopDownMutatorContext.OtherModuleDependencyTag(aModule) == tag {
+ visit(aModule)
+ }
+ }
+ })
+}
+
+func (t *topDownMutatorContext) VisitDirectDepsIf(pred func(Module) bool, visit func(Module)) {
+ t.TopDownMutatorContext.VisitDirectDepsIf(
+ // pred
+ func(module blueprint.Module) bool {
+ if aModule, _ := module.(Module); aModule != nil {
+ return pred(aModule)
+ } else {
+ return false
+ }
+ },
+ // visit
+ func(module blueprint.Module) {
+ visit(module.(Module))
+ })
+}
+
+func (t *topDownMutatorContext) VisitDepsDepthFirst(visit func(Module)) {
+ t.TopDownMutatorContext.VisitDepsDepthFirst(func(module blueprint.Module) {
+ if aModule, _ := module.(Module); aModule != nil {
+ visit(aModule)
+ }
+ })
+}
+
+func (t *topDownMutatorContext) VisitDepsDepthFirstIf(pred func(Module) bool, visit func(Module)) {
+ t.TopDownMutatorContext.VisitDepsDepthFirstIf(
+ // pred
+ func(module blueprint.Module) bool {
+ if aModule, _ := module.(Module); aModule != nil {
+ return pred(aModule)
+ } else {
+ return false
+ }
+ },
+ // visit
+ func(module blueprint.Module) {
+ visit(module.(Module))
+ })
+}
+
+func (t *topDownMutatorContext) WalkDeps(visit func(Module, Module) bool) {
+ t.walkPath = []Module{t.Module()}
+ t.TopDownMutatorContext.WalkDeps(func(child, parent blueprint.Module) bool {
+ childAndroidModule, _ := child.(Module)
+ parentAndroidModule, _ := parent.(Module)
+ if childAndroidModule != nil && parentAndroidModule != nil {
+ // record walkPath before visit
+ for t.walkPath[len(t.walkPath)-1] != parentAndroidModule {
+ t.walkPath = t.walkPath[0 : len(t.walkPath)-1]
+ }
+ t.walkPath = append(t.walkPath, childAndroidModule)
+ return visit(childAndroidModule, parentAndroidModule)
+ } else {
+ return false
+ }
+ })
+}
+
+func (t *topDownMutatorContext) GetWalkPath() []Module {
+ return t.walkPath
+}
+
func (t *topDownMutatorContext) AppendProperties(props ...interface{}) {
for _, p := range props {
err := proptools.AppendMatchingProperties(t.Module().base().customizableProperties,
@@ -220,61 +336,3 @@
}
}
}
-
-// android.topDownMutatorContext either has to embed blueprint.TopDownMutatorContext, in which case every method that
-// has an overridden version in android.BaseModuleContext has to be manually forwarded to BaseModuleContext to avoid
-// ambiguous method errors, or it has to store a blueprint.TopDownMutatorContext non-embedded, in which case every
-// non-overridden method has to be forwarded. There are fewer non-overridden methods, so use the latter. The following
-// methods forward to the identical blueprint versions for topDownMutatorContext and bottomUpMutatorContext.
-
-func (t *topDownMutatorContext) Rename(name string) {
- t.bp.Rename(name)
-}
-
-func (t *topDownMutatorContext) CreateModule(factory blueprint.ModuleFactory, props ...interface{}) {
- t.bp.CreateModule(factory, props...)
-}
-
-func (b *bottomUpMutatorContext) Rename(name string) {
- b.bp.Rename(name)
-}
-
-func (b *bottomUpMutatorContext) AddDependency(module blueprint.Module, tag blueprint.DependencyTag, name ...string) {
- b.bp.AddDependency(module, tag, name...)
-}
-
-func (b *bottomUpMutatorContext) AddReverseDependency(module blueprint.Module, tag blueprint.DependencyTag, name string) {
- b.bp.AddReverseDependency(module, tag, name)
-}
-
-func (b *bottomUpMutatorContext) CreateVariations(variations ...string) []blueprint.Module {
- return b.bp.CreateVariations(variations...)
-}
-
-func (b *bottomUpMutatorContext) CreateLocalVariations(variations ...string) []blueprint.Module {
- return b.bp.CreateLocalVariations(variations...)
-}
-
-func (b *bottomUpMutatorContext) SetDependencyVariation(variation string) {
- b.bp.SetDependencyVariation(variation)
-}
-
-func (b *bottomUpMutatorContext) AddVariationDependencies(variations []blueprint.Variation, tag blueprint.DependencyTag,
- names ...string) {
-
- b.bp.AddVariationDependencies(variations, tag, names...)
-}
-
-func (b *bottomUpMutatorContext) AddFarVariationDependencies(variations []blueprint.Variation,
- tag blueprint.DependencyTag, names ...string) {
-
- b.bp.AddFarVariationDependencies(variations, tag, names...)
-}
-
-func (b *bottomUpMutatorContext) AddInterVariantDependency(tag blueprint.DependencyTag, from, to blueprint.Module) {
- b.bp.AddInterVariantDependency(tag, from, to)
-}
-
-func (b *bottomUpMutatorContext) ReplaceDependencies(name string) {
- b.bp.ReplaceDependencies(name)
-}
diff --git a/android/paths.go b/android/paths.go
index 20b8b82..52d22d5 100644
--- a/android/paths.go
+++ b/android/paths.go
@@ -367,7 +367,7 @@
// each string. If incDirs is false, strip paths with a trailing '/' from the list.
// It intended for use in globs that only list files that exist, so it allows '$' in
// filenames.
-func pathsForModuleSrcFromFullPath(ctx BaseModuleContext, paths []string, incDirs bool) Paths {
+func pathsForModuleSrcFromFullPath(ctx ModuleContext, paths []string, incDirs bool) Paths {
prefix := filepath.Join(ctx.Config().srcDir, ctx.ModuleDir()) + "/"
if prefix == "./" {
prefix = ""