Merge changes Ie8721dcd,If1827b9d,Iec250a2d,I3f46f611,Idf136919, ... am: ba5fff85a7
am: 0b0fcae3ca
Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1651847 Change-Id: I93a2b690fa182ec885e3c941df516c2e04679f1c
This commit is contained in:
@@ -150,7 +150,7 @@ var (
|
||||
&remoteexec.REParams{Labels: map[string]string{"type": "tool", "name": "turbine"},
|
||||
ExecStrategy: "${config.RETurbineExecStrategy}",
|
||||
Inputs: []string{"${config.TurbineJar}", "${out}.rsp", "$implicits"},
|
||||
RSPFile: "${out}.rsp",
|
||||
RSPFiles: []string{"${out}.rsp"},
|
||||
OutputFiles: []string{"$out.tmp"},
|
||||
OutputDirectories: []string{"$outDir"},
|
||||
ToolchainInputs: []string{"${config.JavaCmd}"},
|
||||
@@ -167,7 +167,7 @@ var (
|
||||
&remoteexec.REParams{
|
||||
ExecStrategy: "${config.REJarExecStrategy}",
|
||||
Inputs: []string{"${config.SoongZipCmd}", "${out}.rsp"},
|
||||
RSPFile: "${out}.rsp",
|
||||
RSPFiles: []string{"${out}.rsp"},
|
||||
OutputFiles: []string{"$out"},
|
||||
Platform: map[string]string{remoteexec.PoolKey: "${config.REJavaPool}"},
|
||||
}, []string{"jarArgs"}, nil)
|
||||
@@ -182,7 +182,7 @@ var (
|
||||
&remoteexec.REParams{
|
||||
ExecStrategy: "${config.REZipExecStrategy}",
|
||||
Inputs: []string{"${config.SoongZipCmd}", "${out}.rsp", "$implicits"},
|
||||
RSPFile: "${out}.rsp",
|
||||
RSPFiles: []string{"${out}.rsp"},
|
||||
OutputFiles: []string{"$out"},
|
||||
Platform: map[string]string{remoteexec.PoolKey: "${config.REJavaPool}"},
|
||||
}, []string{"jarArgs"}, []string{"implicits"})
|
||||
|
@@ -1209,7 +1209,7 @@ func metalavaCmd(ctx android.ModuleContext, rule *android.RuleBuilder, javaVersi
|
||||
rule.Command().Text("mkdir -p").Flag(homeDir.String())
|
||||
|
||||
cmd := rule.Command()
|
||||
cmd.FlagWithArg("ANDROID_SDK_HOME=", homeDir.String())
|
||||
cmd.FlagWithArg("ANDROID_PREFS_ROOT=", homeDir.String())
|
||||
|
||||
if ctx.Config().UseRBE() && ctx.Config().IsEnvTrue("RBE_METALAVA") {
|
||||
rule.Remoteable(android.RemoteRuleSupports{RBE: true})
|
||||
@@ -1231,10 +1231,10 @@ func metalavaCmd(ctx android.ModuleContext, rule *android.RuleBuilder, javaVersi
|
||||
Labels: labels,
|
||||
ExecStrategy: execStrategy,
|
||||
Inputs: inputs,
|
||||
RSPFile: implicitsRsp.String(),
|
||||
RSPFiles: []string{implicitsRsp.String()},
|
||||
ToolchainInputs: []string{config.JavaCmd(ctx).String()},
|
||||
Platform: map[string]string{remoteexec.PoolKey: pool},
|
||||
EnvironmentVariables: []string{"ANDROID_SDK_HOME"},
|
||||
EnvironmentVariables: []string{"ANDROID_PREFS_ROOT"},
|
||||
}).NoVarTemplate(ctx.Config().RBEWrapper()))
|
||||
}
|
||||
|
||||
|
@@ -628,7 +628,7 @@ prebuilt_stubs_sources {
|
||||
}
|
||||
|
||||
t.Run("empty/missing directory", func(t *testing.T) {
|
||||
test(t, "empty-directory", []string{})
|
||||
test(t, "empty-directory", nil)
|
||||
})
|
||||
|
||||
t.Run("non-empty set of sources", func(t *testing.T) {
|
||||
|
85
java/lint.go
85
java/lint.go
@@ -182,11 +182,6 @@ type lintPaths struct {
|
||||
cacheDir android.WritablePath
|
||||
homeDir android.WritablePath
|
||||
srcjarDir android.WritablePath
|
||||
|
||||
deps android.Paths
|
||||
|
||||
remoteInputs android.Paths
|
||||
remoteRSPInputs android.Paths
|
||||
}
|
||||
|
||||
func lintRBEExecStrategy(ctx android.ModuleContext) string {
|
||||
@@ -194,39 +189,6 @@ func lintRBEExecStrategy(ctx android.ModuleContext) string {
|
||||
}
|
||||
|
||||
func (l *linter) writeLintProjectXML(ctx android.ModuleContext, rule *android.RuleBuilder) lintPaths {
|
||||
var deps android.Paths
|
||||
var remoteInputs android.Paths
|
||||
var remoteRSPInputs android.Paths
|
||||
|
||||
// Paths passed to trackInputDependency will be added as dependencies of the rule that runs
|
||||
// lint and passed as inputs to the remote execution proxy.
|
||||
trackInputDependency := func(paths ...android.Path) {
|
||||
deps = append(deps, paths...)
|
||||
remoteInputs = append(remoteInputs, paths...)
|
||||
}
|
||||
|
||||
// Paths passed to trackRSPDependency will be added as dependencies of the rule that runs
|
||||
// lint, but the RSP file will be used by the remote execution proxy to find the files so that
|
||||
// it doesn't overflow command line limits.
|
||||
trackRSPDependency := func(paths android.Paths, rsp android.Path) {
|
||||
deps = append(deps, paths...)
|
||||
remoteRSPInputs = append(remoteRSPInputs, rsp)
|
||||
}
|
||||
|
||||
var resourcesList android.WritablePath
|
||||
if len(l.resources) > 0 {
|
||||
// The list of resources may be too long to put on the command line, but
|
||||
// we can't use the rsp file because it is already being used for srcs.
|
||||
// Insert a second rule to write out the list of resources to a file.
|
||||
resourcesList = android.PathForModuleOut(ctx, "resources.list")
|
||||
resListRule := android.NewRuleBuilder(pctx, ctx)
|
||||
resListRule.Command().Text("cp").
|
||||
FlagWithRspFileInputList("", resourcesList.ReplaceExtension(ctx, "rsp"), l.resources).
|
||||
Output(resourcesList)
|
||||
resListRule.Build("lint_resources_list", "lint resources list")
|
||||
trackRSPDependency(l.resources, resourcesList)
|
||||
}
|
||||
|
||||
projectXMLPath := android.PathForModuleOut(ctx, "lint", "project.xml")
|
||||
// Lint looks for a lint.xml file next to the project.xml file, give it one.
|
||||
configXMLPath := android.PathForModuleOut(ctx, "lint", "lint.xml")
|
||||
@@ -235,20 +197,6 @@ func (l *linter) writeLintProjectXML(ctx android.ModuleContext, rule *android.Ru
|
||||
|
||||
srcJarDir := android.PathForModuleOut(ctx, "lint", "srcjars")
|
||||
srcJarList := zipSyncCmd(ctx, rule, srcJarDir, l.srcJars)
|
||||
// TODO(ccross): this is a little fishy. The files extracted from the srcjars are referenced
|
||||
// by the project.xml and used by the later lint rule, but the lint rule depends on the srcjars,
|
||||
// not the extracted files.
|
||||
trackRSPDependency(l.srcJars, srcJarList)
|
||||
|
||||
// TODO(ccross): some of the files in l.srcs are generated sources and should be passed to
|
||||
// lint separately.
|
||||
srcsList := android.PathForModuleOut(ctx, "lint", "srcs.list")
|
||||
srcsListRsp := android.PathForModuleOut(ctx, "lint-srcs.list.rsp")
|
||||
rule.Command().Text("cp").
|
||||
FlagWithRspFileInputList("", srcsListRsp, l.srcs).
|
||||
Output(srcsList)
|
||||
trackRSPDependency(l.srcs, srcsList)
|
||||
rule.Temporary(srcsList)
|
||||
|
||||
cmd := rule.Command().
|
||||
BuiltTool("lint-project-xml").
|
||||
@@ -263,32 +211,31 @@ func (l *linter) writeLintProjectXML(ctx android.ModuleContext, rule *android.Ru
|
||||
cmd.Flag("--test")
|
||||
}
|
||||
if l.manifest != nil {
|
||||
cmd.FlagWithArg("--manifest ", cmd.PathForInput(l.manifest))
|
||||
trackInputDependency(l.manifest)
|
||||
cmd.FlagWithInput("--manifest ", l.manifest)
|
||||
}
|
||||
if l.mergedManifest != nil {
|
||||
cmd.FlagWithArg("--merged_manifest ", cmd.PathForInput(l.mergedManifest))
|
||||
trackInputDependency(l.mergedManifest)
|
||||
cmd.FlagWithInput("--merged_manifest ", l.mergedManifest)
|
||||
}
|
||||
|
||||
cmd.FlagWithInput("--srcs ", srcsList)
|
||||
// TODO(ccross): some of the files in l.srcs are generated sources and should be passed to
|
||||
// lint separately.
|
||||
srcsList := android.PathForModuleOut(ctx, "lint-srcs.list")
|
||||
cmd.FlagWithRspFileInputList("--srcs ", srcsList, l.srcs)
|
||||
|
||||
cmd.FlagWithInput("--generated_srcs ", srcJarList)
|
||||
|
||||
if resourcesList != nil {
|
||||
cmd.FlagWithInput("--resources ", resourcesList)
|
||||
if len(l.resources) > 0 {
|
||||
resourcesList := android.PathForModuleOut(ctx, "lint-resources.list")
|
||||
cmd.FlagWithRspFileInputList("--resources ", resourcesList, l.resources)
|
||||
}
|
||||
|
||||
if l.classes != nil {
|
||||
cmd.FlagWithArg("--classes ", cmd.PathForInput(l.classes))
|
||||
trackInputDependency(l.classes)
|
||||
cmd.FlagWithInput("--classes ", l.classes)
|
||||
}
|
||||
|
||||
cmd.FlagForEachArg("--classpath ", cmd.PathsForInputs(l.classpath))
|
||||
trackInputDependency(l.classpath...)
|
||||
cmd.FlagForEachInput("--classpath ", l.classpath)
|
||||
|
||||
cmd.FlagForEachArg("--extra_checks_jar ", cmd.PathsForInputs(l.extraLintCheckJars))
|
||||
trackInputDependency(l.extraLintCheckJars...)
|
||||
cmd.FlagForEachInput("--extra_checks_jar ", l.extraLintCheckJars)
|
||||
|
||||
cmd.FlagWithArg("--root_dir ", "$PWD")
|
||||
|
||||
@@ -309,11 +256,6 @@ func (l *linter) writeLintProjectXML(ctx android.ModuleContext, rule *android.Ru
|
||||
configXML: configXMLPath,
|
||||
cacheDir: cacheDir,
|
||||
homeDir: homeDir,
|
||||
|
||||
deps: deps,
|
||||
|
||||
remoteInputs: remoteInputs,
|
||||
remoteRSPInputs: remoteRSPInputs,
|
||||
}
|
||||
|
||||
}
|
||||
@@ -424,8 +366,7 @@ func (l *linter) lint(ctx android.ModuleContext) {
|
||||
Flag("--exitcode").
|
||||
Flags(l.properties.Lint.Flags).
|
||||
Implicit(annotationsZipPath).
|
||||
Implicit(apiVersionsXMLPath).
|
||||
Implicits(lintPaths.deps)
|
||||
Implicit(apiVersionsXMLPath)
|
||||
|
||||
rule.Temporary(lintPaths.projectXML)
|
||||
rule.Temporary(lintPaths.configXML)
|
||||
|
Reference in New Issue
Block a user