diff --git a/java/androidmk.go b/java/androidmk.go index 75fb5fb02..85eaff4a6 100644 --- a/java/androidmk.go +++ b/java/androidmk.go @@ -69,26 +69,7 @@ func (library *Library) AndroidMkEntries() []android.AndroidMkEntries { if !library.ApexModuleBase.AvailableFor(android.AvailableToPlatform) { hideFromMake = true } - if hideFromMake { - // May still need to add some additional dependencies. This will be called - // once for the platform variant (even if it is not being used) and once each - // for the APEX specific variants. In order to avoid adding the dependency - // multiple times only add it for the platform variant. - checkedModulePaths := library.additionalCheckedModules - if library.IsForPlatform() && len(checkedModulePaths) != 0 { - mainEntries = android.AndroidMkEntries{ - Class: "FAKE", - // Need at least one output file in order for this to take effect. - OutputFile: android.OptionalPathForPath(checkedModulePaths[0]), - Include: "$(BUILD_PHONY_PACKAGE)", - ExtraEntries: []android.AndroidMkExtraEntriesFunc{ - func(entries *android.AndroidMkEntries) { - entries.AddStrings("LOCAL_ADDITIONAL_CHECKED_MODULE", checkedModulePaths.Strings()...) - }, - }, - } - } - } else { + if !hideFromMake { mainEntries = android.AndroidMkEntries{ Class: "JAVA_LIBRARIES", DistFile: android.OptionalPathForPath(library.distFile), @@ -123,10 +104,6 @@ func (library *Library) AndroidMkEntries() []android.AndroidMkEntries { entries.AddStrings("LOCAL_EXPORT_SDK_LIBRARIES", library.exportedSdkLibs...) - if len(library.additionalCheckedModules) != 0 { - entries.AddStrings("LOCAL_ADDITIONAL_CHECKED_MODULE", library.additionalCheckedModules.Strings()...) - } - if library.proguardDictionary != nil { entries.SetPath("LOCAL_SOONG_PROGUARD_DICT", library.proguardDictionary) } diff --git a/java/builder.go b/java/builder.go index a27e5c390..640dba93b 100644 --- a/java/builder.go +++ b/java/builder.go @@ -206,7 +206,7 @@ var ( blueprint.RuleParams{ Command: "rm -f $out && " + "${config.PackageCheckCmd} $in $packages && " + - "touch $out", + "cp $in $out", CommandDeps: []string{"${config.PackageCheckCmd}"}, }, "packages") @@ -547,8 +547,9 @@ func TransformJarJar(ctx android.ModuleContext, outputFile android.WritablePath, }) } -func CheckJarPackages(ctx android.ModuleContext, outputFile android.WritablePath, - classesJar android.Path, permittedPackages []string) { +func CheckJarPackages(ctx android.ModuleContext, classesJar android.Path, permittedPackages []string) android.ModuleOutPath { + outputFile := android.PathForModuleOut(ctx, "package-check", classesJar.Base()) + ctx.Build(pctx, android.BuildParams{ Rule: packageCheck, Description: "packageCheck", @@ -558,6 +559,8 @@ func CheckJarPackages(ctx android.ModuleContext, outputFile android.WritablePath "packages": strings.Join(permittedPackages, " "), }, }) + + return outputFile } func TransformJetifier(ctx android.ModuleContext, outputFile android.WritablePath, diff --git a/java/java.go b/java/java.go index 2623d2c10..1a5e86f3d 100644 --- a/java/java.go +++ b/java/java.go @@ -467,9 +467,6 @@ type Module struct { // expanded Jarjar_rules expandJarjarRules android.Path - // list of additional targets for checkbuild - additionalCheckedModules android.Paths - // Extra files generated by the module type to be added as java resources. extraResources android.Paths @@ -1527,10 +1524,10 @@ func (j *Module) compile(ctx android.ModuleContext, aaptSrcJar android.Path) { // Check package restrictions if necessary. if len(j.properties.Permitted_packages) > 0 { - // Check packages and copy to package-checked file. - pkgckFile := android.PathForModuleOut(ctx, "package-check.stamp") - CheckJarPackages(ctx, pkgckFile, outputFile, j.properties.Permitted_packages) - j.additionalCheckedModules = append(j.additionalCheckedModules, pkgckFile) + // Check packages and copy input to package-checked file. + // Use the file copied after a successful package check as the output file for this + // module so that any dependencies on this module will trigger the package check. + outputFile = CheckJarPackages(ctx, outputFile, j.properties.Permitted_packages) if ctx.Failed() { return