From 41955e8895fe33022a6759b9739a2368b206c392 Mon Sep 17 00:00:00 2001 From: Colin Cross Date: Wed, 29 May 2019 14:40:35 -0700 Subject: 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 --- java/java.go | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) (limited to 'java/java.go') 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) } } }) -- cgit v1.2.3-59-g8ed1b