Check package restrictions for Java libs.
Test: m checkbuild; inspect verbose log.
Test: Manual - compile with unmet restrictions.
Bug: 122937705
Change-Id: I9360ae8b6d9ce016b7827be5e8ffc6eb521809b7
diff --git a/java/builder.go b/java/builder.go
index ce9a5ee..338cd52 100644
--- a/java/builder.go
+++ b/java/builder.go
@@ -113,6 +113,15 @@
},
"rulesFile")
+ packageCheck = pctx.AndroidStaticRule("packageCheck",
+ blueprint.RuleParams{
+ Command: "rm -f $out && " +
+ "${config.PackageCheckCmd} $in $packages && " +
+ "touch $out",
+ CommandDeps: []string{"${config.PackageCheckCmd}"},
+ },
+ "packages")
+
jetifier = pctx.AndroidStaticRule("jetifier",
blueprint.RuleParams{
Command: "${config.JavaCmd} -jar ${config.JetifierJar} -l error -o $out -i $in",
@@ -356,6 +365,19 @@
})
}
+func CheckJarPackages(ctx android.ModuleContext, outputFile android.WritablePath,
+ classesJar android.Path, permittedPackages []string) {
+ ctx.Build(pctx, android.BuildParams{
+ Rule: packageCheck,
+ Description: "packageCheck",
+ Output: outputFile,
+ Input: classesJar,
+ Args: map[string]string{
+ "packages": strings.Join(permittedPackages, " "),
+ },
+ })
+}
+
func TransformJetifier(ctx android.ModuleContext, outputFile android.WritablePath,
inputFile android.Path) {
ctx.Build(pctx, android.BuildParams{