Remove support for generating versioned snapshots

Previously, the code for selecting specific versions of sdk snapshots
was removed (along with the uses_sdks property). That makes versioned
snapshots useless so this change removes all the code and tests that
generated those versioned snapshots.

Bug: 232546567
Test: m nothing
      packages/modules/common/build/mainline_modules_sdks.sh
Change-Id: Ib6d1b72bc8399fbb39075494ae37da92f4b28d03
This commit is contained in:
Paul Duffin 2022-05-24 20:10:05 +00:00
parent 78ce8c23de
commit b01ac4b6ba
14 changed files with 119 additions and 2242 deletions

View file

@ -124,7 +124,7 @@ func TestSnapshotWithBootclasspathFragment_ImageName(t *testing.T) {
preparerForSnapshot := fixtureAddPrebuiltApexForBootclasspathFragment("com.android.art", "mybootclasspathfragment")
CheckSnapshot(t, result, "mysdk", "",
checkUnversionedAndroidBpContents(`
checkAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
prebuilt_bootclasspath_fragment {
@ -151,41 +151,6 @@ java_import {
apex_available: ["com.android.art"],
jars: ["java_boot_libs/snapshot/jars/are/invalid/mybootlib.jar"],
}
`),
checkVersionedAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
prebuilt_bootclasspath_fragment {
name: "mysdk_mybootclasspathfragment@current",
sdk_member_name: "mybootclasspathfragment",
visibility: ["//visibility:public"],
apex_available: ["com.android.art"],
image_name: "art",
contents: ["mysdk_mybootlib@current"],
hidden_api: {
annotation_flags: "hiddenapi/annotation-flags.csv",
metadata: "hiddenapi/metadata.csv",
index: "hiddenapi/index.csv",
signature_patterns: "hiddenapi/signature-patterns.csv",
filtered_stub_flags: "hiddenapi/filtered-stub-flags.csv",
filtered_flags: "hiddenapi/filtered-flags.csv",
},
}
java_import {
name: "mysdk_mybootlib@current",
sdk_member_name: "mybootlib",
visibility: ["//visibility:public"],
apex_available: ["com.android.art"],
jars: ["java_boot_libs/snapshot/jars/are/invalid/mybootlib.jar"],
}
sdk_snapshot {
name: "mysdk@current",
visibility: ["//visibility:public"],
bootclasspath_fragments: ["mysdk_mybootclasspathfragment@current"],
java_boot_libs: ["mysdk_mybootlib@current"],
}
`),
checkAllCopyRules(`
.intermediates/mybootclasspathfragment/android_common/modular-hiddenapi/annotation-flags.csv -> hiddenapi/annotation-flags.csv
@ -317,7 +282,7 @@ func TestSnapshotWithBootClasspathFragment_Contents(t *testing.T) {
preparerForSnapshot := fixtureAddPrebuiltApexForBootclasspathFragment("myapex", "mybootclasspathfragment")
CheckSnapshot(t, result, "mysdk", "",
checkUnversionedAndroidBpContents(`
checkAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
prebuilt_bootclasspath_fragment {
@ -400,103 +365,6 @@ java_sdk_library_import {
removed_api: "sdk_library/public/mycoreplatform-removed.txt",
sdk_version: "current",
},
}
`),
checkVersionedAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
prebuilt_bootclasspath_fragment {
name: "mysdk_mybootclasspathfragment@current",
sdk_member_name: "mybootclasspathfragment",
visibility: ["//visibility:public"],
apex_available: ["myapex"],
contents: [
"mysdk_mybootlib@current",
"mysdk_myothersdklibrary@current",
],
api: {
stub_libs: ["mysdk_mysdklibrary@current"],
},
core_platform_api: {
stub_libs: ["mysdk_mycoreplatform@current"],
},
hidden_api: {
annotation_flags: "hiddenapi/annotation-flags.csv",
metadata: "hiddenapi/metadata.csv",
index: "hiddenapi/index.csv",
signature_patterns: "hiddenapi/signature-patterns.csv",
filtered_stub_flags: "hiddenapi/filtered-stub-flags.csv",
filtered_flags: "hiddenapi/filtered-flags.csv",
},
}
java_import {
name: "mysdk_mybootlib@current",
sdk_member_name: "mybootlib",
visibility: ["//visibility:public"],
apex_available: ["myapex"],
jars: ["java_boot_libs/snapshot/jars/are/invalid/mybootlib.jar"],
permitted_packages: ["mybootlib"],
}
java_sdk_library_import {
name: "mysdk_myothersdklibrary@current",
sdk_member_name: "myothersdklibrary",
visibility: ["//visibility:public"],
apex_available: ["myapex"],
shared_library: true,
compile_dex: true,
permitted_packages: ["myothersdklibrary"],
public: {
jars: ["sdk_library/public/myothersdklibrary-stubs.jar"],
stub_srcs: ["sdk_library/public/myothersdklibrary_stub_sources"],
current_api: "sdk_library/public/myothersdklibrary.txt",
removed_api: "sdk_library/public/myothersdklibrary-removed.txt",
sdk_version: "current",
},
}
java_sdk_library_import {
name: "mysdk_mysdklibrary@current",
sdk_member_name: "mysdklibrary",
visibility: ["//visibility:public"],
apex_available: ["myapex"],
shared_library: false,
public: {
jars: ["sdk_library/public/mysdklibrary-stubs.jar"],
stub_srcs: ["sdk_library/public/mysdklibrary_stub_sources"],
current_api: "sdk_library/public/mysdklibrary.txt",
removed_api: "sdk_library/public/mysdklibrary-removed.txt",
sdk_version: "current",
},
}
java_sdk_library_import {
name: "mysdk_mycoreplatform@current",
sdk_member_name: "mycoreplatform",
visibility: ["//visibility:public"],
apex_available: ["myapex"],
shared_library: true,
compile_dex: true,
public: {
jars: ["sdk_library/public/mycoreplatform-stubs.jar"],
stub_srcs: ["sdk_library/public/mycoreplatform_stub_sources"],
current_api: "sdk_library/public/mycoreplatform.txt",
removed_api: "sdk_library/public/mycoreplatform-removed.txt",
sdk_version: "current",
},
}
sdk_snapshot {
name: "mysdk@current",
visibility: ["//visibility:public"],
bootclasspath_fragments: ["mysdk_mybootclasspathfragment@current"],
java_boot_libs: ["mysdk_mybootlib@current"],
java_sdk_libs: [
"mysdk_myothersdklibrary@current",
"mysdk_mysdklibrary@current",
"mysdk_mycoreplatform@current",
],
}
`),
checkAllCopyRules(`
@ -630,7 +498,7 @@ func TestSnapshotWithBootClasspathFragment_Fragments(t *testing.T) {
preparerForSnapshot := fixtureAddPrebuiltApexForBootclasspathFragment("myapex", "mybootclasspathfragment")
CheckSnapshot(t, result, "mysdk", "",
checkUnversionedAndroidBpContents(`
checkAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
prebuilt_bootclasspath_fragment {
@ -828,7 +696,7 @@ func TestSnapshotWithBootclasspathFragment_HiddenAPI(t *testing.T) {
preparerForSnapshot := fixtureAddPrebuiltApexForBootclasspathFragment("myapex", "mybootclasspathfragment")
CheckSnapshot(t, result, "mysdk", "",
checkUnversionedAndroidBpContents(`
checkAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
prebuilt_bootclasspath_fragment {

View file

@ -298,15 +298,15 @@ func (t identityTransformation) transformModule(module *bpModule) *bpModule {
return module
}
func (t identityTransformation) transformPropertySetBeforeContents(name string, propertySet *bpPropertySet, tag android.BpPropertyTag) (*bpPropertySet, android.BpPropertyTag) {
func (t identityTransformation) transformPropertySetBeforeContents(_ string, propertySet *bpPropertySet, tag android.BpPropertyTag) (*bpPropertySet, android.BpPropertyTag) {
return propertySet, tag
}
func (t identityTransformation) transformPropertySetAfterContents(name string, propertySet *bpPropertySet, tag android.BpPropertyTag) (*bpPropertySet, android.BpPropertyTag) {
func (t identityTransformation) transformPropertySetAfterContents(_ string, propertySet *bpPropertySet, tag android.BpPropertyTag) (*bpPropertySet, android.BpPropertyTag) {
return propertySet, tag
}
func (t identityTransformation) transformProperty(name string, value interface{}, tag android.BpPropertyTag) (interface{}, android.BpPropertyTag) {
func (t identityTransformation) transformProperty(_ string, value interface{}, tag android.BpPropertyTag) (interface{}, android.BpPropertyTag) {
return value, tag
}
@ -332,7 +332,7 @@ func (t deepCopyTransformation) transformModule(module *bpModule) *bpModule {
return &moduleCopy
}
func (t deepCopyTransformation) transformPropertySetBeforeContents(name string, propertySet *bpPropertySet, tag android.BpPropertyTag) (*bpPropertySet, android.BpPropertyTag) {
func (t deepCopyTransformation) transformPropertySetBeforeContents(_ string, propertySet *bpPropertySet, tag android.BpPropertyTag) (*bpPropertySet, android.BpPropertyTag) {
// Create a shallow copy of the properties map. Any mutable property values will be copied by the
// transformer.
propertiesCopy := make(map[string]interface{})
@ -354,7 +354,7 @@ func (t deepCopyTransformation) transformPropertySetBeforeContents(name string,
}, tag
}
func (t deepCopyTransformation) transformProperty(name string, value interface{}, tag android.BpPropertyTag) (interface{}, android.BpPropertyTag) {
func (t deepCopyTransformation) transformProperty(_ string, value interface{}, tag android.BpPropertyTag) (interface{}, android.BpPropertyTag) {
// Copy string slice, otherwise return value.
if values, ok := value.([]string); ok {
valuesCopy := make([]string, len(values))
@ -372,7 +372,7 @@ type bpFile struct {
order []*bpModule
}
// Add a module.
// AddModule adds a module to this.
//
// The module must have had its "name" property set to a string value that
// is unique within this file.

File diff suppressed because it is too large Load diff

View file

@ -37,23 +37,7 @@ func TestSnapshotWithCompatConfig(t *testing.T) {
`)
CheckSnapshot(t, result, "mysdk", "",
checkVersionedAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
prebuilt_platform_compat_config {
name: "mysdk_myconfig@current",
sdk_member_name: "myconfig",
visibility: ["//visibility:public"],
metadata: "compat_configs/myconfig/myconfig_meta.xml",
}
sdk_snapshot {
name: "mysdk@current",
visibility: ["//visibility:public"],
compat_configs: ["mysdk_myconfig@current"],
}
`),
checkUnversionedAndroidBpContents(`
checkAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
prebuilt_platform_compat_config {

View file

@ -31,7 +31,7 @@ func ModuleExportsFactory() android.Module {
return newSdkModule(true)
}
// module_exports_snapshot is a versioned snapshot of prebuilt versions of all the exports
// module_exports_snapshot is a snapshot of prebuilt versions of all the exports
// of a mainline module.
func ModuleExportsSnapshotsFactory() android.Module {
s := newSdkModule(true)

View file

@ -43,7 +43,7 @@ func TestModuleExportsSnapshot(t *testing.T) {
})
CheckSnapshot(t, result, "myexports", "package",
checkUnversionedAndroidBpContents(`
checkAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_import {
@ -53,23 +53,6 @@ java_import {
apex_available: ["//apex_available:platform"],
jars: ["java/myjavalib.jar"],
}
`),
checkVersionedAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_import {
name: "myexports_myjavalib@current",
sdk_member_name: "myjavalib",
visibility: ["//visibility:public"],
apex_available: ["//apex_available:platform"],
jars: ["java/myjavalib.jar"],
}
module_exports_snapshot {
name: "myexports@current",
visibility: ["//visibility:public"],
java_libs: ["myexports_myjavalib@current"],
}
`),
)
}

View file

@ -96,7 +96,7 @@ func TestSnapshotWithJavaHeaderLibrary(t *testing.T) {
`)
CheckSnapshot(t, result, "mysdk", "",
checkUnversionedAndroidBpContents(`
checkAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_import {
@ -107,24 +107,6 @@ java_import {
jars: ["java/myjavalib.jar"],
permitted_packages: ["pkg.myjavalib"],
}
`),
checkVersionedAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_import {
name: "mysdk_myjavalib@current",
sdk_member_name: "myjavalib",
visibility: ["//visibility:public"],
apex_available: ["//apex_available:platform"],
jars: ["java/myjavalib.jar"],
permitted_packages: ["pkg.myjavalib"],
}
sdk_snapshot {
name: "mysdk@current",
visibility: ["//visibility:public"],
java_header_libs: ["mysdk_myjavalib@current"],
}
`),
checkAllCopyRules(`
.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/myjavalib.jar
@ -160,7 +142,7 @@ func TestHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
`)
CheckSnapshot(t, result, "mysdk", "",
checkUnversionedAndroidBpContents(`
checkAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_import {
@ -172,27 +154,6 @@ java_import {
host_supported: true,
jars: ["java/myjavalib.jar"],
}
`),
checkVersionedAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_import {
name: "mysdk_myjavalib@current",
sdk_member_name: "myjavalib",
visibility: ["//visibility:public"],
apex_available: ["//apex_available:platform"],
device_supported: false,
host_supported: true,
jars: ["java/myjavalib.jar"],
}
sdk_snapshot {
name: "mysdk@current",
visibility: ["//visibility:public"],
device_supported: false,
host_supported: true,
java_header_libs: ["mysdk_myjavalib@current"],
}
`),
checkAllCopyRules(`
.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
@ -220,7 +181,7 @@ func TestDeviceAndHostSnapshotWithJavaHeaderLibrary(t *testing.T) {
`)
CheckSnapshot(t, result, "mysdk", "",
checkUnversionedAndroidBpContents(`
checkAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_import {
@ -238,32 +199,6 @@ java_import {
},
},
}
`),
checkVersionedAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_import {
name: "mysdk_myjavalib@current",
sdk_member_name: "myjavalib",
visibility: ["//visibility:public"],
apex_available: ["//apex_available:platform"],
host_supported: true,
target: {
android: {
jars: ["java/android/myjavalib.jar"],
},
linux_glibc: {
jars: ["java/linux_glibc/myjavalib.jar"],
},
},
}
sdk_snapshot {
name: "mysdk@current",
visibility: ["//visibility:public"],
host_supported: true,
java_header_libs: ["mysdk_myjavalib@current"],
}
`),
checkAllCopyRules(`
.intermediates/myjavalib/android_common/turbine-combined/myjavalib.jar -> java/android/myjavalib.jar
@ -298,7 +233,7 @@ func TestSnapshotWithJavaImplLibrary(t *testing.T) {
`)
CheckSnapshot(t, result, "myexports", "",
checkUnversionedAndroidBpContents(`
checkAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_import {
@ -308,23 +243,6 @@ java_import {
apex_available: ["//apex_available:platform"],
jars: ["java/myjavalib.jar"],
}
`),
checkVersionedAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_import {
name: "myexports_myjavalib@current",
sdk_member_name: "myjavalib",
visibility: ["//visibility:public"],
apex_available: ["//apex_available:platform"],
jars: ["java/myjavalib.jar"],
}
module_exports_snapshot {
name: "myexports@current",
visibility: ["//visibility:public"],
java_libs: ["myexports_myjavalib@current"],
}
`),
checkAllCopyRules(`
.intermediates/myjavalib/android_common/withres/myjavalib.jar -> java/myjavalib.jar
@ -361,7 +279,7 @@ func TestSnapshotWithJavaBootLibrary(t *testing.T) {
`)
CheckSnapshot(t, result, "myexports", "",
checkUnversionedAndroidBpContents(`
checkAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_import {
@ -372,25 +290,6 @@ java_import {
jars: ["java_boot_libs/snapshot/jars/are/invalid/myjavalib.jar"],
permitted_packages: ["pkg.myjavalib"],
}
`),
checkVersionedAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_import {
name: "myexports_myjavalib@current",
sdk_member_name: "myjavalib",
visibility: ["//visibility:public"],
apex_available: ["//apex_available:platform"],
jars: ["java_boot_libs/snapshot/jars/are/invalid/myjavalib.jar"],
permitted_packages: ["pkg.myjavalib"],
}
module_exports_snapshot {
name: "myexports@current",
visibility: ["//visibility:public"],
java_boot_libs: ["myexports_myjavalib@current"],
}
`),
checkAllCopyRules(`
.intermediates/myexports/common_os/empty -> java_boot_libs/snapshot/jars/are/invalid/myjavalib.jar
@ -427,7 +326,7 @@ func TestSnapshotWithJavaSystemserverLibrary(t *testing.T) {
`)
CheckSnapshot(t, result, "myexports", "",
checkUnversionedAndroidBpContents(`
checkAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_import {
@ -438,24 +337,6 @@ java_import {
jars: ["java_systemserver_libs/snapshot/jars/are/invalid/myjavalib.jar"],
permitted_packages: ["pkg.myjavalib"],
}
`),
checkVersionedAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_import {
name: "myexports_myjavalib@current",
sdk_member_name: "myjavalib",
visibility: ["//visibility:public"],
apex_available: ["//apex_available:platform"],
jars: ["java_systemserver_libs/snapshot/jars/are/invalid/myjavalib.jar"],
permitted_packages: ["pkg.myjavalib"],
}
module_exports_snapshot {
name: "myexports@current",
visibility: ["//visibility:public"],
java_systemserver_libs: ["myexports_myjavalib@current"],
}
`),
checkAllCopyRules(`
.intermediates/myexports/common_os/empty -> java_systemserver_libs/snapshot/jars/are/invalid/myjavalib.jar
@ -490,7 +371,7 @@ func TestHostSnapshotWithJavaImplLibrary(t *testing.T) {
`)
CheckSnapshot(t, result, "myexports", "",
checkUnversionedAndroidBpContents(`
checkAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_import {
@ -502,27 +383,6 @@ java_import {
host_supported: true,
jars: ["java/myjavalib.jar"],
}
`),
checkVersionedAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_import {
name: "myexports_myjavalib@current",
sdk_member_name: "myjavalib",
visibility: ["//visibility:public"],
apex_available: ["//apex_available:platform"],
device_supported: false,
host_supported: true,
jars: ["java/myjavalib.jar"],
}
module_exports_snapshot {
name: "myexports@current",
visibility: ["//visibility:public"],
device_supported: false,
host_supported: true,
java_libs: ["myexports_myjavalib@current"],
}
`),
checkAllCopyRules(`
.intermediates/myjavalib/linux_glibc_common/javac/myjavalib.jar -> java/myjavalib.jar
@ -549,7 +409,7 @@ func TestSnapshotWithJavaTest(t *testing.T) {
`)
CheckSnapshot(t, result, "myexports", "",
checkUnversionedAndroidBpContents(`
checkAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_test_import {
@ -560,24 +420,6 @@ java_test_import {
jars: ["java/myjavatests.jar"],
test_config: "java/myjavatests-AndroidTest.xml",
}
`),
checkVersionedAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_test_import {
name: "myexports_myjavatests@current",
sdk_member_name: "myjavatests",
visibility: ["//visibility:public"],
apex_available: ["//apex_available:platform"],
jars: ["java/myjavatests.jar"],
test_config: "java/myjavatests-AndroidTest.xml",
}
module_exports_snapshot {
name: "myexports@current",
visibility: ["//visibility:public"],
java_tests: ["myexports_myjavatests@current"],
}
`),
checkAllCopyRules(`
.intermediates/myjavatests/android_common/javac/myjavatests.jar -> java/myjavatests.jar
@ -607,7 +449,7 @@ func TestHostSnapshotWithJavaTest(t *testing.T) {
`)
CheckSnapshot(t, result, "myexports", "",
checkUnversionedAndroidBpContents(`
checkAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_test_import {
@ -620,28 +462,6 @@ java_test_import {
jars: ["java/myjavatests.jar"],
test_config: "java/myjavatests-AndroidTest.xml",
}
`),
checkVersionedAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_test_import {
name: "myexports_myjavatests@current",
sdk_member_name: "myjavatests",
visibility: ["//visibility:public"],
apex_available: ["//apex_available:platform"],
device_supported: false,
host_supported: true,
jars: ["java/myjavatests.jar"],
test_config: "java/myjavatests-AndroidTest.xml",
}
module_exports_snapshot {
name: "myexports@current",
visibility: ["//visibility:public"],
device_supported: false,
host_supported: true,
java_tests: ["myexports_myjavatests@current"],
}
`),
checkAllCopyRules(`
.intermediates/myjavatests/linux_glibc_common/javac/myjavatests.jar -> java/myjavatests.jar
@ -703,7 +523,7 @@ func TestSnapshotWithJavaSystemModules(t *testing.T) {
`)
CheckSnapshot(t, result, "mysdk", "",
checkUnversionedAndroidBpContents(`
checkAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_import {
@ -747,59 +567,6 @@ java_system_modules_import {
"myjavalib.stubs",
],
}
`),
checkVersionedAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_import {
name: "mysdk_exported-system-module@current",
sdk_member_name: "exported-system-module",
visibility: ["//visibility:public"],
apex_available: ["//apex_available:platform"],
jars: ["java/exported-system-module.jar"],
}
java_import {
name: "mysdk_system-module@current",
sdk_member_name: "system-module",
visibility: ["//visibility:private"],
apex_available: ["//apex_available:platform"],
jars: ["java/system-module.jar"],
}
java_sdk_library_import {
name: "mysdk_myjavalib@current",
sdk_member_name: "myjavalib",
visibility: ["//visibility:public"],
apex_available: ["//apex_available:anyapex"],
shared_library: false,
public: {
jars: ["sdk_library/public/myjavalib-stubs.jar"],
stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
current_api: "sdk_library/public/myjavalib.txt",
removed_api: "sdk_library/public/myjavalib-removed.txt",
sdk_version: "current",
},
}
java_system_modules_import {
name: "mysdk_my-system-modules@current",
sdk_member_name: "my-system-modules",
visibility: ["//visibility:public"],
libs: [
"mysdk_system-module@current",
"mysdk_exported-system-module@current",
"mysdk_myjavalib.stubs@current",
],
}
sdk_snapshot {
name: "mysdk@current",
visibility: ["//visibility:public"],
java_header_libs: ["mysdk_exported-system-module@current"],
java_sdk_libs: ["mysdk_myjavalib@current"],
java_system_modules: ["mysdk_my-system-modules@current"],
}
`),
checkAllCopyRules(`
.intermediates/exported-system-module/android_common/turbine-combined/exported-system-module.jar -> java/exported-system-module.jar
@ -885,7 +652,7 @@ func TestHostSnapshotWithJavaSystemModules(t *testing.T) {
`)
CheckSnapshot(t, result, "mysdk", "",
checkUnversionedAndroidBpContents(`
checkAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_import {
@ -906,36 +673,6 @@ java_system_modules_import {
host_supported: true,
libs: ["mysdk_system-module"],
}
`),
checkVersionedAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_import {
name: "mysdk_system-module@current",
sdk_member_name: "system-module",
visibility: ["//visibility:private"],
apex_available: ["//apex_available:platform"],
device_supported: false,
host_supported: true,
jars: ["java/system-module.jar"],
}
java_system_modules_import {
name: "mysdk_my-system-modules@current",
sdk_member_name: "my-system-modules",
visibility: ["//visibility:public"],
device_supported: false,
host_supported: true,
libs: ["mysdk_system-module@current"],
}
sdk_snapshot {
name: "mysdk@current",
visibility: ["//visibility:public"],
device_supported: false,
host_supported: true,
java_system_modules: ["mysdk_my-system-modules@current"],
}
`),
checkAllCopyRules(".intermediates/system-module/linux_glibc_common/javac/system-module.jar -> java/system-module.jar"),
)
@ -979,7 +716,7 @@ func TestDeviceAndHostSnapshotWithOsSpecificMembers(t *testing.T) {
`)
CheckSnapshot(t, result, "myexports", "",
checkUnversionedAndroidBpContents(`
checkAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_import {
@ -1015,58 +752,6 @@ java_import {
},
},
}
`),
checkVersionedAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_import {
name: "myexports_hostjavalib@current",
sdk_member_name: "hostjavalib",
visibility: ["//visibility:public"],
apex_available: ["//apex_available:platform"],
device_supported: false,
host_supported: true,
jars: ["java/hostjavalib.jar"],
}
java_import {
name: "myexports_androidjavalib@current",
sdk_member_name: "androidjavalib",
visibility: ["//visibility:public"],
apex_available: ["//apex_available:platform"],
jars: ["java/androidjavalib.jar"],
}
java_import {
name: "myexports_myjavalib@current",
sdk_member_name: "myjavalib",
visibility: ["//visibility:public"],
apex_available: ["//apex_available:platform"],
host_supported: true,
target: {
android: {
jars: ["java/android/myjavalib.jar"],
},
linux_glibc: {
jars: ["java/linux_glibc/myjavalib.jar"],
},
},
}
module_exports_snapshot {
name: "myexports@current",
visibility: ["//visibility:public"],
host_supported: true,
java_libs: ["myexports_myjavalib@current"],
target: {
android: {
java_header_libs: ["myexports_androidjavalib@current"],
},
linux_glibc: {
java_header_libs: ["myexports_hostjavalib@current"],
},
},
}
`),
checkAllCopyRules(`
.intermediates/hostjavalib/linux_glibc_common/javac/hostjavalib.jar -> java/hostjavalib.jar
@ -1097,7 +782,7 @@ func TestSnapshotWithJavaSdkLibrary(t *testing.T) {
`)
CheckSnapshot(t, result, "mysdk", "",
checkUnversionedAndroidBpContents(`
checkAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_sdk_library_import {
@ -1129,45 +814,6 @@ java_sdk_library_import {
sdk_version: "test_current",
},
}
`),
checkVersionedAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_sdk_library_import {
name: "mysdk_myjavalib@current",
sdk_member_name: "myjavalib",
visibility: ["//visibility:public"],
apex_available: ["//apex_available:anyapex"],
shared_library: false,
permitted_packages: ["pkg.myjavalib"],
public: {
jars: ["sdk_library/public/myjavalib-stubs.jar"],
stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
current_api: "sdk_library/public/myjavalib.txt",
removed_api: "sdk_library/public/myjavalib-removed.txt",
sdk_version: "current",
},
system: {
jars: ["sdk_library/system/myjavalib-stubs.jar"],
stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
current_api: "sdk_library/system/myjavalib.txt",
removed_api: "sdk_library/system/myjavalib-removed.txt",
sdk_version: "system_current",
},
test: {
jars: ["sdk_library/test/myjavalib-stubs.jar"],
stub_srcs: ["sdk_library/test/myjavalib_stub_sources"],
current_api: "sdk_library/test/myjavalib.txt",
removed_api: "sdk_library/test/myjavalib-removed.txt",
sdk_version: "test_current",
},
}
sdk_snapshot {
name: "mysdk@current",
visibility: ["//visibility:public"],
java_sdk_libs: ["mysdk_myjavalib@current"],
}
`),
checkAllCopyRules(`
.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
@ -1185,12 +831,6 @@ sdk_snapshot {
".intermediates/mysdk/common_os/tmp/sdk_library/system/myjavalib_stub_sources.zip",
".intermediates/mysdk/common_os/tmp/sdk_library/test/myjavalib_stub_sources.zip",
),
snapshotTestChecker(checkSnapshotWithoutSource, func(t *testing.T, result *android.TestResult) {
// Make sure that the name of the child modules created by a versioned java_sdk_library_import
// module is correct, i.e. the suffix is added before the version and not after.
result.Module("mysdk_myjavalib.stubs@current", "android_common")
result.Module("mysdk_myjavalib.stubs.source@current", "android_common")
}),
)
}
@ -1218,7 +858,7 @@ func TestSnapshotWithJavaSdkLibrary_UseSrcJar(t *testing.T) {
`)
CheckSnapshot(t, result, "mysdk", "",
checkUnversionedAndroidBpContents(`
checkAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_sdk_library_import {
@ -1265,7 +905,7 @@ func TestSnapshotWithJavaSdkLibrary_AnnotationsZip(t *testing.T) {
`)
CheckSnapshot(t, result, "mysdk", "",
checkUnversionedAndroidBpContents(`
checkAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_sdk_library_import {
@ -1319,7 +959,7 @@ func TestSnapshotWithJavaSdkLibrary_AnnotationsZip_PreT(t *testing.T) {
`)
CheckSnapshot(t, result, "mysdk", "",
checkUnversionedAndroidBpContents(`
checkAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_sdk_library_import {
@ -1369,7 +1009,7 @@ func TestSnapshotWithJavaSdkLibrary_CompileDex(t *testing.T) {
`)
CheckSnapshot(t, result, "mysdk", "",
checkUnversionedAndroidBpContents(`
checkAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_sdk_library_import {
@ -1436,7 +1076,7 @@ func TestSnapshotWithJavaSdkLibrary_SdkVersion_None(t *testing.T) {
`)
CheckSnapshot(t, result, "mysdk", "",
checkUnversionedAndroidBpContents(`
checkAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_sdk_library_import {
@ -1453,30 +1093,6 @@ java_sdk_library_import {
sdk_version: "none",
},
}
`),
checkVersionedAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_sdk_library_import {
name: "mysdk_myjavalib@current",
sdk_member_name: "myjavalib",
visibility: ["//visibility:public"],
apex_available: ["//apex_available:platform"],
shared_library: true,
public: {
jars: ["sdk_library/public/myjavalib-stubs.jar"],
stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
current_api: "sdk_library/public/myjavalib.txt",
removed_api: "sdk_library/public/myjavalib-removed.txt",
sdk_version: "none",
},
}
sdk_snapshot {
name: "mysdk@current",
visibility: ["//visibility:public"],
java_sdk_libs: ["mysdk_myjavalib@current"],
}
`),
checkAllCopyRules(`
.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
@ -1508,7 +1124,7 @@ func TestSnapshotWithJavaSdkLibrary_SdkVersion_ForScope(t *testing.T) {
`)
CheckSnapshot(t, result, "mysdk", "",
checkUnversionedAndroidBpContents(`
checkAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_sdk_library_import {
@ -1525,30 +1141,6 @@ java_sdk_library_import {
sdk_version: "module_current",
},
}
`),
checkVersionedAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_sdk_library_import {
name: "mysdk_myjavalib@current",
sdk_member_name: "myjavalib",
visibility: ["//visibility:public"],
apex_available: ["//apex_available:platform"],
shared_library: true,
public: {
jars: ["sdk_library/public/myjavalib-stubs.jar"],
stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
current_api: "sdk_library/public/myjavalib.txt",
removed_api: "sdk_library/public/myjavalib-removed.txt",
sdk_version: "module_current",
},
}
sdk_snapshot {
name: "mysdk@current",
visibility: ["//visibility:public"],
java_sdk_libs: ["mysdk_myjavalib@current"],
}
`),
checkAllCopyRules(`
.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
@ -1583,7 +1175,7 @@ func TestSnapshotWithJavaSdkLibrary_ApiScopes(t *testing.T) {
`)
CheckSnapshot(t, result, "mysdk", "",
checkUnversionedAndroidBpContents(`
checkAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_sdk_library_import {
@ -1607,37 +1199,6 @@ java_sdk_library_import {
sdk_version: "system_current",
},
}
`),
checkVersionedAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_sdk_library_import {
name: "mysdk_myjavalib@current",
sdk_member_name: "myjavalib",
visibility: ["//visibility:public"],
apex_available: ["//apex_available:anyapex"],
shared_library: true,
public: {
jars: ["sdk_library/public/myjavalib-stubs.jar"],
stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
current_api: "sdk_library/public/myjavalib.txt",
removed_api: "sdk_library/public/myjavalib-removed.txt",
sdk_version: "current",
},
system: {
jars: ["sdk_library/system/myjavalib-stubs.jar"],
stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
current_api: "sdk_library/system/myjavalib.txt",
removed_api: "sdk_library/system/myjavalib-removed.txt",
sdk_version: "system_current",
},
}
sdk_snapshot {
name: "mysdk@current",
visibility: ["//visibility:public"],
java_sdk_libs: ["mysdk_myjavalib@current"],
}
`),
checkAllCopyRules(`
.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
@ -1679,7 +1240,7 @@ func TestSnapshotWithJavaSdkLibrary_ModuleLib(t *testing.T) {
`)
CheckSnapshot(t, result, "mysdk", "",
checkUnversionedAndroidBpContents(`
checkAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_sdk_library_import {
@ -1710,44 +1271,6 @@ java_sdk_library_import {
sdk_version: "module_current",
},
}
`),
checkVersionedAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_sdk_library_import {
name: "mysdk_myjavalib@current",
sdk_member_name: "myjavalib",
visibility: ["//visibility:public"],
apex_available: ["//apex_available:anyapex"],
shared_library: true,
public: {
jars: ["sdk_library/public/myjavalib-stubs.jar"],
stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
current_api: "sdk_library/public/myjavalib.txt",
removed_api: "sdk_library/public/myjavalib-removed.txt",
sdk_version: "current",
},
system: {
jars: ["sdk_library/system/myjavalib-stubs.jar"],
stub_srcs: ["sdk_library/system/myjavalib_stub_sources"],
current_api: "sdk_library/system/myjavalib.txt",
removed_api: "sdk_library/system/myjavalib-removed.txt",
sdk_version: "system_current",
},
module_lib: {
jars: ["sdk_library/module-lib/myjavalib-stubs.jar"],
stub_srcs: ["sdk_library/module-lib/myjavalib_stub_sources"],
current_api: "sdk_library/module-lib/myjavalib.txt",
removed_api: "sdk_library/module-lib/myjavalib-removed.txt",
sdk_version: "module_current",
},
}
sdk_snapshot {
name: "mysdk@current",
visibility: ["//visibility:public"],
java_sdk_libs: ["mysdk_myjavalib@current"],
}
`),
checkAllCopyRules(`
.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
@ -1790,7 +1313,7 @@ func TestSnapshotWithJavaSdkLibrary_SystemServer(t *testing.T) {
`)
CheckSnapshot(t, result, "mysdk", "",
checkUnversionedAndroidBpContents(`
checkAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_sdk_library_import {
@ -1814,37 +1337,6 @@ java_sdk_library_import {
sdk_version: "system_server_current",
},
}
`),
checkVersionedAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_sdk_library_import {
name: "mysdk_myjavalib@current",
sdk_member_name: "myjavalib",
visibility: ["//visibility:public"],
apex_available: ["//apex_available:anyapex"],
shared_library: true,
public: {
jars: ["sdk_library/public/myjavalib-stubs.jar"],
stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
current_api: "sdk_library/public/myjavalib.txt",
removed_api: "sdk_library/public/myjavalib-removed.txt",
sdk_version: "current",
},
system_server: {
jars: ["sdk_library/system-server/myjavalib-stubs.jar"],
stub_srcs: ["sdk_library/system-server/myjavalib_stub_sources"],
current_api: "sdk_library/system-server/myjavalib.txt",
removed_api: "sdk_library/system-server/myjavalib-removed.txt",
sdk_version: "system_server_current",
},
}
sdk_snapshot {
name: "mysdk@current",
visibility: ["//visibility:public"],
java_sdk_libs: ["mysdk_myjavalib@current"],
}
`),
checkAllCopyRules(`
.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
@ -1881,7 +1373,7 @@ func TestSnapshotWithJavaSdkLibrary_NamingScheme(t *testing.T) {
`)
CheckSnapshot(t, result, "mysdk", "",
checkUnversionedAndroidBpContents(`
checkAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_sdk_library_import {
@ -1899,31 +1391,6 @@ java_sdk_library_import {
sdk_version: "current",
},
}
`),
checkVersionedAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_sdk_library_import {
name: "mysdk_myjavalib@current",
sdk_member_name: "myjavalib",
visibility: ["//visibility:public"],
apex_available: ["//apex_available:anyapex"],
naming_scheme: "default",
shared_library: true,
public: {
jars: ["sdk_library/public/myjavalib-stubs.jar"],
stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
current_api: "sdk_library/public/myjavalib.txt",
removed_api: "sdk_library/public/myjavalib-removed.txt",
sdk_version: "current",
},
}
sdk_snapshot {
name: "mysdk@current",
visibility: ["//visibility:public"],
java_sdk_libs: ["mysdk_myjavalib@current"],
}
`),
checkAllCopyRules(`
.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar
@ -1963,7 +1430,7 @@ func TestSnapshotWithJavaSdkLibrary_DoctagFiles(t *testing.T) {
`)
CheckSnapshot(t, result, "mysdk", "",
checkUnversionedAndroidBpContents(`
checkAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_sdk_library_import {
@ -1981,31 +1448,6 @@ java_sdk_library_import {
sdk_version: "current",
},
}
`),
checkVersionedAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_sdk_library_import {
name: "mysdk_myjavalib@current",
sdk_member_name: "myjavalib",
visibility: ["//visibility:public"],
apex_available: ["//apex_available:platform"],
shared_library: true,
doctag_files: ["doctags/docs/known_doctags"],
public: {
jars: ["sdk_library/public/myjavalib-stubs.jar"],
stub_srcs: ["sdk_library/public/myjavalib_stub_sources"],
current_api: "sdk_library/public/myjavalib.txt",
removed_api: "sdk_library/public/myjavalib-removed.txt",
sdk_version: "current",
},
}
sdk_snapshot {
name: "mysdk@current",
visibility: ["//visibility:public"],
java_sdk_libs: ["mysdk_myjavalib@current"],
}
`),
checkAllCopyRules(`
.intermediates/myjavalib.stubs/android_common/javac/myjavalib.stubs.jar -> sdk_library/public/myjavalib-stubs.jar

View file

@ -60,7 +60,7 @@ func TestSnapshotWithPackageDefaultLicense(t *testing.T) {
`)
CheckSnapshot(t, result, "mysdk", "",
checkUnversionedAndroidBpContents(`
checkAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
package {
@ -89,44 +89,6 @@ license {
"licenses/NOTICE1",
"licenses/NOTICE2",
],
}
`),
checkVersionedAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
package {
// A default list here prevents the license LSC from adding its own list which would
// be unnecessary as every module in the sdk already has its own licenses property.
default_applicable_licenses: ["Android-Apache-2.0"],
}
java_import {
name: "mysdk_myjavalib@current",
sdk_member_name: "myjavalib",
visibility: ["//visibility:public"],
apex_available: ["//apex_available:platform"],
licenses: ["mysdk_mylicense@current"],
jars: ["java/myjavalib.jar"],
}
license {
name: "mysdk_mylicense@current",
sdk_member_name: "mylicense",
visibility: ["//visibility:private"],
license_kinds: [
"SPDX-license-identifier-Apache-2.0",
"legacy_unencumbered",
],
license_text: [
"licenses/NOTICE1",
"licenses/NOTICE2",
],
}
sdk_snapshot {
name: "mysdk@current",
visibility: ["//visibility:public"],
java_header_libs: ["mysdk_myjavalib@current"],
}
`),
checkAllCopyRules(`

View file

@ -134,7 +134,7 @@ func TestBasicTrait_WithoutTrait(t *testing.T) {
).RunTest(t)
CheckSnapshot(t, result, "mysdk", "",
checkUnversionedAndroidBpContents(`
checkAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_import {
@ -144,23 +144,6 @@ java_import {
apex_available: ["//apex_available:platform"],
jars: ["javalibs/myjavalib.jar"],
}
`),
checkVersionedAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_import {
name: "mysdk_myjavalib@current",
sdk_member_name: "myjavalib",
visibility: ["//visibility:public"],
apex_available: ["//apex_available:platform"],
jars: ["javalibs/myjavalib.jar"],
}
sdk_snapshot {
name: "mysdk@current",
visibility: ["//visibility:public"],
fake_members: ["mysdk_myjavalib@current"],
}
`),
)
}
@ -216,7 +199,7 @@ func TestBasicTrait_MultipleTraits(t *testing.T) {
).RunTest(t)
CheckSnapshot(t, result, "mysdk", "",
checkUnversionedAndroidBpContents(`
checkAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_test_import {

View file

@ -146,7 +146,7 @@ func newSdkModule(moduleExports bool) *sdk {
return s
}
// sdk_snapshot is a versioned snapshot of an SDK. This is an auto-generated module.
// sdk_snapshot is a snapshot of an SDK. This is an auto-generated module.
func SnapshotModuleFactory() android.Module {
s := newSdkModule(false)
s.properties.Snapshot = true
@ -292,38 +292,6 @@ func (t dependencyTag) ExcludeFromApexContents() {}
var _ android.ExcludeFromApexContentsTag = dependencyTag{}
// For dependencies from an in-development version of an SDK member to frozen versions of the same member
// e.g. libfoo -> libfoo.mysdk.11 and libfoo.mysdk.12
//
// The dependency represented by this tag requires that for every APEX variant created for the
// `from` module that an equivalent APEX variant is created for the 'to' module. This is because an
// APEX that requires a specific version of an sdk (via the `uses_sdks` property will replace
// dependencies on the unversioned sdk member with a dependency on the appropriate versioned sdk
// member. In order for that to work the versioned sdk member needs to have a variant for that APEX.
// As it is not known at the time that the APEX variants are created which specific APEX variants of
// a versioned sdk members will be required it is necessary for the versioned sdk members to have
// variants for any APEX that it could be used within.
//
// If the APEX selects a versioned sdk member then it will not have a dependency on the `from`
// module at all so any dependencies of that module will not affect the APEX. However, if the APEX
// selects the unversioned sdk member then it must exclude all the versioned sdk members. In no
// situation would this dependency cause the `to` module to be added to the APEX hence why this tag
// also excludes the `to` module from being added to the APEX contents.
type sdkMemberVersionedDepTag struct {
dependencyTag
member string
version string
}
func (t sdkMemberVersionedDepTag) AlwaysRequireApexVariant() bool {
return true
}
// Mark this tag so dependencies that use it are excluded from visibility enforcement.
func (t sdkMemberVersionedDepTag) ExcludeFromVisibilityEnforcement() {}
var _ android.AlwaysRequireApexVariantTag = sdkMemberVersionedDepTag{}
// Step 1: create dependencies from an SDK module to its members.
func memberMutator(mctx android.BottomUpMutatorContext) {
if s, ok := mctx.Module().(*sdk); ok {

View file

@ -118,18 +118,6 @@ func TestSnapshotVisibility(t *testing.T) {
checkAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_import {
name: "mysdk_myjavalib@current",
sdk_member_name: "myjavalib",
visibility: [
"//other/foo",
"//package",
"//prebuilts/mysdk",
],
apex_available: ["//apex_available:platform"],
jars: ["java/myjavalib.jar"],
}
java_import {
name: "myjavalib",
prefer: false,
@ -142,14 +130,6 @@ java_import {
jars: ["java/myjavalib.jar"],
}
java_import {
name: "mysdk_mypublicjavalib@current",
sdk_member_name: "mypublicjavalib",
visibility: ["//visibility:public"],
apex_available: ["//apex_available:platform"],
jars: ["java/mypublicjavalib.jar"],
}
java_import {
name: "mypublicjavalib",
prefer: false,
@ -158,18 +138,6 @@ java_import {
jars: ["java/mypublicjavalib.jar"],
}
java_import {
name: "mysdk_mydefaultedjavalib@current",
sdk_member_name: "mydefaultedjavalib",
visibility: [
"//other/bar",
"//package",
"//prebuilts/mysdk",
],
apex_available: ["//apex_available:platform"],
jars: ["java/mydefaultedjavalib.jar"],
}
java_import {
name: "mydefaultedjavalib",
prefer: false,
@ -182,17 +150,6 @@ java_import {
jars: ["java/mydefaultedjavalib.jar"],
}
java_import {
name: "mysdk_myprivatejavalib@current",
sdk_member_name: "myprivatejavalib",
visibility: [
"//package",
"//prebuilts/mysdk",
],
apex_available: ["//apex_available:platform"],
jars: ["java/myprivatejavalib.jar"],
}
java_import {
name: "myprivatejavalib",
prefer: false,
@ -203,20 +160,6 @@ java_import {
apex_available: ["//apex_available:platform"],
jars: ["java/myprivatejavalib.jar"],
}
sdk_snapshot {
name: "mysdk@current",
visibility: [
"//other/foo",
"//package:__subpackages__",
],
java_header_libs: [
"mysdk_myjavalib@current",
"mysdk_mypublicjavalib@current",
"mysdk_mydefaultedjavalib@current",
"mysdk_myprivatejavalib@current",
],
}
`))
}
@ -449,14 +392,6 @@ func TestSnapshot_EnvConfiguration(t *testing.T) {
checkAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_import {
name: "mysdk_myjavalib@current",
sdk_member_name: "myjavalib",
visibility: ["//visibility:public"],
apex_available: ["//apex_available:platform"],
jars: ["java/myjavalib.jar"],
}
java_import {
name: "myjavalib",
prefer: false,
@ -464,12 +399,6 @@ java_import {
apex_available: ["//apex_available:platform"],
jars: ["java/myjavalib.jar"],
}
sdk_snapshot {
name: "mysdk@current",
visibility: ["//visibility:public"],
java_header_libs: ["mysdk_myjavalib@current"],
}
`),
)
})
@ -488,14 +417,6 @@ sdk_snapshot {
checkAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_import {
name: "mysdk_myjavalib@current",
sdk_member_name: "myjavalib",
visibility: ["//visibility:public"],
apex_available: ["//apex_available:platform"],
jars: ["java/myjavalib.jar"],
}
java_import {
name: "myjavalib",
prefer: true,
@ -503,12 +424,6 @@ java_import {
apex_available: ["//apex_available:platform"],
jars: ["java/myjavalib.jar"],
}
sdk_snapshot {
name: "mysdk@current",
visibility: ["//visibility:public"],
java_header_libs: ["mysdk_myjavalib@current"],
}
`),
)
})
@ -527,14 +442,6 @@ sdk_snapshot {
checkAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_import {
name: "mysdk_myjavalib@current",
sdk_member_name: "myjavalib",
visibility: ["//visibility:public"],
apex_available: ["//apex_available:platform"],
jars: ["java/myjavalib.jar"],
}
java_import {
name: "myjavalib",
prefer: false,
@ -546,113 +453,10 @@ java_import {
apex_available: ["//apex_available:platform"],
jars: ["java/myjavalib.jar"],
}
sdk_snapshot {
name: "mysdk@current",
visibility: ["//visibility:public"],
java_header_libs: ["mysdk_myjavalib@current"],
}
`),
)
})
t.Run("SOONG_SDK_SNAPSHOT_VERSION=unversioned", func(t *testing.T) {
result := android.GroupFixturePreparers(
preparer,
android.FixtureMergeEnv(map[string]string{
"SOONG_SDK_SNAPSHOT_VERSION": "unversioned",
}),
).RunTest(t)
checkZipFile(t, result, "out/soong/.intermediates/mysdk/common_os/mysdk.zip")
CheckSnapshot(t, result, "mysdk", "",
checkAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_import {
name: "myjavalib",
prefer: false,
visibility: ["//visibility:public"],
apex_available: ["//apex_available:platform"],
jars: ["java/myjavalib.jar"],
}
`),
)
})
t.Run("SOONG_SDK_SNAPSHOT_VERSION=current", func(t *testing.T) {
result := android.GroupFixturePreparers(
preparer,
android.FixtureMergeEnv(map[string]string{
"SOONG_SDK_SNAPSHOT_VERSION": "current",
}),
).RunTest(t)
checkZipFile(t, result, "out/soong/.intermediates/mysdk/common_os/mysdk-current.zip")
CheckSnapshot(t, result, "mysdk", "",
checkAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_import {
name: "mysdk_myjavalib@current",
sdk_member_name: "myjavalib",
visibility: ["//visibility:public"],
apex_available: ["//apex_available:platform"],
jars: ["java/myjavalib.jar"],
}
java_import {
name: "myjavalib",
prefer: false,
visibility: ["//visibility:public"],
apex_available: ["//apex_available:platform"],
jars: ["java/myjavalib.jar"],
}
sdk_snapshot {
name: "mysdk@current",
visibility: ["//visibility:public"],
java_header_libs: ["mysdk_myjavalib@current"],
}
`),
)
})
t.Run("SOONG_SDK_SNAPSHOT_VERSION=2", func(t *testing.T) {
result := android.GroupFixturePreparers(
preparer,
android.FixtureMergeEnv(map[string]string{
"SOONG_SDK_SNAPSHOT_VERSION": "2",
}),
).RunTest(t)
checkZipFile(t, result, "out/soong/.intermediates/mysdk/common_os/mysdk-2.zip")
CheckSnapshot(t, result, "mysdk", "",
checkAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_import {
name: "mysdk_myjavalib@2",
sdk_member_name: "myjavalib",
visibility: ["//visibility:public"],
apex_available: ["//apex_available:platform"],
jars: ["java/myjavalib.jar"],
}
sdk_snapshot {
name: "mysdk@2",
visibility: ["//visibility:public"],
java_header_libs: ["mysdk_myjavalib@2"],
}
`),
// A versioned snapshot cannot be used on its own so add the source back in.
snapshotTestPreparer(checkSnapshotWithoutSource, android.FixtureWithRootAndroidBp(bp)),
)
})
t.Run("SOONG_SDK_SNAPSHOT_TARGET_BUILD_RELEASE=S", func(t *testing.T) {
result := android.GroupFixturePreparers(
prepareForSdkTestWithJava,
@ -685,7 +489,7 @@ sdk_snapshot {
).RunTest(t)
CheckSnapshot(t, result, "mysdk", "",
checkUnversionedAndroidBpContents(`
checkAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
prebuilt_bootclasspath_fragment {

View file

@ -83,7 +83,7 @@ func TestSnapshotWithSystemServerClasspathFragment(t *testing.T) {
).RunTest(t)
CheckSnapshot(t, result, "mysdk", "",
checkUnversionedAndroidBpContents(`
checkAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_sdk_library_import {
@ -120,52 +120,6 @@ prebuilt_systemserverclasspath_fragment {
"mysdklibrary",
],
}
`),
checkVersionedAndroidBpContents(`
// This is auto-generated. DO NOT EDIT.
java_sdk_library_import {
name: "mysdk_mysdklibrary@current",
sdk_member_name: "mysdklibrary",
visibility: ["//visibility:public"],
apex_available: ["myapex"],
shared_library: false,
public: {
jars: ["sdk_library/public/mysdklibrary-stubs.jar"],
stub_srcs: ["sdk_library/public/mysdklibrary_stub_sources"],
current_api: "sdk_library/public/mysdklibrary.txt",
removed_api: "sdk_library/public/mysdklibrary-removed.txt",
sdk_version: "current",
},
}
java_import {
name: "mysdk_mylib@current",
sdk_member_name: "mylib",
visibility: ["//visibility:public"],
apex_available: ["myapex"],
jars: ["java_systemserver_libs/snapshot/jars/are/invalid/mylib.jar"],
permitted_packages: ["mylib"],
}
prebuilt_systemserverclasspath_fragment {
name: "mysdk_mysystemserverclasspathfragment@current",
sdk_member_name: "mysystemserverclasspathfragment",
visibility: ["//visibility:public"],
apex_available: ["myapex"],
contents: [
"mysdk_mylib@current",
"mysdk_mysdklibrary@current",
],
}
sdk_snapshot {
name: "mysdk@current",
visibility: ["//visibility:public"],
java_sdk_libs: ["mysdk_mysdklibrary@current"],
java_systemserver_libs: ["mysdk_mylib@current"],
systemserverclasspath_fragments: ["mysdk_mysystemserverclasspathfragment@current"],
}
`),
)
}

View file

@ -122,14 +122,6 @@ func ensureListContains(t *testing.T, result []string, expected string) {
}
}
func pathsToStrings(paths android.Paths) []string {
var ret []string
for _, p := range paths {
ret = append(ret, p.String())
}
return ret
}
// Analyse the sdk build rules to extract information about what it is doing.
//
// e.g. find the src/dest pairs from each cp command, the various zip files
@ -138,10 +130,7 @@ func getSdkSnapshotBuildInfo(t *testing.T, result *android.TestResult, sdk *sdk)
info := &snapshotBuildInfo{
t: t,
r: result,
version: sdk.builderForTests.version,
androidBpContents: sdk.GetAndroidBpContentsForTests(),
androidUnversionedBpContents: sdk.GetUnversionedAndroidBpContentsForTests(),
androidVersionedBpContents: sdk.GetVersionedAndroidBpContentsForTests(),
infoContents: sdk.GetInfoContentsForTests(),
snapshotTestCustomizations: map[snapshotTest]*snapshotTestCustomization{},
targetBuildRelease: sdk.builderForTests.targetBuildRelease,
@ -258,10 +247,7 @@ func CheckSnapshot(t *testing.T, result *android.TestResult, name string, dir st
if dir != "" {
dir = filepath.Clean(dir) + "/"
}
suffix := ""
if snapshotBuildInfo.version != soongSdkSnapshotVersionUnversioned {
suffix = "-" + snapshotBuildInfo.version
}
suffix := "-" + soongSdkSnapshotVersionCurrent
expectedZipPath := fmt.Sprintf(".intermediates/%s%s/%s/%s%s.zip", dir, name, variant, name, suffix)
android.AssertStringEquals(t, "Snapshot zip file in wrong place", expectedZipPath, actual)
@ -345,33 +331,6 @@ func checkAndroidBpContents(expected string) snapshotBuildInfoChecker {
}
}
// Check that the snapshot's unversioned generated Android.bp is correct.
//
// This func should be used to check the general snapshot generation code.
//
// Both the expected and actual string are both trimmed before comparing.
func checkUnversionedAndroidBpContents(expected string) snapshotBuildInfoChecker {
return func(info *snapshotBuildInfo) {
info.t.Helper()
android.AssertTrimmedStringEquals(info.t, "unversioned Android.bp contents do not match", expected, info.androidUnversionedBpContents)
}
}
// Check that the snapshot's versioned generated Android.bp is correct.
//
// This func should only be used to check the version specific snapshot generation code,
// i.e. the encoding of version into module names and the generation of the _snapshot module. The
// general snapshot generation code should be checked using the checkUnversionedAndroidBpContents()
// func.
//
// Both the expected and actual string are both trimmed before comparing.
func checkVersionedAndroidBpContents(expected string) snapshotBuildInfoChecker {
return func(info *snapshotBuildInfo) {
info.t.Helper()
android.AssertTrimmedStringEquals(info.t, "versioned Android.bp contents do not match", expected, info.androidVersionedBpContents)
}
}
// Check that the snapshot's copy rules are correct.
//
// The copy rules are formatted as <src> -> <dest>, one per line and then compared
@ -477,20 +436,9 @@ type snapshotBuildInfo struct {
// The result from RunTest()
r *android.TestResult
// The version of the generated snapshot.
//
// See snapshotBuilder.version for more information about this field.
version string
// The contents of the generated Android.bp file
androidBpContents string
// The contents of the unversioned Android.bp file
androidUnversionedBpContents string
// The contents of the versioned Android.bp file
androidVersionedBpContents string
// The contents of the info file.
infoContents string

View file

@ -35,7 +35,7 @@ import (
// ========================================================
//
// SOONG_SDK_SNAPSHOT_PREFER
// By default every unversioned module in the generated snapshot has prefer: false. Building it
// By default every module in the generated snapshot has prefer: false. Building it
// with SOONG_SDK_SNAPSHOT_PREFER=true will force them to use prefer: true.
//
// SOONG_SDK_SNAPSHOT_USE_SOURCE_CONFIG_VAR
@ -69,20 +69,6 @@ import (
// maintainable solution has been implemented.
// TODO(b/174997203): Remove when no longer necessary.
//
// SOONG_SDK_SNAPSHOT_VERSION
// This provides control over the version of the generated snapshot.
//
// SOONG_SDK_SNAPSHOT_VERSION=current will generate unversioned and versioned prebuilts and a
// versioned snapshot module. This is the default behavior. The zip file containing the
// generated snapshot will be <sdk-name>-current.zip.
//
// SOONG_SDK_SNAPSHOT_VERSION=unversioned will generate unversioned prebuilts only and the zip
// file containing the generated snapshot will be <sdk-name>.zip.
//
// SOONG_SDK_SNAPSHOT_VERSION=<number> will generate versioned prebuilts and a versioned
// snapshot module only. The zip file containing the generated snapshot will be
// <sdk-name>-<number>.zip.
//
// SOONG_SDK_SNAPSHOT_TARGET_BUILD_RELEASE
// This allows the target build release (i.e. the release version of the build within which
// the snapshot will be used) of the snapshot to be specified. If unspecified then it defaults
@ -130,7 +116,6 @@ var (
)
const (
soongSdkSnapshotVersionUnversioned = "unversioned"
soongSdkSnapshotVersionCurrent = "current"
)
@ -163,13 +148,13 @@ func (gc *generatedContents) Dedent() {
// IndentedPrintf will add spaces to indent the line to the appropriate level before printing the
// arguments.
func (gc *generatedContents) IndentedPrintf(format string, args ...interface{}) {
fmt.Fprintf(&(gc.content), strings.Repeat(" ", gc.indentLevel)+format, args...)
_, _ = fmt.Fprintf(&(gc.content), strings.Repeat(" ", gc.indentLevel)+format, args...)
}
// UnindentedPrintf does not add spaces to indent the line to the appropriate level before printing
// the arguments.
func (gc *generatedContents) UnindentedPrintf(format string, args ...interface{}) {
fmt.Fprintf(&(gc.content), format, args...)
_, _ = fmt.Fprintf(&(gc.content), format, args...)
}
func (gf *generatedFile) build(pctx android.PackageContext, ctx android.BuilderContext, implicits android.Paths) {
@ -321,12 +306,6 @@ const BUILD_NUMBER_FILE = "snapshot-creation-build-number.txt"
// <arch>/lib/
// libFoo.so : a stub library
// A name that uniquely identifies a prebuilt SDK member for a version of SDK snapshot
// This isn't visible to users, so could be changed in future.
func versionedSdkMemberName(ctx android.ModuleContext, memberName string, version string) string {
return ctx.ModuleName() + "_" + memberName + string(android.SdkVersionSeparator) + version
}
// buildSnapshot is the main function in this source file. It creates rules to copy
// the contents (header files, stub libraries, etc) into the zip file.
func (s *sdk) buildSnapshot(ctx android.ModuleContext, sdkVariants []*sdk) {
@ -378,20 +357,9 @@ func (s *sdk) buildSnapshot(ctx android.ModuleContext, sdkVariants []*sdk) {
}
config := ctx.Config()
version := config.GetenvWithDefault("SOONG_SDK_SNAPSHOT_VERSION", "current")
// Generate versioned modules in the snapshot unless an unversioned snapshot has been requested.
generateVersioned := version != soongSdkSnapshotVersionUnversioned
// Generate unversioned modules in the snapshot unless a numbered snapshot has been requested.
//
// Unversioned modules are not required in that case because the numbered version will be a
// finalized version of the snapshot that is intended to be kept separate from the
generateUnversioned := version == soongSdkSnapshotVersionUnversioned || version == soongSdkSnapshotVersionCurrent
snapshotFileSuffix := ""
if generateVersioned {
snapshotFileSuffix = "-" + version
}
// Always add -current to the end
snapshotFileSuffix := "-current"
currentBuildRelease := latestBuildRelease()
targetBuildReleaseEnv := config.GetenvWithDefault("SOONG_SDK_SNAPSHOT_TARGET_BUILD_RELEASE", currentBuildRelease.name)
@ -404,7 +372,6 @@ func (s *sdk) buildSnapshot(ctx android.ModuleContext, sdkVariants []*sdk) {
builder := &snapshotBuilder{
ctx: ctx,
sdk: s,
version: version,
snapshotDir: snapshotDir.OutputPath,
copies: make(map[string]string),
filesToZip: []android.Path{bp.path},
@ -454,38 +421,19 @@ be unnecessary as every module in the sdk already has its own licenses property.
s.createMemberSnapshot(memberCtx, member, prebuiltModule.(*bpModule))
}
// Create a transformer that will transform an unversioned module into a versioned module.
unversionedToVersionedTransformer := unversionedToVersionedTransformation{builder: builder}
// Create a transformer that will transform an unversioned module by replacing any references
// Create a transformer that will transform a module by replacing any references
// to internal members with a unique module name and setting prefer: false.
unversionedTransformer := unversionedTransformation{
snapshotTransformer := snapshotTransformation{
builder: builder,
}
for _, unversioned := range builder.prebuiltOrder {
for _, module := range builder.prebuiltOrder {
// Prune any empty property sets.
unversioned = unversioned.transform(pruneEmptySetTransformer{})
module = module.transform(pruneEmptySetTransformer{})
if generateVersioned {
// Copy the unversioned module so it can be modified to make it versioned.
versioned := unversioned.deepCopy()
// Transform the unversioned module into a versioned one.
versioned.transform(unversionedToVersionedTransformer)
bpFile.AddModule(versioned)
}
if generateUnversioned {
// Transform the unversioned module to make it suitable for use in the snapshot.
unversioned.transform(unversionedTransformer)
bpFile.AddModule(unversioned)
}
}
if generateVersioned {
// Add the sdk/module_exports_snapshot module to the bp file.
s.addSnapshotModule(ctx, builder, sdkVariants, memberVariantDeps)
// Transform the module module to make it suitable for use in the snapshot.
module.transform(snapshotTransformer)
bpFile.AddModule(module)
}
// generate Android.bp
@ -672,7 +620,7 @@ func (s *sdk) generateInfoData(ctx android.ModuleContext, memberVariantDeps []sd
func filterOutComponents(ctx android.ModuleContext, deps []sdkMemberVariantDep) []sdkMemberVariantDep {
// Collate the set of components that all the modules added to the sdk provide.
components := map[string]*sdkMemberVariantDep{}
for i, _ := range deps {
for i := range deps {
dep := &deps[i]
for _, c := range dep.exportedComponentsInfo.Components {
components[c] = dep
@ -707,81 +655,6 @@ func filterOutComponents(ctx android.ModuleContext, deps []sdkMemberVariantDep)
return filtered
}
// addSnapshotModule adds the sdk_snapshot/module_exports_snapshot module to the builder.
func (s *sdk) addSnapshotModule(ctx android.ModuleContext, builder *snapshotBuilder, sdkVariants []*sdk, memberVariantDeps []sdkMemberVariantDep) {
bpFile := builder.bpFile
snapshotName := ctx.ModuleName() + string(android.SdkVersionSeparator) + builder.version
var snapshotModuleType string
if s.properties.Module_exports {
snapshotModuleType = "module_exports_snapshot"
} else {
snapshotModuleType = "sdk_snapshot"
}
snapshotModule := bpFile.newModule(snapshotModuleType)
snapshotModule.AddProperty("name", snapshotName)
// Make sure that the snapshot has the same visibility as the sdk.
visibility := android.EffectiveVisibilityRules(ctx, s).Strings()
if len(visibility) != 0 {
snapshotModule.AddProperty("visibility", visibility)
}
addHostDeviceSupportedProperties(s.ModuleBase.DeviceSupported(), s.ModuleBase.HostSupported(), snapshotModule)
combinedPropertiesList := s.collateSnapshotModuleInfo(ctx, sdkVariants, memberVariantDeps)
commonCombinedProperties := s.optimizeSnapshotModuleProperties(ctx, combinedPropertiesList)
s.addSnapshotPropertiesToPropertySet(builder, snapshotModule, commonCombinedProperties)
targetPropertySet := snapshotModule.AddPropertySet("target")
// Create a mapping from osType to combined properties.
osTypeToCombinedProperties := map[android.OsType]*combinedSnapshotModuleProperties{}
for _, combined := range combinedPropertiesList {
osTypeToCombinedProperties[combined.sdkVariant.Os()] = combined
}
// Iterate over the os types in a fixed order.
for _, osType := range s.getPossibleOsTypes() {
if combined, ok := osTypeToCombinedProperties[osType]; ok {
osPropertySet := targetPropertySet.AddPropertySet(osType.Name)
s.addSnapshotPropertiesToPropertySet(builder, osPropertySet, combined)
}
}
// If host is supported and any member is host OS dependent then disable host
// by default, so that we can enable each host OS variant explicitly. This
// avoids problems with implicitly enabled OS variants when the snapshot is
// used, which might be different from this run (e.g. different build OS).
if s.HostSupported() {
var supportedHostTargets []string
for _, memberVariantDep := range memberVariantDeps {
if memberVariantDep.memberType.IsHostOsDependent() && memberVariantDep.variant.Target().Os.Class == android.Host {
targetString := memberVariantDep.variant.Target().Os.String() + "_" + memberVariantDep.variant.Target().Arch.ArchType.String()
if !android.InList(targetString, supportedHostTargets) {
supportedHostTargets = append(supportedHostTargets, targetString)
}
}
}
if len(supportedHostTargets) > 0 {
hostPropertySet := targetPropertySet.AddPropertySet("host")
hostPropertySet.AddProperty("enabled", false)
}
// Enable the <os>_<arch> variant explicitly when we've disabled it by default on host.
for _, hostTarget := range supportedHostTargets {
propertySet := targetPropertySet.AddPropertySet(hostTarget)
propertySet.AddProperty("enabled", true)
}
}
// Prune any empty property sets.
snapshotModule.transform(pruneEmptySetTransformer{})
bpFile.AddModule(snapshotModule)
}
// Check the syntax of the generated Android.bp file contents and if they are
// invalid then log an error with the contents (tagged with line numbers) and the
// errors that were found so that it is easy to see where the problem lies.
@ -918,92 +791,34 @@ func (s *sdk) optimizeSnapshotModuleProperties(ctx android.ModuleContext, list [
}
}
func (s *sdk) addSnapshotPropertiesToPropertySet(builder *snapshotBuilder, propertySet android.BpPropertySet, combined *combinedSnapshotModuleProperties) {
staticProperties := combined.staticProperties
multilib := staticProperties.Compile_multilib
if multilib != "" && multilib != "both" {
// Compile_multilib defaults to both so only needs to be set when it's specified and not both.
propertySet.AddProperty("compile_multilib", multilib)
}
dynamicMemberTypeListProperties := combined.dynamicProperties
for _, memberListProperty := range s.memberTypeListProperties() {
if memberListProperty.getter == nil {
continue
}
names := memberListProperty.getter(dynamicMemberTypeListProperties)
if len(names) > 0 {
propertySet.AddProperty(memberListProperty.propertyName(), builder.versionedSdkMemberNames(names, false))
}
}
}
type propertyTag struct {
name string
}
var _ android.BpPropertyTag = propertyTag{}
// A BpPropertyTag to add to a property that contains references to other sdk members.
// BpPropertyTag instances to add to a property that contains references to other sdk members.
//
// This will cause the references to be rewritten to a versioned reference in the version
// specific instance of a snapshot module.
// These will ensure that the referenced modules are available, if required.
var requiredSdkMemberReferencePropertyTag = propertyTag{"requiredSdkMemberReferencePropertyTag"}
var optionalSdkMemberReferencePropertyTag = propertyTag{"optionalSdkMemberReferencePropertyTag"}
// A BpPropertyTag that indicates the property should only be present in the versioned
// module.
//
// This will cause the property to be removed from the unversioned instance of a
// snapshot module.
var sdkVersionedOnlyPropertyTag = propertyTag{"sdkVersionedOnlyPropertyTag"}
type unversionedToVersionedTransformation struct {
type snapshotTransformation struct {
identityTransformation
builder *snapshotBuilder
}
func (t unversionedToVersionedTransformation) transformModule(module *bpModule) *bpModule {
// Use a versioned name for the module but remember the original name for the
// snapshot.
name := module.Name()
module.setProperty("name", t.builder.versionedSdkMemberName(name, true))
module.insertAfter("name", "sdk_member_name", name)
// Remove the prefer property if present as versioned modules never need marking with prefer.
module.removeProperty("prefer")
// Ditto for use_source_config_var
module.removeProperty("use_source_config_var")
return module
}
func (t unversionedToVersionedTransformation) transformProperty(name string, value interface{}, tag android.BpPropertyTag) (interface{}, android.BpPropertyTag) {
if tag == requiredSdkMemberReferencePropertyTag || tag == optionalSdkMemberReferencePropertyTag {
required := tag == requiredSdkMemberReferencePropertyTag
return t.builder.versionedSdkMemberNames(value.([]string), required), tag
} else {
return value, tag
}
}
type unversionedTransformation struct {
identityTransformation
builder *snapshotBuilder
}
func (t unversionedTransformation) transformModule(module *bpModule) *bpModule {
func (t snapshotTransformation) transformModule(module *bpModule) *bpModule {
// If the module is an internal member then use a unique name for it.
name := module.Name()
module.setProperty("name", t.builder.unversionedSdkMemberName(name, true))
module.setProperty("name", t.builder.snapshotSdkMemberName(name, true))
return module
}
func (t unversionedTransformation) transformProperty(name string, value interface{}, tag android.BpPropertyTag) (interface{}, android.BpPropertyTag) {
func (t snapshotTransformation) transformProperty(_ string, value interface{}, tag android.BpPropertyTag) (interface{}, android.BpPropertyTag) {
if tag == requiredSdkMemberReferencePropertyTag || tag == optionalSdkMemberReferencePropertyTag {
required := tag == requiredSdkMemberReferencePropertyTag
return t.builder.unversionedSdkMemberNames(value.([]string), required), tag
} else if tag == sdkVersionedOnlyPropertyTag {
// The property is not allowed in the unversioned module so remove it.
return nil, nil
return t.builder.snapshotSdkMemberNames(value.([]string), required), tag
} else {
return value, tag
}
@ -1015,7 +830,7 @@ type pruneEmptySetTransformer struct {
var _ bpTransformer = (*pruneEmptySetTransformer)(nil)
func (t pruneEmptySetTransformer) transformPropertySetAfterContents(name string, propertySet *bpPropertySet, tag android.BpPropertyTag) (*bpPropertySet, android.BpPropertyTag) {
func (t pruneEmptySetTransformer) transformPropertySetAfterContents(_ string, propertySet *bpPropertySet, tag android.BpPropertyTag) (*bpPropertySet, android.BpPropertyTag) {
if len(propertySet.properties) == 0 {
return nil, nil
} else {
@ -1024,21 +839,13 @@ func (t pruneEmptySetTransformer) transformPropertySetAfterContents(name string,
}
func generateBpContents(contents *generatedContents, bpFile *bpFile) {
generateFilteredBpContents(contents, bpFile, func(*bpModule) bool {
return true
})
}
func generateFilteredBpContents(contents *generatedContents, bpFile *bpFile, moduleFilter func(module *bpModule) bool) {
contents.IndentedPrintf("// This is auto-generated. DO NOT EDIT.\n")
for _, bpModule := range bpFile.order {
if moduleFilter(bpModule) {
contents.IndentedPrintf("\n")
contents.IndentedPrintf("%s {\n", bpModule.moduleType)
outputPropertySet(contents, bpModule.bpPropertySet)
contents.IndentedPrintf("}\n")
}
}
}
func outputPropertySet(contents *generatedContents, set *bpPropertySet) {
@ -1173,36 +980,10 @@ func (s *sdk) GetInfoContentsForTests() string {
return s.builderForTests.infoContents
}
func (s *sdk) GetUnversionedAndroidBpContentsForTests() string {
contents := &generatedContents{}
generateFilteredBpContents(contents, s.builderForTests.bpFile, func(module *bpModule) bool {
name := module.Name()
// Include modules that are either unversioned or have no name.
return !strings.Contains(name, "@")
})
return contents.content.String()
}
func (s *sdk) GetVersionedAndroidBpContentsForTests() string {
contents := &generatedContents{}
generateFilteredBpContents(contents, s.builderForTests.bpFile, func(module *bpModule) bool {
name := module.Name()
// Include modules that are either versioned or have no name.
return name == "" || strings.Contains(name, "@")
})
return contents.content.String()
}
type snapshotBuilder struct {
ctx android.ModuleContext
sdk *sdk
// The version of the generated snapshot.
//
// See the documentation of SOONG_SDK_SNAPSHOT_VERSION above for details of the valid values of
// this field.
version string
snapshotDir android.OutputPath
bpFile *bpFile
@ -1356,13 +1137,6 @@ func (s *snapshotBuilder) AddPrebuiltModule(member android.SdkMember, moduleType
addHostDeviceSupportedProperties(deviceSupported, hostSupported, m)
// Disable installation in the versioned module of those modules that are ever installable.
if installable, ok := variant.(interface{ EverInstallable() bool }); ok {
if installable.EverInstallable() {
m.AddPropertyWithTag("installable", false, sdkVersionedOnlyPropertyTag)
}
}
s.prebuiltModules[name] = m
s.prebuiltOrder = append(s.prebuiltOrder, m)
return m
@ -1395,45 +1169,28 @@ func (s *snapshotBuilder) OptionalSdkMemberReferencePropertyTag() android.BpProp
return optionalSdkMemberReferencePropertyTag
}
// Get a versioned name appropriate for the SDK snapshot version being taken.
func (s *snapshotBuilder) versionedSdkMemberName(unversionedName string, required bool) string {
if _, ok := s.allMembersByName[unversionedName]; !ok {
// Get a name for sdk snapshot member. If the member is private then generate a snapshot specific
// name. As part of the processing this checks to make sure that any required members are part of
// the snapshot.
func (s *snapshotBuilder) snapshotSdkMemberName(name string, required bool) string {
if _, ok := s.allMembersByName[name]; !ok {
if required {
s.ctx.ModuleErrorf("Required member reference %s is not a member of the sdk", unversionedName)
s.ctx.ModuleErrorf("Required member reference %s is not a member of the sdk", name)
}
return unversionedName
}
return versionedSdkMemberName(s.ctx, unversionedName, s.version)
}
func (s *snapshotBuilder) versionedSdkMemberNames(members []string, required bool) []string {
var references []string = nil
for _, m := range members {
references = append(references, s.versionedSdkMemberName(m, required))
}
return references
}
// Get an internal name unique to the sdk.
func (s *snapshotBuilder) unversionedSdkMemberName(unversionedName string, required bool) string {
if _, ok := s.allMembersByName[unversionedName]; !ok {
if required {
s.ctx.ModuleErrorf("Required member reference %s is not a member of the sdk", unversionedName)
}
return unversionedName
return name
}
if s.isInternalMember(unversionedName) {
return s.ctx.ModuleName() + "_" + unversionedName
if s.isInternalMember(name) {
return s.ctx.ModuleName() + "_" + name
} else {
return unversionedName
return name
}
}
func (s *snapshotBuilder) unversionedSdkMemberNames(members []string, required bool) []string {
func (s *snapshotBuilder) snapshotSdkMemberNames(members []string, required bool) []string {
var references []string = nil
for _, m := range members {
references = append(references, s.unversionedSdkMemberName(m, required))
references = append(references, s.snapshotSdkMemberName(m, required))
}
return references
}