Replace extract-srcjars.sh with zipsync tool
extract_srcjars.sh uses zipinfo and unzip, which fail with an error on an empty zip file. Instead of trying to hack around this (which is hard to make guarantees for since they are non-hermetic host tools), replace them with a go tool to unzip a set of zip files into a directory. Bug: 73885582 Test: m checkbuild Change-Id: I151fed347ed5196726e36866ffc27bc831799afb
This commit is contained in:
@@ -41,7 +41,7 @@ var (
|
||||
javac = pctx.AndroidGomaStaticRule("javac",
|
||||
blueprint.RuleParams{
|
||||
Command: `rm -rf "$outDir" "$annoDir" "$srcJarDir" && mkdir -p "$outDir" "$annoDir" "$srcJarDir" && ` +
|
||||
`${config.ExtractSrcJarsCmd} $srcJarDir $srcJarDir/list $srcJars && ` +
|
||||
`${config.ZipSyncCmd} -d $srcJarDir -l $srcJarDir/list -f "*.java" $srcJars && ` +
|
||||
`${config.SoongJavacWrapper} ${config.JavacWrapper}${config.JavacCmd} ${config.JavacHeapFlags} ${config.CommonJdkFlags} ` +
|
||||
`$javacFlags $bootClasspath $classpath ` +
|
||||
`-source $javaVersion -target $javaVersion ` +
|
||||
@@ -50,7 +50,7 @@ var (
|
||||
CommandDeps: []string{
|
||||
"${config.JavacCmd}",
|
||||
"${config.SoongZipCmd}",
|
||||
"${config.ExtractSrcJarsCmd}",
|
||||
"${config.ZipSyncCmd}",
|
||||
},
|
||||
CommandOrderOnly: []string{"${config.SoongJavacWrapper}"},
|
||||
Rspfile: "$out.rsp",
|
||||
@@ -62,7 +62,7 @@ var (
|
||||
kotlinc = pctx.AndroidGomaStaticRule("kotlinc",
|
||||
blueprint.RuleParams{
|
||||
Command: `rm -rf "$outDir" "$srcJarDir" && mkdir -p "$outDir" "$srcJarDir" && ` +
|
||||
`${config.ExtractSrcJarsCmd} $srcJarDir $srcJarDir/list $srcJars && ` +
|
||||
`${config.ZipSyncCmd} -d $srcJarDir -l $srcJarDir/list -f "*.java" $srcJars && ` +
|
||||
`${config.GenKotlinBuildFileCmd} $classpath $outDir $out.rsp $srcJarDir/list > $outDir/kotlinc-build.xml &&` +
|
||||
`${config.KotlincCmd} $kotlincFlags ` +
|
||||
`-jvm-target $kotlinJvmTarget -Xbuild-file=$outDir/kotlinc-build.xml && ` +
|
||||
@@ -72,7 +72,7 @@ var (
|
||||
"${config.KotlinCompilerJar}",
|
||||
"${config.GenKotlinBuildFileCmd}",
|
||||
"${config.SoongZipCmd}",
|
||||
"${config.ExtractSrcJarsCmd}",
|
||||
"${config.ZipSyncCmd}",
|
||||
},
|
||||
Rspfile: "$out.rsp",
|
||||
RspfileContent: `$in`,
|
||||
@@ -82,7 +82,7 @@ var (
|
||||
errorprone = pctx.AndroidStaticRule("errorprone",
|
||||
blueprint.RuleParams{
|
||||
Command: `rm -rf "$outDir" "$annoDir" "$srcJarDir" && mkdir -p "$outDir" "$annoDir" "$srcJarDir" && ` +
|
||||
`${config.ExtractSrcJarsCmd} $srcJarDir $srcJarDir/list $srcJars && ` +
|
||||
`${config.ZipSyncCmd} -d $srcJarDir -l $srcJarDir/list -f "*.java" $srcJars && ` +
|
||||
`${config.SoongJavacWrapper} ${config.ErrorProneCmd} ` +
|
||||
`$javacFlags $bootClasspath $classpath ` +
|
||||
`-source $javaVersion -target $javaVersion ` +
|
||||
@@ -93,7 +93,7 @@ var (
|
||||
"${config.ErrorProneJavacJar}",
|
||||
"${config.ErrorProneJar}",
|
||||
"${config.SoongZipCmd}",
|
||||
"${config.ExtractSrcJarsCmd}",
|
||||
"${config.ZipSyncCmd}",
|
||||
},
|
||||
CommandOrderOnly: []string{"${config.SoongJavacWrapper}"},
|
||||
Rspfile: "$out.rsp",
|
||||
|
@@ -82,13 +82,13 @@ func init() {
|
||||
pctx.SourcePathVariable("JrtFsJar", "${JavaHome}/lib/jrt-fs.jar")
|
||||
pctx.SourcePathVariable("Ziptime", "prebuilts/build-tools/${hostPrebuiltTag}/bin/ziptime")
|
||||
|
||||
pctx.SourcePathVariable("ExtractSrcJarsCmd", "build/soong/scripts/extract-srcjars.sh")
|
||||
pctx.SourcePathVariable("GenKotlinBuildFileCmd", "build/soong/scripts/gen-kotlin-build-file.sh")
|
||||
|
||||
pctx.SourcePathVariable("JarArgsCmd", "build/soong/scripts/jar-args.sh")
|
||||
pctx.HostBinToolVariable("SoongZipCmd", "soong_zip")
|
||||
pctx.HostBinToolVariable("MergeZipsCmd", "merge_zips")
|
||||
pctx.HostBinToolVariable("Zip2ZipCmd", "zip2zip")
|
||||
pctx.HostBinToolVariable("ZipSyncCmd", "zipsync")
|
||||
pctx.VariableFunc("DxCmd", func(ctx android.PackageVarContext) string {
|
||||
config := ctx.Config()
|
||||
if config.IsEnvFalse("USE_D8") {
|
||||
|
@@ -73,7 +73,7 @@ func makeVarsProvider(ctx android.MakeVarsContext) {
|
||||
}
|
||||
|
||||
ctx.Strict("SOONG_JAVAC_WRAPPER", "${SoongJavacWrapper}")
|
||||
ctx.Strict("EXTRACT_SRCJARS", "${ExtractSrcJarsCmd}")
|
||||
ctx.Strict("ZIPSYNC", "${ZipSyncCmd}")
|
||||
|
||||
ctx.Strict("JACOCO_CLI_JAR", "${JacocoCLIJar}")
|
||||
ctx.Strict("DEFAULT_JACOCO_EXCLUDE_FILTER", strings.Join(DefaultJacocoExcludeFilter, ","))
|
||||
|
@@ -28,14 +28,14 @@ var (
|
||||
javadoc = pctx.AndroidStaticRule("javadoc",
|
||||
blueprint.RuleParams{
|
||||
Command: `rm -rf "$outDir" "$srcJarDir" "$stubsDir" && mkdir -p "$outDir" "$srcJarDir" "$stubsDir" && ` +
|
||||
`${config.ExtractSrcJarsCmd} $srcJarDir $srcJarDir/list $srcJars && ` +
|
||||
`${config.ZipSyncCmd} -d $srcJarDir -l $srcJarDir/list -f "*.java" $srcJars && ` +
|
||||
`${config.JavadocCmd} -encoding UTF-8 @$out.rsp @$srcJarDir/list ` +
|
||||
`$opts $bootclasspathArgs $classpathArgs -sourcepath $sourcepath ` +
|
||||
`-d $outDir -quiet && ` +
|
||||
`${config.SoongZipCmd} -write_if_changed -d -o $docZip -C $outDir -D $outDir && ` +
|
||||
`${config.SoongZipCmd} -write_if_changed -jar -o $out -C $stubsDir -D $stubsDir`,
|
||||
CommandDeps: []string{
|
||||
"${config.ExtractSrcJarsCmd}",
|
||||
"${config.ZipSyncCmd}",
|
||||
"${config.JavadocCmd}",
|
||||
"${config.SoongZipCmd}",
|
||||
"$JsilverJar",
|
||||
|
Reference in New Issue
Block a user