Optimize javacFlags and aidlFlags in ninja files
aidlFlags gets specified for every aidl file. Use a module scoped
ninja variable to hold the aidl flags, and while we're at it do the
same for javacFlags.
Change-Id: I980f0006c41918154ab0479d56387630a7e1d677
diff --git a/java/java.go b/java/java.go
index bbec5b5..533cabb 100644
--- a/java/java.go
+++ b/java/java.go
@@ -171,7 +171,7 @@
}
func (j *javaBase) aidlFlags(ctx common.AndroidModuleContext, aidlPreprocess string,
- aidlIncludeDirs []string) string {
+ aidlIncludeDirs []string) []string {
localAidlIncludes := pathtools.PrefixPaths(j.properties.Aidl_includes, common.ModuleSrcDir(ctx))
@@ -187,7 +187,7 @@
flags = append(flags, "-I"+common.ModuleSrcDir(ctx))
flags = append(flags, "-I"+filepath.Join(common.ModuleSrcDir(ctx), "src"))
- return strings.Join(flags, " ")
+ return flags
}
func (j *javaBase) collectDeps(ctx common.AndroidModuleContext) (classpath []string,
@@ -239,9 +239,18 @@
classpath, bootClasspath, classJarSpecs, resourceJarSpecs, aidlPreprocess,
aidlIncludeDirs := j.collectDeps(ctx)
- flags := javaBuilderFlags{
- javacFlags: strings.Join(j.properties.Javacflags, " "),
- aidlFlags: j.aidlFlags(ctx, aidlPreprocess, aidlIncludeDirs),
+ var flags javaBuilderFlags
+
+ javacFlags := j.properties.Javacflags
+ if len(javacFlags) > 0 {
+ ctx.Variable(pctx, "javacFlags", strings.Join(javacFlags, " "))
+ flags.javacFlags = "$javacFlags"
+ }
+
+ aidlFlags := j.aidlFlags(ctx, aidlPreprocess, aidlIncludeDirs)
+ if len(aidlFlags) > 0 {
+ ctx.Variable(pctx, "aidlFlags", strings.Join(aidlFlags, " "))
+ flags.aidlFlags = "$aidlFlags"
}
var javacDeps []string