diff options
| author | 2021-02-08 23:47:13 +0000 | |
|---|---|---|
| committer | 2021-02-08 23:47:13 +0000 | |
| commit | ed7bfd9726e79f58e3ac2e02ceb3af0ca3c24895 (patch) | |
| tree | 3b312caeb66a619e20e098d96dd1805552db6d41 /java/builder.go | |
| parent | 3b9b0a11e919fb89a73718147986a72df77a42b8 (diff) | |
| parent | d97cf63cdf31cd7b78cdabedab2f159be836bfea (diff) | |
Merge "Turn missing jarjar output files into errors"
Diffstat (limited to 'java/builder.go')
| -rw-r--r-- | java/builder.go | 11 | 
1 files changed, 9 insertions, 2 deletions
diff --git a/java/builder.go b/java/builder.go index 995160d0e..22a891ae1 100644 --- a/java/builder.go +++ b/java/builder.go @@ -193,12 +193,19 @@ var (  	jarjar = pctx.AndroidStaticRule("jarjar",  		blueprint.RuleParams{ -			Command: "${config.JavaCmd} ${config.JavaVmFlags}" + +			Command: "" + +				// Jarjar doesn't exit with an error when the rules file contains a syntax error, +				// leading to stale or missing files later in the build.  Remove the output file +				// before running jarjar. +				"rm -f ${out} && " + +				"${config.JavaCmd} ${config.JavaVmFlags}" +  				// b/146418363 Enable Android specific jarjar transformer to drop compat annotations  				// for newly repackaged classes. Dropping @UnsupportedAppUsage on repackaged classes  				// avoids adding new hiddenapis after jarjar'ing.  				" -DremoveAndroidCompatAnnotations=true" + -				" -jar ${config.JarjarCmd} process $rulesFile $in $out", +				" -jar ${config.JarjarCmd} process $rulesFile $in $out && " + +				// Turn a missing output file into a ninja error +				`[ -e ${out} ] || (echo "Missing output file"; exit 1)`,  			CommandDeps: []string{"${config.JavaCmd}", "${config.JarjarCmd}", "$rulesFile"},  		},  		"rulesFile")  |