Merge "Add the implicit deps of javacRE" into main

This commit is contained in:
Spandan Das 2024-04-10 20:20:43 +00:00 committed by Gerrit Code Review
commit fc4d366e38

View file

@ -19,6 +19,7 @@ package java
// functions.
import (
"fmt"
"path/filepath"
"strconv"
"strings"
@ -68,6 +69,8 @@ var (
}, map[string]*remoteexec.REParams{
"$javaTemplate": &remoteexec.REParams{
Labels: map[string]string{"type": "compile", "lang": "java", "compiler": "javac"},
Inputs: []string{"${config.JavacCmd}"},
RSPFiles: []string{"${out}.rsp", "${javacREClasspathDeps}"},
ExecStrategy: "${config.REJavacExecStrategy}",
Platform: map[string]string{remoteexec.PoolKey: "${config.REJavaPool}"},
},
@ -86,7 +89,7 @@ var (
Platform: map[string]string{remoteexec.PoolKey: "${config.REJavaPool}"},
},
}, []string{"javacFlags", "bootClasspath", "classpath", "processorpath", "processor", "srcJars", "srcJarDir",
"outDir", "annoDir", "annoSrcJar", "javaVersion"}, nil)
"outDir", "annoDir", "annoSrcJar", "javaVersion"}, []string{"javacREClasspathDeps"})
_ = pctx.VariableFunc("kytheCorpus",
func(ctx android.PackageVarContext) string { return ctx.Config().XrefCorpusName() })
@ -601,17 +604,7 @@ func transformJavaToClasses(ctx android.ModuleContext, outputFile android.Writab
annoDir = filepath.Join(shardDir, annoDir)
}
rule := javac
if ctx.Config().UseRBE() && ctx.Config().IsEnvTrue("RBE_JAVAC") {
rule = javacRE
}
ctx.Build(pctx, android.BuildParams{
Rule: rule,
Description: desc,
Output: outputFile,
ImplicitOutput: annoSrcJar,
Inputs: srcFiles,
Implicits: deps,
Args: map[string]string{
args := map[string]string{
"javacFlags": flags.javacFlags,
"bootClasspath": bootClasspath,
"classpath": classpathArg,
@ -623,7 +616,32 @@ func transformJavaToClasses(ctx android.ModuleContext, outputFile android.Writab
"annoDir": android.PathForModuleOut(ctx, intermediatesDir, annoDir).String(),
"annoSrcJar": annoSrcJar.String(),
"javaVersion": flags.javaVersion.String(),
},
}
if ctx.Config().UseRBE() && ctx.Config().IsEnvTrue("RBE_JAVAC") {
rule = javacRE
// Write the classpath deps to a file that can be passed as an input to javacRE.
// Skip the shardIdx if the java library is unsharded
shardIdxSuffix := strconv.Itoa(shardIdx)
if shardIdx == -1 {
shardIdxSuffix = ""
}
javacREClasspathDepsFile := outputFile.ReplaceExtension(ctx, fmt.Sprintf("javacre.classpathdeps%v", shardIdxSuffix))
android.WriteFileRule(ctx, javacREClasspathDepsFile, strings.Join(javacClasspath.Strings(), ",")) // The classpath jars are an implicit dep of javacRE
args["javacREClasspathDeps"] = javacREClasspathDepsFile.String()
// Add the deps file to the implicit inputs
deps = append(deps, javacREClasspathDepsFile)
}
ctx.Build(pctx, android.BuildParams{
Rule: rule,
Description: desc,
Output: outputFile,
ImplicitOutput: annoSrcJar,
Inputs: srcFiles,
Implicits: deps,
Args: args,
})
}