Merge "Propagate permitted packages to sdk snapshot" am: 81d56dcd3f

Original change: https://android-review.googlesource.com/c/platform/build/soong/+/1768128

Change-Id: I0319ea86d5d966892a6b02c6a52100475306c056
This commit is contained in:
Paul Duffin
2021-07-15 15:10:38 +00:00
committed by Automerger Merge Worker
4 changed files with 40 additions and 0 deletions

View File

@@ -580,6 +580,10 @@ type librarySdkMemberProperties struct {
JarToExport android.Path `android:"arch_variant"` JarToExport android.Path `android:"arch_variant"`
AidlIncludeDirs android.Paths AidlIncludeDirs android.Paths
// The list of permitted packages that need to be passed to the prebuilts as they are used to
// create the updatable-bcp-packages.txt file.
PermittedPackages []string
} }
func (p *librarySdkMemberProperties) PopulateFromVariant(ctx android.SdkMemberContext, variant android.Module) { func (p *librarySdkMemberProperties) PopulateFromVariant(ctx android.SdkMemberContext, variant android.Module) {
@@ -588,6 +592,8 @@ func (p *librarySdkMemberProperties) PopulateFromVariant(ctx android.SdkMemberCo
p.JarToExport = ctx.MemberType().(*librarySdkMemberType).jarToExportGetter(ctx, j) p.JarToExport = ctx.MemberType().(*librarySdkMemberType).jarToExportGetter(ctx, j)
p.AidlIncludeDirs = j.AidlIncludeDirs() p.AidlIncludeDirs = j.AidlIncludeDirs()
p.PermittedPackages = j.PermittedPackagesForUpdatableBootJars()
} }
func (p *librarySdkMemberProperties) AddToPropertySet(ctx android.SdkMemberContext, propertySet android.BpPropertySet) { func (p *librarySdkMemberProperties) AddToPropertySet(ctx android.SdkMemberContext, propertySet android.BpPropertySet) {
@@ -606,6 +612,10 @@ func (p *librarySdkMemberProperties) AddToPropertySet(ctx android.SdkMemberConte
propertySet.AddProperty("jars", []string{snapshotRelativeJavaLibPath}) propertySet.AddProperty("jars", []string{snapshotRelativeJavaLibPath})
} }
if len(p.PermittedPackages) > 0 {
propertySet.AddProperty("permitted_packages", p.PermittedPackages)
}
// Do not copy anything else to the snapshot. // Do not copy anything else to the snapshot.
if memberType.onlyCopyJarToSnapshot { if memberType.onlyCopyJarToSnapshot {
return return
@@ -1126,6 +1136,10 @@ type ImportProperties struct {
Installable *bool Installable *bool
// If not empty, classes are restricted to the specified packages and their sub-packages.
// This information is used to generate the updatable-bcp-packages.txt file.
Permitted_packages []string
// List of shared java libs that this module has dependencies to // List of shared java libs that this module has dependencies to
Libs []string Libs []string

View File

@@ -1897,6 +1897,10 @@ type sdkLibraryImportProperties struct {
// If set to true, compile dex files for the stubs. Defaults to false. // If set to true, compile dex files for the stubs. Defaults to false.
Compile_dex *bool Compile_dex *bool
// If not empty, classes are restricted to the specified packages and their sub-packages.
// This information is used to generate the updatable-bcp-packages.txt file.
Permitted_packages []string
} }
type SdkLibraryImport struct { type SdkLibraryImport struct {
@@ -2510,6 +2514,8 @@ type sdkLibrarySdkMemberProperties struct {
// The paths to the doctag files to add to the prebuilt. // The paths to the doctag files to add to the prebuilt.
Doctag_paths android.Paths Doctag_paths android.Paths
Permitted_packages []string
} }
type scopeProperties struct { type scopeProperties struct {
@@ -2550,6 +2556,7 @@ func (s *sdkLibrarySdkMemberProperties) PopulateFromVariant(ctx android.SdkMembe
s.Shared_library = proptools.BoolPtr(sdk.sharedLibrary()) s.Shared_library = proptools.BoolPtr(sdk.sharedLibrary())
s.Compile_dex = sdk.dexProperties.Compile_dex s.Compile_dex = sdk.dexProperties.Compile_dex
s.Doctag_paths = sdk.doctagPaths s.Doctag_paths = sdk.doctagPaths
s.Permitted_packages = sdk.PermittedPackagesForUpdatableBootJars()
} }
func (s *sdkLibrarySdkMemberProperties) AddToPropertySet(ctx android.SdkMemberContext, propertySet android.BpPropertySet) { func (s *sdkLibrarySdkMemberProperties) AddToPropertySet(ctx android.SdkMemberContext, propertySet android.BpPropertySet) {
@@ -2562,6 +2569,9 @@ func (s *sdkLibrarySdkMemberProperties) AddToPropertySet(ctx android.SdkMemberCo
if s.Compile_dex != nil { if s.Compile_dex != nil {
propertySet.AddProperty("compile_dex", *s.Compile_dex) propertySet.AddProperty("compile_dex", *s.Compile_dex)
} }
if len(s.Permitted_packages) > 0 {
propertySet.AddProperty("permitted_packages", s.Permitted_packages)
}
for _, apiScope := range allApiScopes { for _, apiScope := range allApiScopes {
if properties, ok := s.Scopes[apiScope]; ok { if properties, ok := s.Scopes[apiScope]; ok {

View File

@@ -327,6 +327,7 @@ java_import {
visibility: ["//visibility:public"], visibility: ["//visibility:public"],
apex_available: ["myapex"], apex_available: ["myapex"],
jars: ["java/mybootlib.jar"], jars: ["java/mybootlib.jar"],
permitted_packages: ["mybootlib"],
} }
java_sdk_library_import { java_sdk_library_import {
@@ -336,6 +337,7 @@ java_sdk_library_import {
apex_available: ["myapex"], apex_available: ["myapex"],
shared_library: true, shared_library: true,
compile_dex: true, compile_dex: true,
permitted_packages: ["myothersdklibrary"],
public: { public: {
jars: ["sdk_library/public/myothersdklibrary-stubs.jar"], jars: ["sdk_library/public/myothersdklibrary-stubs.jar"],
stub_srcs: ["sdk_library/public/myothersdklibrary_stub_sources"], stub_srcs: ["sdk_library/public/myothersdklibrary_stub_sources"],
@@ -409,6 +411,7 @@ java_import {
visibility: ["//visibility:public"], visibility: ["//visibility:public"],
apex_available: ["myapex"], apex_available: ["myapex"],
jars: ["java/mybootlib.jar"], jars: ["java/mybootlib.jar"],
permitted_packages: ["mybootlib"],
} }
java_sdk_library_import { java_sdk_library_import {
@@ -418,6 +421,7 @@ java_sdk_library_import {
apex_available: ["myapex"], apex_available: ["myapex"],
shared_library: true, shared_library: true,
compile_dex: true, compile_dex: true,
permitted_packages: ["myothersdklibrary"],
public: { public: {
jars: ["sdk_library/public/myothersdklibrary-stubs.jar"], jars: ["sdk_library/public/myothersdklibrary-stubs.jar"],
stub_srcs: ["sdk_library/public/myothersdklibrary_stub_sources"], stub_srcs: ["sdk_library/public/myothersdklibrary_stub_sources"],
@@ -779,6 +783,7 @@ func TestSnapshotWithBootclasspathFragment_HiddenAPI(t *testing.T) {
srcs: ["Test.java"], srcs: ["Test.java"],
compile_dex: true, compile_dex: true,
public: {enabled: true}, public: {enabled: true},
permitted_packages: ["mysdklibrary"],
} }
`), `),
).RunTest(t) ).RunTest(t)
@@ -822,6 +827,7 @@ java_import {
visibility: ["//visibility:public"], visibility: ["//visibility:public"],
apex_available: ["myapex"], apex_available: ["myapex"],
jars: ["java/mybootlib.jar"], jars: ["java/mybootlib.jar"],
permitted_packages: ["mybootlib"],
} }
java_sdk_library_import { java_sdk_library_import {
@@ -831,6 +837,7 @@ java_sdk_library_import {
apex_available: ["//apex_available:platform"], apex_available: ["//apex_available:platform"],
shared_library: true, shared_library: true,
compile_dex: true, compile_dex: true,
permitted_packages: ["mysdklibrary"],
public: { public: {
jars: ["sdk_library/public/mysdklibrary-stubs.jar"], jars: ["sdk_library/public/mysdklibrary-stubs.jar"],
stub_srcs: ["sdk_library/public/mysdklibrary_stub_sources"], stub_srcs: ["sdk_library/public/mysdklibrary_stub_sources"],

View File

@@ -175,6 +175,7 @@ func TestSnapshotWithJavaHeaderLibrary(t *testing.T) {
sdk_version: "none", sdk_version: "none",
compile_dex: true, compile_dex: true,
host_supported: true, host_supported: true,
permitted_packages: ["pkg.myjavalib"],
} }
`) `)
@@ -188,6 +189,7 @@ java_import {
visibility: ["//visibility:public"], visibility: ["//visibility:public"],
apex_available: ["//apex_available:platform"], apex_available: ["//apex_available:platform"],
jars: ["java/myjavalib.jar"], jars: ["java/myjavalib.jar"],
permitted_packages: ["pkg.myjavalib"],
} }
`), `),
checkVersionedAndroidBpContents(` checkVersionedAndroidBpContents(`
@@ -199,6 +201,7 @@ java_import {
visibility: ["//visibility:public"], visibility: ["//visibility:public"],
apex_available: ["//apex_available:platform"], apex_available: ["//apex_available:platform"],
jars: ["java/myjavalib.jar"], jars: ["java/myjavalib.jar"],
permitted_packages: ["pkg.myjavalib"],
} }
sdk_snapshot { sdk_snapshot {
@@ -437,6 +440,7 @@ func TestSnapshotWithJavaBootLibrary(t *testing.T) {
system_modules: "none", system_modules: "none",
sdk_version: "none", sdk_version: "none",
compile_dex: true, compile_dex: true,
permitted_packages: ["pkg.myjavalib"],
} }
`) `)
@@ -450,6 +454,7 @@ java_import {
visibility: ["//visibility:public"], visibility: ["//visibility:public"],
apex_available: ["//apex_available:platform"], apex_available: ["//apex_available:platform"],
jars: ["java/myjavalib.jar"], jars: ["java/myjavalib.jar"],
permitted_packages: ["pkg.myjavalib"],
} }
`), `),
checkVersionedAndroidBpContents(` checkVersionedAndroidBpContents(`
@@ -461,6 +466,7 @@ java_import {
visibility: ["//visibility:public"], visibility: ["//visibility:public"],
apex_available: ["//apex_available:platform"], apex_available: ["//apex_available:platform"],
jars: ["java/myjavalib.jar"], jars: ["java/myjavalib.jar"],
permitted_packages: ["pkg.myjavalib"],
} }
module_exports_snapshot { module_exports_snapshot {
@@ -1045,6 +1051,7 @@ func TestSnapshotWithJavaSdkLibrary(t *testing.T) {
shared_library: false, shared_library: false,
stubs_library_visibility: ["//other"], stubs_library_visibility: ["//other"],
stubs_source_visibility: ["//another"], stubs_source_visibility: ["//another"],
permitted_packages: ["pkg.myjavalib"],
} }
`) `)
@@ -1058,6 +1065,7 @@ java_sdk_library_import {
visibility: ["//visibility:public"], visibility: ["//visibility:public"],
apex_available: ["//apex_available:anyapex"], apex_available: ["//apex_available:anyapex"],
shared_library: false, shared_library: false,
permitted_packages: ["pkg.myjavalib"],
public: { public: {
jars: ["sdk_library/public/myjavalib-stubs.jar"], jars: ["sdk_library/public/myjavalib-stubs.jar"],
stub_srcs: ["sdk_library/public/myjavalib_stub_sources"], stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
@@ -1090,6 +1098,7 @@ java_sdk_library_import {
visibility: ["//visibility:public"], visibility: ["//visibility:public"],
apex_available: ["//apex_available:anyapex"], apex_available: ["//apex_available:anyapex"],
shared_library: false, shared_library: false,
permitted_packages: ["pkg.myjavalib"],
public: { public: {
jars: ["sdk_library/public/myjavalib-stubs.jar"], jars: ["sdk_library/public/myjavalib-stubs.jar"],
stub_srcs: ["sdk_library/public/myjavalib_stub_sources"], stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],