diff options
author | Colin Cross <ccross@android.com> | 2015-04-10 15:41:49 -0700 |
---|---|---|
committer | Colin Cross <ccross@android.com> | 2015-04-10 15:50:37 -0700 |
commit | 8cf1334116bb8a4fdc1ff1b2ba924d1598ad382f (patch) | |
tree | 34613a1d52349aa82c0a6149282a04c842245b39 /java | |
parent | 9679302dfa4aaa37ac61674706c7f4c15ecef553 (diff) | |
download | build_soong-8cf1334116bb8a4fdc1ff1b2ba924d1598ad382f.tar.gz build_soong-8cf1334116bb8a4fdc1ff1b2ba924d1598ad382f.tar.bz2 build_soong-8cf1334116bb8a4fdc1ff1b2ba924d1598ad382f.zip |
Miscellaneous fixes for java compiling
Remove java out directory before compiling to avoid incremental compile
issues. Move the rspfile out of the out directory so it doesn't get
deleted. cc->javac in the javac rule. Don't call javac if there
are no source files.
Change-Id: I0bb06c214da54a587bd9e7c9d17caaf0ed1e595e
Diffstat (limited to 'java')
-rw-r--r-- | java/builder.go | 11 | ||||
-rw-r--r-- | java/java.go | 15 |
2 files changed, 15 insertions, 11 deletions
diff --git a/java/builder.go b/java/builder.go index 02d65aa2..d939e6a6 100644 --- a/java/builder.go +++ b/java/builder.go @@ -37,10 +37,11 @@ var ( // this, all java rules write into separate directories and then a post-processing step lists // the files in the the directory into a list file that later rules depend on (and sometimes // read from directly using @<listfile>) - cc = pctx.StaticRule("javac", + javac = pctx.StaticRule("javac", blueprint.RuleParams{ - Command: `$javacCmd -encoding UTF-8 $javacFlags $bootClasspath $classpath ` + - `-extdirs "" -d $outDir @$out.rsp || ( rm -rf $outDir; exit 41 ) && ` + + Command: `rm -rf "$outDir" && mkdir -p "$outDir" && ` + + `$javacCmd -encoding UTF-8 $javacFlags $bootClasspath $classpath ` + + `-extdirs "" -d $outDir @$out.rsp || ( rm -rf "$outDir"; exit 41 ) && ` + `find $outDir -name "*.class" > $out`, Rspfile: "$out.rsp", RspfileContent: "$in", @@ -112,10 +113,10 @@ func TransformJavaToClasses(ctx common.AndroidModuleContext, srcFiles []string, flags javaBuilderFlags, deps []string) jarSpec { classDir := filepath.Join(common.ModuleOutDir(ctx), "classes") - classFileList := filepath.Join(classDir, "classes.list") + classFileList := filepath.Join(common.ModuleOutDir(ctx), "classes.list") ctx.Build(pctx, blueprint.BuildParams{ - Rule: cc, + Rule: javac, Outputs: []string{classFileList}, Inputs: srcFiles, Implicits: deps, diff --git a/java/java.go b/java/java.go index ca3a4c75..07bbc117 100644 --- a/java/java.go +++ b/java/java.go @@ -257,14 +257,17 @@ func (j *javaBase) GenerateJavaBuildActions(ctx common.AndroidModuleContext) { srcFiles = genSources(ctx, srcFiles, flags) - // Compile java sources into .class files - classes := TransformJavaToClasses(ctx, srcFiles, flags, javacDeps) - if ctx.Failed() { - return + if len(srcFiles) > 0 { + // Compile java sources into .class files + classes := TransformJavaToClasses(ctx, srcFiles, flags, javacDeps) + if ctx.Failed() { + return + } + + classJarSpecs = append([]jarSpec{classes}, classJarSpecs...) } resourceJarSpecs = append(ResourceDirsToJarSpecs(ctx, j.properties.Resource_dirs), resourceJarSpecs...) - classJarSpecs = append([]jarSpec{classes}, classJarSpecs...) manifest := j.properties.Manifest if manifest != "" { @@ -294,7 +297,7 @@ func (j *javaBase) GenerateJavaBuildActions(ctx common.AndroidModuleContext) { j.classpathFile = outputFile - if j.properties.Dex { + if j.properties.Dex && len(srcFiles) > 0 { dxFlags := j.properties.Dxflags if false /* emma enabled */ { // If you instrument class files that have local variable debug information in |