Anton Hansson | 807c083 | 2021-04-14 15:47:59 +0100 | [diff] [blame] | 1 | // Copyright (C) 2019 The Android Open Source Project |
| 2 | // |
| 3 | // Licensed under the Apache License, Version 2.0 (the "License"); |
| 4 | // you may not use this file except in compliance with the License. |
| 5 | // You may obtain a copy of the License at |
| 6 | // |
| 7 | // http://www.apache.org/licenses/LICENSE-2.0 |
| 8 | // |
| 9 | // Unless required by applicable law or agreed to in writing, software |
| 10 | // distributed under the License is distributed on an "AS IS" BASIS, |
| 11 | // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| 12 | // See the License for the specific language governing permissions and |
| 13 | // limitations under the License. |
| 14 | |
| 15 | package { |
| 16 | default_visibility: [":__subpackages__"], |
| 17 | default_applicable_licenses: ["Android-Apache-2.0"], |
| 18 | } |
| 19 | |
Anton Hansson | 807c083 | 2021-04-14 15:47:59 +0100 | [diff] [blame] | 20 | // Defaults common to all mainline module java_sdk_library instances. |
| 21 | java_defaults { |
| 22 | name: "framework-module-common-defaults", |
| 23 | |
Anton Hansson | ee390f2 | 2021-09-16 15:26:49 +0100 | [diff] [blame] | 24 | // Use the source of annotations that affect metalava doc generation, since |
| 25 | // the relevant generation instructions are themselves in javadoc, which is |
| 26 | // not present in class files. |
| 27 | api_srcs: [":framework-metalava-annotations"], |
| 28 | |
| 29 | // Make the source retention annotations available on the classpath when compiling |
| 30 | // the implementation library. (This should be in impl_only_libs but some modules |
| 31 | // use these defaults for java_library, sigh.) |
Anton Hansson | 807c083 | 2021-04-14 15:47:59 +0100 | [diff] [blame] | 32 | libs: ["framework-annotations-lib"], |
| 33 | |
| 34 | // Framework modules are not generally shared libraries, i.e. they are not |
| 35 | // intended, and must not be allowed, to be used in a <uses-library> manifest |
| 36 | // entry. |
| 37 | shared_library: false, |
| 38 | |
| 39 | // Prevent dependencies that do not specify an sdk_version from accessing the |
| 40 | // implementation library by default and force them to use stubs instead. |
| 41 | default_to_stubs: true, |
| 42 | |
| 43 | // Enable api lint. This will eventually become the default for java_sdk_library |
| 44 | // but it cannot yet be turned on because some usages have not been cleaned up. |
| 45 | // TODO(b/156126315) - Remove when no longer needed. |
| 46 | api_lint: { |
| 47 | enabled: true, |
Anton Hansson | 7840814 | 2023-10-26 14:16:05 +0000 | [diff] [blame] | 48 | legacy_errors_allowed: false, |
Anton Hansson | 807c083 | 2021-04-14 15:47:59 +0100 | [diff] [blame] | 49 | }, |
| 50 | |
| 51 | // The API scope specific properties. |
| 52 | public: { |
| 53 | enabled: true, |
| 54 | sdk_version: "module_current", |
| 55 | }, |
| 56 | |
| 57 | // installable implies we'll create a non-apex (platform) variant, which |
| 58 | // we shouldn't ordinarily need (and it can create issues), so disable that. |
| 59 | installable: false, |
| 60 | |
| 61 | // Configure framework module specific metalava options. |
Anton Hansson | 149bb74 | 2023-10-23 14:38:19 +0000 | [diff] [blame] | 62 | droiddoc_options: [ |
| 63 | "--error UnhiddenSystemApi", |
Anton Hansson | 3892f65 | 2023-10-23 14:38:19 +0000 | [diff] [blame] | 64 | "--error UnflaggedApi", |
Anton Hansson | 149bb74 | 2023-10-23 14:38:19 +0000 | [diff] [blame] | 65 | "--hide CallbackInterface", |
Anton Hansson | 149bb74 | 2023-10-23 14:38:19 +0000 | [diff] [blame] | 66 | "--enhance-documentation", |
| 67 | ], |
Anton Hansson | 807c083 | 2021-04-14 15:47:59 +0100 | [diff] [blame] | 68 | |
| 69 | annotations_enabled: true, |
| 70 | |
| 71 | // Allow access to the stubs from anywhere |
| 72 | visibility: ["//visibility:public"], |
| 73 | stubs_library_visibility: ["//visibility:public"], |
| 74 | |
| 75 | // Hide impl library and stub sources |
| 76 | impl_library_visibility: [ |
| 77 | ":__pkg__", |
Anton Hansson | 5053a09 | 2022-01-28 13:22:10 +0000 | [diff] [blame] | 78 | "//frameworks/base/api", // For framework-all |
Anton Hansson | 807c083 | 2021-04-14 15:47:59 +0100 | [diff] [blame] | 79 | ], |
| 80 | stubs_source_visibility: ["//visibility:private"], |
| 81 | |
| 82 | defaults_visibility: ["//visibility:private"], |
| 83 | |
Nikita Ioffe | b939df8 | 2022-12-06 14:12:52 +0000 | [diff] [blame] | 84 | dist_group: "android", |
| 85 | } |
| 86 | |
| 87 | // Defaults for the java_sdk_libraries of non-updatable modules. |
| 88 | // java_sdk_libraries using these defaults should also add themselves to the |
| 89 | // non_updatable_modules list in frameworks/base/api/api.go |
| 90 | java_defaults { |
| 91 | name: "non-updatable-framework-module-defaults", |
| 92 | defaults: ["framework-module-common-defaults"], |
| 93 | |
| 94 | system: { |
| 95 | enabled: true, |
| 96 | sdk_version: "module_current", |
| 97 | }, |
| 98 | module_lib: { |
| 99 | enabled: true, |
| 100 | sdk_version: "module_current", |
| 101 | }, |
| 102 | // Non-updatable modules are allowed to provide @TestApi |
| 103 | test: { |
| 104 | enabled: true, |
| 105 | sdk_version: "module_current", |
Anton Hansson | 8f3c2f9 | 2022-04-29 11:34:34 +0000 | [diff] [blame] | 106 | }, |
| 107 | |
Nikita Ioffe | b939df8 | 2022-12-06 14:12:52 +0000 | [diff] [blame] | 108 | defaults_visibility: [ |
Anton Hansson | 02b056f | 2023-10-24 14:56:05 +0000 | [diff] [blame] | 109 | "//frameworks/base", |
| 110 | "//frameworks/base/api", |
Nikita Ioffe | b939df8 | 2022-12-06 14:12:52 +0000 | [diff] [blame] | 111 | "//packages/modules/Virtualization:__subpackages__", |
| 112 | ], |
Anton Hansson | 807c083 | 2021-04-14 15:47:59 +0100 | [diff] [blame] | 113 | } |
| 114 | |
| 115 | // Defaults for mainline module provided java_sdk_library instances. |
| 116 | java_defaults { |
| 117 | name: "framework-module-defaults", |
| 118 | defaults: ["framework-module-common-defaults"], |
| 119 | sdk_version: "module_current", |
| 120 | |
| 121 | system: { |
| 122 | enabled: true, |
| 123 | sdk_version: "module_current", |
| 124 | }, |
| 125 | module_lib: { |
| 126 | enabled: true, |
| 127 | sdk_version: "module_current", |
| 128 | }, |
Nikita Ioffe | b939df8 | 2022-12-06 14:12:52 +0000 | [diff] [blame] | 129 | |
Anton Hansson | 807c083 | 2021-04-14 15:47:59 +0100 | [diff] [blame] | 130 | defaults_visibility: [ |
| 131 | ":__subpackages__", |
Roshan Pius | fe25763 | 2023-10-13 15:35:47 -0700 | [diff] [blame] | 132 | // TODO(b/237461653): Move this to packages/modules/Nfc |
Roshan Pius | 7d50f76 | 2023-12-07 10:57:07 -0800 | [diff] [blame] | 133 | "//frameworks/base/nfc", |
Anton Hansson | 807c083 | 2021-04-14 15:47:59 +0100 | [diff] [blame] | 134 | "//frameworks/base/apex:__subpackages__", |
| 135 | "//frameworks/base/libs/hwui", |
Anton Hansson | 807c083 | 2021-04-14 15:47:59 +0100 | [diff] [blame] | 136 | "//frameworks/base/wifi", |
| 137 | "//packages/modules:__subpackages__", |
| 138 | "//packages/providers/MediaProvider:__subpackages__", |
Samiul Islam | 4fd10a5 | 2021-10-11 22:54:18 +0100 | [diff] [blame] | 139 | "//system/apex/apexd:__subpackages__", |
Anton Hansson | 807c083 | 2021-04-14 15:47:59 +0100 | [diff] [blame] | 140 | ], |
| 141 | } |
| 142 | |
| 143 | // Defaults for mainline module system server provided java_sdk_library instances. |
| 144 | java_defaults { |
| 145 | name: "framework-system-server-module-defaults", |
| 146 | defaults: ["framework-module-common-defaults"], |
| 147 | sdk_version: "system_server_current", |
| 148 | |
| 149 | system_server: { |
| 150 | enabled: true, |
| 151 | sdk_version: "system_server_current", |
| 152 | }, |
Nikita Ioffe | b939df8 | 2022-12-06 14:12:52 +0000 | [diff] [blame] | 153 | |
Anton Hansson | 807c083 | 2021-04-14 15:47:59 +0100 | [diff] [blame] | 154 | defaults_visibility: [ |
| 155 | ":__subpackages__", |
| 156 | "//art/libartservice:__subpackages__", |
| 157 | "//frameworks/base/apex:__subpackages__", |
| 158 | "//packages/modules:__subpackages__", |
Samiul Islam | 4fd10a5 | 2021-10-11 22:54:18 +0100 | [diff] [blame] | 159 | "//system/apex/apexd:__subpackages__", |
Anton Hansson | 807c083 | 2021-04-14 15:47:59 +0100 | [diff] [blame] | 160 | ], |
| 161 | } |
| 162 | |
Anton Hansson | 2e17258 | 2023-03-06 11:44:02 +0000 | [diff] [blame] | 163 | filegroup_defaults { |
| 164 | name: "framework-sources-module-defaults", |
Anton Hansson | f54077e | 2023-03-20 12:07:14 +0000 | [diff] [blame] | 165 | visibility: [ |
| 166 | "//frameworks/base", |
| 167 | "//frameworks/base/api", |
| 168 | ], |
Anton Hansson | 2e17258 | 2023-03-06 11:44:02 +0000 | [diff] [blame] | 169 | defaults_visibility: ["//visibility:public"], |
| 170 | } |
| 171 | |
Gurpreet Singh | b6bc4b7 | 2022-03-02 16:34:58 +0000 | [diff] [blame] | 172 | // These apex_defaults serve as a common place to add properties which should |
| 173 | // affect all mainline modules. |
Andrei Onea | 13f28a2 | 2023-01-16 14:17:24 +0000 | [diff] [blame] | 174 | |
Andrei Onea | 152c832 | 2023-05-23 18:24:07 +0000 | [diff] [blame] | 175 | APEX_LOWEST_MIN_SDK_VERSION = "30" |
Andrei Onea | 13f28a2 | 2023-01-16 14:17:24 +0000 | [diff] [blame] | 176 | DCLA_MIN_SDK_VERSION = "31" |
| 177 | |
Gurpreet Singh | b6bc4b7 | 2022-03-02 16:34:58 +0000 | [diff] [blame] | 178 | apex_defaults { |
Andrei Onea | 13f28a2 | 2023-01-16 14:17:24 +0000 | [diff] [blame] | 179 | name: "any-launched-apex-modules", |
Gurpreet Singh | b6bc4b7 | 2022-03-02 16:34:58 +0000 | [diff] [blame] | 180 | updatable: true, |
| 181 | defaults_visibility: ["//visibility:public"], |
| 182 | } |
| 183 | |
Andrei Onea | 13f28a2 | 2023-01-16 14:17:24 +0000 | [diff] [blame] | 184 | apex_defaults { |
| 185 | name: "q-launched-apex-module", |
| 186 | defaults: ["any-launched-apex-modules"], |
Andrei Onea | 152c832 | 2023-05-23 18:24:07 +0000 | [diff] [blame] | 187 | min_sdk_version: APEX_LOWEST_MIN_SDK_VERSION, |
Andrei Onea | 13f28a2 | 2023-01-16 14:17:24 +0000 | [diff] [blame] | 188 | defaults_visibility: ["//visibility:public"], |
| 189 | } |
Liz Kammer | fc0ea40 | 2022-05-25 15:04:10 -0400 | [diff] [blame] | 190 | |
| 191 | soong_config_module_type_import { |
| 192 | from: "system/apex/Android.bp", |
Zhi Dou | c4eea7d | 2022-12-09 22:24:42 +0000 | [diff] [blame] | 193 | module_types: [ |
| 194 | "library_linking_strategy_apex_defaults", |
| 195 | "library_linking_strategy_cc_defaults", |
| 196 | ], |
Liz Kammer | fc0ea40 | 2022-05-25 15:04:10 -0400 | [diff] [blame] | 197 | } |
| 198 | |
| 199 | library_linking_strategy_apex_defaults { |
Nada Hussein | ea5a56f | 2022-09-26 18:50:53 +0000 | [diff] [blame] | 200 | name: "q-launched-dcla-enabled-apex-module", |
| 201 | defaults_visibility: [ |
| 202 | "//external/conscrypt/apex", |
| 203 | "//packages/modules/DnsResolver/apex", |
| 204 | "//frameworks/av/apex" |
| 205 | ], |
| 206 | defaults: ["q-launched-apex-module"], |
| 207 | soong_config_variables: { |
| 208 | library_linking_strategy: { |
| 209 | // Use the Q min_sdk_version |
| 210 | prefer_static: {}, |
| 211 | // Override the Q min_sdk_version to min_sdk_version that supports dcla |
| 212 | conditions_default: { |
| 213 | min_sdk_version: DCLA_MIN_SDK_VERSION, |
| 214 | }, |
| 215 | }, |
| 216 | }, |
| 217 | } |
| 218 | |
| 219 | apex_defaults { |
| 220 | name: "r-launched-apex-module", |
Andrei Onea | 13f28a2 | 2023-01-16 14:17:24 +0000 | [diff] [blame] | 221 | defaults: ["any-launched-apex-modules"], |
Nada Hussein | ea5a56f | 2022-09-26 18:50:53 +0000 | [diff] [blame] | 222 | min_sdk_version: "30", |
Nada Hussein | ea5a56f | 2022-09-26 18:50:53 +0000 | [diff] [blame] | 223 | defaults_visibility: ["//visibility:public"], |
| 224 | } |
| 225 | |
| 226 | library_linking_strategy_apex_defaults { |
Liz Kammer | fc0ea40 | 2022-05-25 15:04:10 -0400 | [diff] [blame] | 227 | name: "r-launched-dcla-enabled-apex-module", |
Nada Hussein | ea5a56f | 2022-09-26 18:50:53 +0000 | [diff] [blame] | 228 | defaults_visibility: [ |
| 229 | "//packages/modules/adb:__subpackages__", |
| 230 | "//packages/modules/Connectivity/Tethering/apex", |
| 231 | ], |
Liz Kammer | fc0ea40 | 2022-05-25 15:04:10 -0400 | [diff] [blame] | 232 | defaults: ["r-launched-apex-module"], |
| 233 | soong_config_variables: { |
| 234 | library_linking_strategy: { |
| 235 | // Use the R min_sdk_version |
| 236 | prefer_static: {}, |
| 237 | // Override the R min_sdk_version to min_sdk_version that supports dcla |
| 238 | conditions_default: { |
| 239 | min_sdk_version: DCLA_MIN_SDK_VERSION, |
| 240 | }, |
| 241 | }, |
| 242 | }, |
| 243 | } |
| 244 | |
Gurpreet Singh | b6bc4b7 | 2022-03-02 16:34:58 +0000 | [diff] [blame] | 245 | apex_defaults { |
| 246 | name: "s-launched-apex-module", |
Andrei Onea | 13f28a2 | 2023-01-16 14:17:24 +0000 | [diff] [blame] | 247 | defaults: ["any-launched-apex-modules"], |
Gurpreet Singh | b6bc4b7 | 2022-03-02 16:34:58 +0000 | [diff] [blame] | 248 | min_sdk_version: "31", |
Hassan Ali | 6c8f794 | 2022-06-29 14:55:32 +0000 | [diff] [blame] | 249 | // Indicates that pre-installed version of this apex can be compressed. |
| 250 | // Whether it actually will be compressed is controlled on per-device basis. |
| 251 | compressible:true, |
Gurpreet Singh | b6bc4b7 | 2022-03-02 16:34:58 +0000 | [diff] [blame] | 252 | defaults_visibility: [ |
| 253 | "//art:__subpackages__", |
| 254 | "//packages/modules:__subpackages__", |
| 255 | ], |
| 256 | } |
| 257 | |
| 258 | apex_defaults { |
| 259 | name: "t-launched-apex-module", |
Andrei Onea | 13f28a2 | 2023-01-16 14:17:24 +0000 | [diff] [blame] | 260 | defaults: ["any-launched-apex-modules"], |
Gurpreet Singh | b6bc4b7 | 2022-03-02 16:34:58 +0000 | [diff] [blame] | 261 | min_sdk_version: "Tiramisu", |
Hassan Ali | 6c8f794 | 2022-06-29 14:55:32 +0000 | [diff] [blame] | 262 | // Indicates that pre-installed version of this apex can be compressed. |
| 263 | // Whether it actually will be compressed is controlled on per-device basis. |
Pedro Loureiro | 897758d | 2022-09-27 14:25:59 +0000 | [diff] [blame] | 264 | compressible: true, |
| 265 | defaults_visibility: ["//packages/modules:__subpackages__"], |
| 266 | } |
| 267 | |
Pedro Loureiro | 897758d | 2022-09-27 14:25:59 +0000 | [diff] [blame] | 268 | apex_defaults { |
| 269 | name: "u-launched-apex-module", |
Andrei Onea | 13f28a2 | 2023-01-16 14:17:24 +0000 | [diff] [blame] | 270 | defaults: ["any-launched-apex-modules"], |
Pedro Loureiro | 897758d | 2022-09-27 14:25:59 +0000 | [diff] [blame] | 271 | min_sdk_version: "UpsideDownCake", |
Pedro Loureiro | 897758d | 2022-09-27 14:25:59 +0000 | [diff] [blame] | 272 | // Indicates that pre-installed version of this apex can be compressed. |
| 273 | // Whether it actually will be compressed is controlled on per-device basis. |
| 274 | compressible: true, |
Gurpreet Singh | b6bc4b7 | 2022-03-02 16:34:58 +0000 | [diff] [blame] | 275 | defaults_visibility: ["//packages/modules:__subpackages__"], |
| 276 | } |
Zhi Dou | c4eea7d | 2022-12-09 22:24:42 +0000 | [diff] [blame] | 277 | |
Harshit Mahajan | 83b67d1 | 2023-08-16 13:15:07 +0000 | [diff] [blame] | 278 | apex_defaults { |
| 279 | name: "v-launched-apex-module", |
| 280 | defaults: ["any-launched-apex-modules"], |
| 281 | min_sdk_version: "VanillaIceCream", |
| 282 | // Indicates that pre-installed version of this apex can be compressed. |
| 283 | // Whether it actually will be compressed is controlled on per-device basis. |
| 284 | compressible: true, |
| 285 | defaults_visibility: ["//packages/modules:__subpackages__"], |
| 286 | } |
| 287 | |
Harshit Mahajan | 2e28765 | 2024-08-28 10:38:26 +0000 | [diff] [blame] | 288 | apex_defaults { |
| 289 | name: "b-launched-apex-module", |
| 290 | defaults: ["any-launched-apex-modules"], |
| 291 | min_sdk_version: "Baklava", |
| 292 | // Indicates that pre-installed version of this apex can be compressed. |
| 293 | // Whether it actually will be compressed is controlled on per-device basis. |
| 294 | compressible: true, |
| 295 | defaults_visibility: ["//packages/modules:__subpackages__"], |
| 296 | } |
| 297 | |
Zhi Dou | c4eea7d | 2022-12-09 22:24:42 +0000 | [diff] [blame] | 298 | library_linking_strategy_cc_defaults { |
| 299 | name: "apex-lowest-min-sdk-version", |
| 300 | defaults_visibility: [ |
Steven Moreland | 4afc362 | 2023-10-07 01:13:32 +0000 | [diff] [blame] | 301 | "//system/core/libutils:__subpackages__", |
Zhi Dou | c4eea7d | 2022-12-09 22:24:42 +0000 | [diff] [blame] | 302 | ], |
| 303 | min_sdk_version: APEX_LOWEST_MIN_SDK_VERSION, |
| 304 | soong_config_variables: { |
| 305 | library_linking_strategy: { |
| 306 | prefer_static: { |
| 307 | min_sdk_version: "apex_inherit", |
| 308 | }, |
| 309 | }, |
| 310 | }, |
| 311 | } |