aboutsummaryrefslogtreecommitdiffstats
path: root/java
diff options
context:
space:
mode:
authorColin Cross <ccross@android.com>2015-04-10 15:41:49 -0700
committerColin Cross <ccross@android.com>2015-04-10 15:50:37 -0700
commit8cf1334116bb8a4fdc1ff1b2ba924d1598ad382f (patch)
tree34613a1d52349aa82c0a6149282a04c842245b39 /java
parent9679302dfa4aaa37ac61674706c7f4c15ecef553 (diff)
downloadbuild_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.go11
-rw-r--r--java/java.go15
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