diff options
Diffstat (limited to 'Android.bp')
-rw-r--r-- | Android.bp | 57 |
1 files changed, 39 insertions, 18 deletions
@@ -21,7 +21,7 @@ // NetworkStackAndroidLibraryDefaults <-- common defaults for android libs // / \ // +NetworkStackApiStableShims --> / \ <-- +NetworkStackApiCurrentShims -// +NetworkStackApiStableLevel / \ +NetworkStackApiCurrentLevel +// +NetworkStackReleaseApiLevel / \ +NetworkStackDevApiLevel // +jarjar apistub.api[latest].* / \ +module src/ // to apistub.* / \ // / \ @@ -34,7 +34,7 @@ // | <-- +NetworkStackAppDefaults --> | // | (APK build params) | // | | -// | <-- +NetworkStackApiStableLevel | <-- +NetworkStackApiCurrentLevel +// | <-- +NetworkStackReleaseApiLevel | <-- +NetworkStackDevApiLevel // | | // | | // NetworkStackApiStable NetworkStack, InProcessNetworkStack, <-- APKs @@ -42,15 +42,15 @@ // Common defaults to define SDK level java_defaults { - name: "NetworkStackApiCurrentLevel", + name: "NetworkStackDevApiLevel", sdk_version: "system_current", - min_sdk_version: "28", } java_defaults { - name: "NetworkStackApiStableLevel", + name: "NetworkStackReleaseApiLevel", sdk_version: "system_29", - min_sdk_version: "28", + min_sdk_version: "29", + target_sdk_version: "29", } // Filegroups for the API shims @@ -101,7 +101,7 @@ java_defaults { // there eventually), and to use the compat shim as fallback on older devices. android_library { name: "NetworkStackApiCurrentLib", - defaults: ["NetworkStackApiCurrentLevel", "NetworkStackAndroidLibraryDefaults"], + defaults: ["NetworkStackDevApiLevel", "NetworkStackAndroidLibraryDefaults"], srcs: [ ":NetworkStackApiCurrentShims", "src/**/*.java", @@ -114,14 +114,14 @@ android_library { // linking with the dependencies. java_library { name: "NetworkStackApiStableDependencies", - defaults: ["NetworkStackApiStableLevel", "NetworkStackAndroidLibraryDefaults"], + defaults: ["NetworkStackReleaseApiLevel", "NetworkStackAndroidLibraryDefaults"], srcs: [":NetworkStackApiStableShims"], jarjar_rules: "apishim/jarjar-rules-compat.txt", } android_library { name: "NetworkStackApiStableLib", - defaults: ["NetworkStackApiStableLevel"], + defaults: ["NetworkStackReleaseApiLevel"], srcs: [ "src/**/*.java", ":statslog-networkstack-java-gen-q", @@ -153,7 +153,7 @@ java_defaults { // Non-updatable network stack running in the system server process for devices not using the module android_app { name: "InProcessNetworkStack", - defaults: [ "NetworkStackAppDefaults", "NetworkStackApiCurrentLevel"], + defaults: [ "NetworkStackAppDefaults", "NetworkStackDevApiLevel"], static_libs: ["NetworkStackApiCurrentLib"], certificate: "platform", manifest: "AndroidManifest_InProcess.xml", @@ -165,13 +165,13 @@ android_app { required: ["PlatformNetworkPermissionConfig", "PlatformCaptivePortalLogin"], } -// Updatable network stack packaged as an application +// NetworkStack build targeting the current API release, for testing on in-development SDK android_app { name: "NetworkStackNext", - defaults: ["NetworkStackAppDefaults", "NetworkStackApiCurrentLevel"], + defaults: ["NetworkStackAppDefaults", "NetworkStackDevApiLevel"], static_libs: ["NetworkStackApiCurrentLib"], certificate: "networkstack", - manifest: "AndroidManifest.xml", + manifest: ":NetworkStackNextAndroidManifest", // The permission configuration *must* be included to ensure security of the device required: ["NetworkPermissionConfig"], } @@ -179,7 +179,7 @@ android_app { // Updatable network stack for finalized API android_app { name: "NetworkStack", - defaults: ["NetworkStackAppDefaults", "NetworkStackApiStableLevel"], + defaults: ["NetworkStackAppDefaults", "NetworkStackReleaseApiLevel"], static_libs: ["NetworkStackApiStableLib"], certificate: "networkstack", manifest: "AndroidManifest.xml", @@ -190,8 +190,8 @@ android_app { // Android library to derive test APKs for integration tests android_library { name: "TestNetworkStackLib", - defaults: ["NetworkStackAppDefaults", "NetworkStackApiCurrentLevel"], - static_libs: ["NetworkStackApiCurrentLib"], + defaults: ["NetworkStackAppDefaults", "NetworkStackReleaseApiLevel"], + static_libs: ["NetworkStackApiStableLib"], manifest: "AndroidManifestBase.xml", } @@ -243,16 +243,37 @@ genrule { out: ["com/android/networkstack/metrics/NetworkStackStatsLog.java"], } +version_code_networkstack_next = "300000000" +version_code_networkstack_test = "999999999" + genrule { name: "NetworkStackTestAndroidManifest", srcs: ["AndroidManifest.xml"], out: ["TestAndroidManifest.xml"], - cmd: "sed 's/versionCode=\".*\"/versionCode=\"300000000\"/' $(in) > $(out)", + cmd: "sed -E 's/versionCode=\"[0-9]+\"/versionCode=\"" + + version_code_networkstack_test + + "\"/' $(in) > $(out)", + visibility: ["//visibility:private"], +} + +// genrule to modify the NetworkStack manifest for NetworkStackNext, which is the "next" version +// that builds against the "next", non-stable APIs. +// A genrule seems simpler than having yet another manifest to merge. The only elements that would +// change in the manifest are the version code, and the min/target SDK which are populated +// automatically on build with the current SDK. +genrule { + name: "NetworkStackNextAndroidManifest", + srcs: ["AndroidManifest.xml"], + out: ["NetworkStackNextAndroidManifest.xml"], + cmd: "sed -E 's/versionCode=\"[0-9]+\"/versionCode=\"" + + version_code_networkstack_next + + "\"/' $(in) > $(out)", + visibility: ["//visibility:private"], } android_app { name: "TestNetworkStack", - defaults: ["NetworkStackAppDefaults", "NetworkStackApiCurrentLevel"], + defaults: ["NetworkStackAppDefaults", "NetworkStackDevApiLevel"], static_libs: ["NetworkStackApiCurrentLib"], certificate: "networkstack", manifest: ":NetworkStackTestAndroidManifest", |