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:
parent
78ce8c23de
commit
b01ac4b6ba
14 changed files with 119 additions and 2242 deletions
|
@ -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 {
|
||||
|
|
12
sdk/bp.go
12
sdk/bp.go
|
@ -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
|
@ -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 {
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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"],
|
||||
}
|
||||
`),
|
||||
)
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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(`
|
||||
|
|
|
@ -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 {
|
||||
|
|
34
sdk/sdk.go
34
sdk/sdk.go
|
@ -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 {
|
||||
|
|
198
sdk/sdk_test.go
198
sdk/sdk_test.go
|
@ -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 {
|
||||
|
|
|
@ -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"],
|
||||
}
|
||||
`),
|
||||
)
|
||||
}
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
309
sdk/update.go
309
sdk/update.go
|
@ -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
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue