Support tagged module references
There are cases where a module needs to refer to an intermediate output of another module instead of its final output. For example, a module may want to use the .jar containing .class files from another module whose final output is a .jar containing classes.dex files. Support a new ":module{.tag}" format in any property that is annotated with `android:"path"`, which will query the target module for its ".tag" output(s). Test: path_properties_test.go, paths_test.go Test: no unexpected changes in build.ninja Change-Id: Icd3c9b0d83ff125771767c04046fcffb9fc3f65a
This commit is contained in:
@@ -41,8 +41,10 @@ func pathDepsMutatorTestModuleFactory() Module {
|
||||
}
|
||||
|
||||
func (p *pathDepsMutatorTestModule) GenerateAndroidBuildActions(ctx ModuleContext) {
|
||||
ctx.VisitDirectDepsWithTag(SourceDepTag, func(dep Module) {
|
||||
p.sourceDeps = append(p.sourceDeps, ctx.OtherModuleName(dep))
|
||||
ctx.VisitDirectDeps(func(dep Module) {
|
||||
if _, ok := ctx.OtherModuleDependencyTag(dep).(sourceOrOutputDependencyTag); ok {
|
||||
p.sourceDeps = append(p.sourceDeps, ctx.OtherModuleName(dep))
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
@@ -59,7 +61,7 @@ func TestPathDepsMutator(t *testing.T) {
|
||||
name: "foo",
|
||||
foo: ":a",
|
||||
bar: [":b"],
|
||||
baz: ":c",
|
||||
baz: ":c{.bar}",
|
||||
qux: ":d",
|
||||
}`,
|
||||
deps: []string{"a", "b", "c"},
|
||||
|
Reference in New Issue
Block a user