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
This commit is contained in:
@@ -37,10 +37,11 @@ var (
|
|||||||
// this, all java rules write into separate directories and then a post-processing step lists
|
// 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
|
// the files in the the directory into a list file that later rules depend on (and sometimes
|
||||||
// read from directly using @<listfile>)
|
// read from directly using @<listfile>)
|
||||||
cc = pctx.StaticRule("javac",
|
javac = pctx.StaticRule("javac",
|
||||||
blueprint.RuleParams{
|
blueprint.RuleParams{
|
||||||
Command: `$javacCmd -encoding UTF-8 $javacFlags $bootClasspath $classpath ` +
|
Command: `rm -rf "$outDir" && mkdir -p "$outDir" && ` +
|
||||||
`-extdirs "" -d $outDir @$out.rsp || ( rm -rf $outDir; exit 41 ) && ` +
|
`$javacCmd -encoding UTF-8 $javacFlags $bootClasspath $classpath ` +
|
||||||
|
`-extdirs "" -d $outDir @$out.rsp || ( rm -rf "$outDir"; exit 41 ) && ` +
|
||||||
`find $outDir -name "*.class" > $out`,
|
`find $outDir -name "*.class" > $out`,
|
||||||
Rspfile: "$out.rsp",
|
Rspfile: "$out.rsp",
|
||||||
RspfileContent: "$in",
|
RspfileContent: "$in",
|
||||||
@@ -112,10 +113,10 @@ func TransformJavaToClasses(ctx common.AndroidModuleContext, srcFiles []string,
|
|||||||
flags javaBuilderFlags, deps []string) jarSpec {
|
flags javaBuilderFlags, deps []string) jarSpec {
|
||||||
|
|
||||||
classDir := filepath.Join(common.ModuleOutDir(ctx), "classes")
|
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{
|
ctx.Build(pctx, blueprint.BuildParams{
|
||||||
Rule: cc,
|
Rule: javac,
|
||||||
Outputs: []string{classFileList},
|
Outputs: []string{classFileList},
|
||||||
Inputs: srcFiles,
|
Inputs: srcFiles,
|
||||||
Implicits: deps,
|
Implicits: deps,
|
||||||
|
15
java/java.go
15
java/java.go
@@ -257,14 +257,17 @@ func (j *javaBase) GenerateJavaBuildActions(ctx common.AndroidModuleContext) {
|
|||||||
|
|
||||||
srcFiles = genSources(ctx, srcFiles, flags)
|
srcFiles = genSources(ctx, srcFiles, flags)
|
||||||
|
|
||||||
// Compile java sources into .class files
|
if len(srcFiles) > 0 {
|
||||||
classes := TransformJavaToClasses(ctx, srcFiles, flags, javacDeps)
|
// Compile java sources into .class files
|
||||||
if ctx.Failed() {
|
classes := TransformJavaToClasses(ctx, srcFiles, flags, javacDeps)
|
||||||
return
|
if ctx.Failed() {
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
classJarSpecs = append([]jarSpec{classes}, classJarSpecs...)
|
||||||
}
|
}
|
||||||
|
|
||||||
resourceJarSpecs = append(ResourceDirsToJarSpecs(ctx, j.properties.Resource_dirs), resourceJarSpecs...)
|
resourceJarSpecs = append(ResourceDirsToJarSpecs(ctx, j.properties.Resource_dirs), resourceJarSpecs...)
|
||||||
classJarSpecs = append([]jarSpec{classes}, classJarSpecs...)
|
|
||||||
|
|
||||||
manifest := j.properties.Manifest
|
manifest := j.properties.Manifest
|
||||||
if manifest != "" {
|
if manifest != "" {
|
||||||
@@ -294,7 +297,7 @@ func (j *javaBase) GenerateJavaBuildActions(ctx common.AndroidModuleContext) {
|
|||||||
|
|
||||||
j.classpathFile = outputFile
|
j.classpathFile = outputFile
|
||||||
|
|
||||||
if j.properties.Dex {
|
if j.properties.Dex && len(srcFiles) > 0 {
|
||||||
dxFlags := j.properties.Dxflags
|
dxFlags := j.properties.Dxflags
|
||||||
if false /* emma enabled */ {
|
if false /* emma enabled */ {
|
||||||
// If you instrument class files that have local variable debug information in
|
// If you instrument class files that have local variable debug information in
|
||||||
|
Reference in New Issue
Block a user