diff options
author | 2019-05-29 14:40:35 -0700 | |
---|---|---|
committer | 2019-06-04 10:22:51 -0700 | |
commit | 41955e8895fe33022a6759b9739a2368b206c392 (patch) | |
tree | f1a20db995473d7475a502113eb583b317c39a0a /java/java.go | |
parent | 4c2c46f0a72e21ffe6be407028b857ba461144d7 (diff) |
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
Diffstat (limited to 'java/java.go')
-rw-r--r-- | java/java.go | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/java/java.go b/java/java.go index 31c6afec8..bfbd98c8f 100644 --- a/java/java.go +++ b/java/java.go @@ -351,15 +351,20 @@ type Module struct { dexpreopter } -func (j *Module) Srcs() android.Paths { - return append(android.Paths{j.outputFile}, j.extraOutputFiles...) +func (j *Module) OutputFiles(tag string) (android.Paths, error) { + switch tag { + case "": + return append(android.Paths{j.outputFile}, j.extraOutputFiles...), nil + default: + return nil, fmt.Errorf("unsupported module reference tag %q", tag) + } } func (j *Module) DexJarFile() android.Path { return j.dexJarFile } -var _ android.SourceFileProducer = (*Module)(nil) +var _ android.OutputFileProducer = (*Module)(nil) type Dependency interface { HeaderJars() android.Paths @@ -813,8 +818,6 @@ func (j *Module) collectDeps(ctx android.ModuleContext) deps { } default: switch tag { - case android.DefaultsDepTag, android.SourceDepTag: - // Nothing to do case systemModulesTag: if deps.systemModules != nil { panic("Found two system module dependencies") @@ -824,8 +827,6 @@ func (j *Module) collectDeps(ctx android.ModuleContext) deps { panic("Missing directory for system module dependency") } deps.systemModules = sm.outputFile - default: - ctx.ModuleErrorf("depends on non-java module %q", otherName) } } }) |