1*0e209d39SAndroid Build Coastguard Worker// 2*0e209d39SAndroid Build Coastguard Worker// Copyright (C) 2017 The Android Open Source Project 3*0e209d39SAndroid Build Coastguard Worker// 4*0e209d39SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License"); 5*0e209d39SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License. 6*0e209d39SAndroid Build Coastguard Worker// You may obtain a copy of the License at 7*0e209d39SAndroid Build Coastguard Worker// 8*0e209d39SAndroid Build Coastguard Worker// http://www.apache.org/licenses/LICENSE-2.0 9*0e209d39SAndroid Build Coastguard Worker// 10*0e209d39SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software 11*0e209d39SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS, 12*0e209d39SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*0e209d39SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and 14*0e209d39SAndroid Build Coastguard Worker// limitations under the License. 15*0e209d39SAndroid Build Coastguard Worker// 16*0e209d39SAndroid Build Coastguard Worker 17*0e209d39SAndroid Build Coastguard Workerpackage { 18*0e209d39SAndroid Build Coastguard Worker default_team: "trendy_team_java_core_libraries", 19*0e209d39SAndroid Build Coastguard Worker default_visibility: ["//visibility:private"], 20*0e209d39SAndroid Build Coastguard Worker // See: http://go/android-license-faq 21*0e209d39SAndroid Build Coastguard Worker // A large-scale-change added 'default_applicable_licenses' to import 22*0e209d39SAndroid Build Coastguard Worker // all of the 'license_kinds' from "external_icu_license" 23*0e209d39SAndroid Build Coastguard Worker // to get the below license kinds: 24*0e209d39SAndroid Build Coastguard Worker // SPDX-license-identifier-Apache-2.0 25*0e209d39SAndroid Build Coastguard Worker // SPDX-license-identifier-BSD 26*0e209d39SAndroid Build Coastguard Worker // SPDX-license-identifier-ICU 27*0e209d39SAndroid Build Coastguard Worker // SPDX-license-identifier-MIT 28*0e209d39SAndroid Build Coastguard Worker // SPDX-license-identifier-Unicode-DFS 29*0e209d39SAndroid Build Coastguard Worker // legacy_unencumbered 30*0e209d39SAndroid Build Coastguard Worker default_applicable_licenses: ["external_icu_license"], 31*0e209d39SAndroid Build Coastguard Worker} 32*0e209d39SAndroid Build Coastguard Worker 33*0e209d39SAndroid Build Coastguard Worker//========================================================== 34*0e209d39SAndroid Build Coastguard Worker// build repackaged ICU for target 35*0e209d39SAndroid Build Coastguard Worker// 36*0e209d39SAndroid Build Coastguard Worker// This is done in the libcore/JavaLibraries.mk file as there are circular 37*0e209d39SAndroid Build Coastguard Worker// dependencies between ICU and libcore 38*0e209d39SAndroid Build Coastguard Worker//========================================================== 39*0e209d39SAndroid Build Coastguard Workerfilegroup { 40*0e209d39SAndroid Build Coastguard Worker name: "android_icu4j_public_api_files", 41*0e209d39SAndroid Build Coastguard Worker srcs: [ 42*0e209d39SAndroid Build Coastguard Worker ":android_icu4j_repackaged_src_files", 43*0e209d39SAndroid Build Coastguard Worker ], 44*0e209d39SAndroid Build Coastguard Worker path: "src/main/java", 45*0e209d39SAndroid Build Coastguard Worker} 46*0e209d39SAndroid Build Coastguard Worker 47*0e209d39SAndroid Build Coastguard Workerfilegroup { 48*0e209d39SAndroid Build Coastguard Worker name: "android_icu4j_repackaged_src_files", 49*0e209d39SAndroid Build Coastguard Worker srcs: ["src/main/java/android/icu/**/*.java"], 50*0e209d39SAndroid Build Coastguard Worker path: "src/main/java", 51*0e209d39SAndroid Build Coastguard Worker} 52*0e209d39SAndroid Build Coastguard Worker 53*0e209d39SAndroid Build Coastguard Worker// The files contains Android-specific codes to expose intra-core APIs 54*0e209d39SAndroid Build Coastguard Worker// from ICU4J/ICU4C to libcore or core platform APIs to the framework. 55*0e209d39SAndroid Build Coastguard Worker// The package is com.android.icu.* and should not expose any public APIs. 56*0e209d39SAndroid Build Coastguard Workerfilegroup { 57*0e209d39SAndroid Build Coastguard Worker name: "libcore_icu_bridge_src_files", 58*0e209d39SAndroid Build Coastguard Worker srcs: ["libcore_bridge/src/java/**/*.java"], 59*0e209d39SAndroid Build Coastguard Worker path: "libcore_bridge/src/java", 60*0e209d39SAndroid Build Coastguard Worker} 61*0e209d39SAndroid Build Coastguard Worker 62*0e209d39SAndroid Build Coastguard Workerjava_defaults { 63*0e209d39SAndroid Build Coastguard Worker name: "libcore_icu_bridge_defaults", 64*0e209d39SAndroid Build Coastguard Worker srcs: [ 65*0e209d39SAndroid Build Coastguard Worker "libcore_bridge/src/java/**/*.java", 66*0e209d39SAndroid Build Coastguard Worker ":app-compat-annotations-source", 67*0e209d39SAndroid Build Coastguard Worker ], 68*0e209d39SAndroid Build Coastguard Worker jarjar_rules: "jarjar-rules.txt", 69*0e209d39SAndroid Build Coastguard Worker plugins: [ 70*0e209d39SAndroid Build Coastguard Worker "compat-changeid-annotation-processor", 71*0e209d39SAndroid Build Coastguard Worker ], 72*0e209d39SAndroid Build Coastguard Worker} 73*0e209d39SAndroid Build Coastguard Worker 74*0e209d39SAndroid Build Coastguard Worker// A host library containing time zone related classes. Used for 75*0e209d39SAndroid Build Coastguard Worker// host-side tools and tests that have to deal with Android 76*0e209d39SAndroid Build Coastguard Worker// time zone data. 77*0e209d39SAndroid Build Coastguard Workerjava_library_host { 78*0e209d39SAndroid Build Coastguard Worker name: "timezone-host", 79*0e209d39SAndroid Build Coastguard Worker visibility: [ 80*0e209d39SAndroid Build Coastguard Worker "//packages/modules/RuntimeI18n/apex", 81*0e209d39SAndroid Build Coastguard Worker "//system/timezone/input_tools/version", 82*0e209d39SAndroid Build Coastguard Worker ], 83*0e209d39SAndroid Build Coastguard Worker srcs: [ 84*0e209d39SAndroid Build Coastguard Worker "libcore_bridge/src/java/com/android/i18n/timezone/TzDataSetVersion.java", 85*0e209d39SAndroid Build Coastguard Worker ], 86*0e209d39SAndroid Build Coastguard Worker libs: [ 87*0e209d39SAndroid Build Coastguard Worker "art.module.api.annotations", 88*0e209d39SAndroid Build Coastguard Worker ], 89*0e209d39SAndroid Build Coastguard Worker} 90*0e209d39SAndroid Build Coastguard Worker 91*0e209d39SAndroid Build Coastguard Worker// core-repackaged-icu4j contains only the repackaged ICU4J that does not 92*0e209d39SAndroid Build Coastguard Worker// use any internal or android specific code. If it ever did then it could depend on 93*0e209d39SAndroid Build Coastguard Worker// art-module-intra-core-api-stubs-system-modules (a superset) instead. 94*0e209d39SAndroid Build Coastguard Worker// It is important that core-icu4j is restricted to only use stable APIs from the ART module 95*0e209d39SAndroid Build Coastguard Worker// since it is in a different APEX module that can be updated independently. 96*0e209d39SAndroid Build Coastguard Workerjava_library_static { 97*0e209d39SAndroid Build Coastguard Worker name: "core-repackaged-icu4j", 98*0e209d39SAndroid Build Coastguard Worker installable: false, 99*0e209d39SAndroid Build Coastguard Worker srcs: [":android_icu4j_repackaged_src_files"], 100*0e209d39SAndroid Build Coastguard Worker libs: [ 101*0e209d39SAndroid Build Coastguard Worker "unsupportedappusage", 102*0e209d39SAndroid Build Coastguard Worker // Need framework-api-annotations-lib for @FlaggedApi. 103*0e209d39SAndroid Build Coastguard Worker // Put framework-api-annotations into libs to avoid exposing the definition of framework's 104*0e209d39SAndroid Build Coastguard Worker // annotations from ICU (wrong place) instead of framework (correct place). 105*0e209d39SAndroid Build Coastguard Worker "framework-annotations-lib", 106*0e209d39SAndroid Build Coastguard Worker // We only need the aconfig library for @FlaggedApi. We can move it to static_libs 107*0e209d39SAndroid Build Coastguard Worker // if we need it for flagging features in the future. 108*0e209d39SAndroid Build Coastguard Worker "icu_aconfig_flags_lib", 109*0e209d39SAndroid Build Coastguard Worker ], 110*0e209d39SAndroid Build Coastguard Worker // The resource files are generated in the downstream branch master-icu-dev. 111*0e209d39SAndroid Build Coastguard Worker java_resource_dirs: ["resources"], 112*0e209d39SAndroid Build Coastguard Worker 113*0e209d39SAndroid Build Coastguard Worker sdk_version: "none", 114*0e209d39SAndroid Build Coastguard Worker system_modules: "art-module-public-api-stubs-system-modules", 115*0e209d39SAndroid Build Coastguard Worker 116*0e209d39SAndroid Build Coastguard Worker dxflags: ["--core-library"], 117*0e209d39SAndroid Build Coastguard Worker apex_available: [ 118*0e209d39SAndroid Build Coastguard Worker "com.android.i18n", 119*0e209d39SAndroid Build Coastguard Worker ], 120*0e209d39SAndroid Build Coastguard Worker errorprone: { 121*0e209d39SAndroid Build Coastguard Worker javacflags: [ 122*0e209d39SAndroid Build Coastguard Worker "-Xep:MissingOverride:OFF", // Ignore missing @Override. 123*0e209d39SAndroid Build Coastguard Worker "-Xep:ConstantOverflow:WARN", // Known constant overflow in SplittableRandom 124*0e209d39SAndroid Build Coastguard Worker "-Xep:BoxedPrimitiveEquality:WARN", 125*0e209d39SAndroid Build Coastguard Worker "-Xep:ComparableType:WARN", 126*0e209d39SAndroid Build Coastguard Worker "-Xep:EmptyTopLevelDeclaration:WARN", 127*0e209d39SAndroid Build Coastguard Worker ], 128*0e209d39SAndroid Build Coastguard Worker }, 129*0e209d39SAndroid Build Coastguard Worker lint: { 130*0e209d39SAndroid Build Coastguard Worker warning_checks: ["SuspiciousIndentation"], 131*0e209d39SAndroid Build Coastguard Worker baseline_filename: "lint-baseline.xml", 132*0e209d39SAndroid Build Coastguard Worker }, 133*0e209d39SAndroid Build Coastguard Worker} 134*0e209d39SAndroid Build Coastguard Worker 135*0e209d39SAndroid Build Coastguard Worker// A separated core library that contains ICU4J because ICU4J will be in a different APEX module, 136*0e209d39SAndroid Build Coastguard Worker// not in ART module. 137*0e209d39SAndroid Build Coastguard Workerjava_library { 138*0e209d39SAndroid Build Coastguard Worker name: "core-icu4j", 139*0e209d39SAndroid Build Coastguard Worker defaults: ["libcore_icu_bridge_defaults"], 140*0e209d39SAndroid Build Coastguard Worker visibility: [ 141*0e209d39SAndroid Build Coastguard Worker "//art/tools/fuzzer", 142*0e209d39SAndroid Build Coastguard Worker "//packages/modules/RuntimeI18n/apex", 143*0e209d39SAndroid Build Coastguard Worker ], 144*0e209d39SAndroid Build Coastguard Worker apex_available: [ 145*0e209d39SAndroid Build Coastguard Worker "com.android.i18n", 146*0e209d39SAndroid Build Coastguard Worker ], 147*0e209d39SAndroid Build Coastguard Worker permitted_packages: [ 148*0e209d39SAndroid Build Coastguard Worker "android.icu", 149*0e209d39SAndroid Build Coastguard Worker "com.android.icu", 150*0e209d39SAndroid Build Coastguard Worker "com.android.i18n.system", 151*0e209d39SAndroid Build Coastguard Worker "com.android.i18n.timezone", 152*0e209d39SAndroid Build Coastguard Worker "com.android.i18n.util", 153*0e209d39SAndroid Build Coastguard Worker ], 154*0e209d39SAndroid Build Coastguard Worker installable: true, 155*0e209d39SAndroid Build Coastguard Worker hostdex: false, 156*0e209d39SAndroid Build Coastguard Worker 157*0e209d39SAndroid Build Coastguard Worker static_libs: ["core-repackaged-icu4j"], 158*0e209d39SAndroid Build Coastguard Worker 159*0e209d39SAndroid Build Coastguard Worker // It is important that core-icu4j is restricted to only use stable APIs from the ART module 160*0e209d39SAndroid Build Coastguard Worker // since it is in a different APEX module that can be updated independently. 161*0e209d39SAndroid Build Coastguard Worker sdk_version: "none", 162*0e209d39SAndroid Build Coastguard Worker system_modules: "art-module-intra-core-api-stubs-system-modules", 163*0e209d39SAndroid Build Coastguard Worker 164*0e209d39SAndroid Build Coastguard Worker dxflags: ["--core-library"], 165*0e209d39SAndroid Build Coastguard Worker} 166*0e209d39SAndroid Build Coastguard Worker 167*0e209d39SAndroid Build Coastguard Worker// Java library for use on host, e.g. by ravenwood, robolectric. 168*0e209d39SAndroid Build Coastguard Workerjava_library { 169*0e209d39SAndroid Build Coastguard Worker name: "core-icu4j-for-host", 170*0e209d39SAndroid Build Coastguard Worker visibility: [ 171*0e209d39SAndroid Build Coastguard Worker "//art/build", 172*0e209d39SAndroid Build Coastguard Worker "//external/robolectric", 173*0e209d39SAndroid Build Coastguard Worker "//external/robolectric-shadows", 174*0e209d39SAndroid Build Coastguard Worker "//frameworks/layoutlib", 175*0e209d39SAndroid Build Coastguard Worker "//frameworks/base/ravenwood:__subpackages__", 176*0e209d39SAndroid Build Coastguard Worker "//packages/modules/RuntimeI18n/apex", 177*0e209d39SAndroid Build Coastguard Worker ], 178*0e209d39SAndroid Build Coastguard Worker static_libs: [ 179*0e209d39SAndroid Build Coastguard Worker "core-icu4j", 180*0e209d39SAndroid Build Coastguard Worker ], 181*0e209d39SAndroid Build Coastguard Worker sdk_version: "none", 182*0e209d39SAndroid Build Coastguard Worker system_modules: "none", 183*0e209d39SAndroid Build Coastguard Worker} 184*0e209d39SAndroid Build Coastguard Worker 185*0e209d39SAndroid Build Coastguard Workerplatform_compat_config { 186*0e209d39SAndroid Build Coastguard Worker name: "icu4j-platform-compat-config", 187*0e209d39SAndroid Build Coastguard Worker src: ":core-icu4j", 188*0e209d39SAndroid Build Coastguard Worker visibility: [ 189*0e209d39SAndroid Build Coastguard Worker "//frameworks/base", 190*0e209d39SAndroid Build Coastguard Worker ], 191*0e209d39SAndroid Build Coastguard Worker} 192*0e209d39SAndroid Build Coastguard Worker 193*0e209d39SAndroid Build Coastguard Workerjava_sdk_library { 194*0e209d39SAndroid Build Coastguard Worker name: "i18n.module.public.api", 195*0e209d39SAndroid Build Coastguard Worker visibility: [ 196*0e209d39SAndroid Build Coastguard Worker "//build/soong/java/core-libraries", 197*0e209d39SAndroid Build Coastguard Worker "//frameworks/base", 198*0e209d39SAndroid Build Coastguard Worker "//frameworks/base/api", 199*0e209d39SAndroid Build Coastguard Worker "//packages/modules/RuntimeI18n/apex", 200*0e209d39SAndroid Build Coastguard Worker // Visibility for prebuilt i18n-module-sdk from the prebuilt of 201*0e209d39SAndroid Build Coastguard Worker // this module. 202*0e209d39SAndroid Build Coastguard Worker // TODO(b/155921753): Restrict this when prebuilts are in their proper 203*0e209d39SAndroid Build Coastguard Worker // locations. 204*0e209d39SAndroid Build Coastguard Worker "//prebuilts:__subpackages__", 205*0e209d39SAndroid Build Coastguard Worker ], 206*0e209d39SAndroid Build Coastguard Worker // Added to make sure that no private classes leak out in stubs. 207*0e209d39SAndroid Build Coastguard Worker defaults: ["libcore_icu_bridge_defaults"], 208*0e209d39SAndroid Build Coastguard Worker srcs: [ 209*0e209d39SAndroid Build Coastguard Worker // Added to make sure that no private classes leak out in stubs. 210*0e209d39SAndroid Build Coastguard Worker ":android_icu4j_repackaged_src_files", 211*0e209d39SAndroid Build Coastguard Worker ":android_icu4j_public_api_files", 212*0e209d39SAndroid Build Coastguard Worker ], 213*0e209d39SAndroid Build Coastguard Worker libs: [ 214*0e209d39SAndroid Build Coastguard Worker "icu_aconfig_flags_lib", 215*0e209d39SAndroid Build Coastguard Worker ], 216*0e209d39SAndroid Build Coastguard Worker droiddoc_options: [ 217*0e209d39SAndroid Build Coastguard Worker "--force-convert-to-warning-nullability-annotations +*:-android.*:+android.icu.*:-dalvik.* ", 218*0e209d39SAndroid Build Coastguard Worker ], 219*0e209d39SAndroid Build Coastguard Worker errorprone: { 220*0e209d39SAndroid Build Coastguard Worker javacflags: [ 221*0e209d39SAndroid Build Coastguard Worker "-Xep:MissingOverride:OFF", 222*0e209d39SAndroid Build Coastguard Worker ], 223*0e209d39SAndroid Build Coastguard Worker }, 224*0e209d39SAndroid Build Coastguard Worker lint: { 225*0e209d39SAndroid Build Coastguard Worker warning_checks: ["SuspiciousIndentation"], 226*0e209d39SAndroid Build Coastguard Worker }, 227*0e209d39SAndroid Build Coastguard Worker 228*0e209d39SAndroid Build Coastguard Worker public: { 229*0e209d39SAndroid Build Coastguard Worker enabled: true, 230*0e209d39SAndroid Build Coastguard Worker }, 231*0e209d39SAndroid Build Coastguard Worker system: { 232*0e209d39SAndroid Build Coastguard Worker enabled: true, 233*0e209d39SAndroid Build Coastguard Worker }, 234*0e209d39SAndroid Build Coastguard Worker module_lib: { 235*0e209d39SAndroid Build Coastguard Worker enabled: true, 236*0e209d39SAndroid Build Coastguard Worker }, 237*0e209d39SAndroid Build Coastguard Worker 238*0e209d39SAndroid Build Coastguard Worker api_dir: "api/public", 239*0e209d39SAndroid Build Coastguard Worker api_only: true, 240*0e209d39SAndroid Build Coastguard Worker 241*0e209d39SAndroid Build Coastguard Worker // Emit nullability annotations from the source to the stub files. 242*0e209d39SAndroid Build Coastguard Worker annotations_enabled: true, 243*0e209d39SAndroid Build Coastguard Worker 244*0e209d39SAndroid Build Coastguard Worker sdk_version: "none", 245*0e209d39SAndroid Build Coastguard Worker system_modules: "art-module-public-api-stubs-system-modules", 246*0e209d39SAndroid Build Coastguard Worker 247*0e209d39SAndroid Build Coastguard Worker // The base name for the artifacts that are automatically published to the 248*0e209d39SAndroid Build Coastguard Worker // dist and which end up in one of the sub-directories of prebuilts/sdk. 249*0e209d39SAndroid Build Coastguard Worker // As long as this matches the name of the artifacts in prebuilts/sdk then 250*0e209d39SAndroid Build Coastguard Worker // the API will be checked for compatibility against the latest released 251*0e209d39SAndroid Build Coastguard Worker // version of the API. 252*0e209d39SAndroid Build Coastguard Worker dist_stem: "runtime-i18n", 253*0e209d39SAndroid Build Coastguard Worker dist_group: "android", 254*0e209d39SAndroid Build Coastguard Worker aconfig_declarations: [ 255*0e209d39SAndroid Build Coastguard Worker "icu_aconfig_flags", 256*0e209d39SAndroid Build Coastguard Worker ], 257*0e209d39SAndroid Build Coastguard Worker} 258*0e209d39SAndroid Build Coastguard Worker 259*0e209d39SAndroid Build Coastguard Worker// Generates stub source files for the intra-core API of the I18N module. 260*0e209d39SAndroid Build Coastguard Worker// i.e. every class/member that is either in the public API or annotated with 261*0e209d39SAndroid Build Coastguard Worker// @IntraCoreApi. 262*0e209d39SAndroid Build Coastguard Worker// 263*0e209d39SAndroid Build Coastguard Worker// The API specification .txt files managed by this only contain the additional 264*0e209d39SAndroid Build Coastguard Worker// classes/members that are in the intra-core API but which are not the public 265*0e209d39SAndroid Build Coastguard Worker// API. 266*0e209d39SAndroid Build Coastguard Workerjava_sdk_library { 267*0e209d39SAndroid Build Coastguard Worker name: "i18n.module.intra.core.api", 268*0e209d39SAndroid Build Coastguard Worker defaults: ["libcore_icu_bridge_defaults"], 269*0e209d39SAndroid Build Coastguard Worker srcs: [ 270*0e209d39SAndroid Build Coastguard Worker ":android_icu4j_repackaged_src_files", 271*0e209d39SAndroid Build Coastguard Worker ], 272*0e209d39SAndroid Build Coastguard Worker visibility: [ 273*0e209d39SAndroid Build Coastguard Worker "//libcore:__subpackages__", 274*0e209d39SAndroid Build Coastguard Worker "//packages/modules/RuntimeI18n/apex", 275*0e209d39SAndroid Build Coastguard Worker // Visibility for prebuilt i18n-module-sdk from the prebuilt of 276*0e209d39SAndroid Build Coastguard Worker // this module. 277*0e209d39SAndroid Build Coastguard Worker // TODO(b/155921753): Restrict this when prebuilts are in their proper 278*0e209d39SAndroid Build Coastguard Worker // locations. 279*0e209d39SAndroid Build Coastguard Worker "//prebuilts:__subpackages__", 280*0e209d39SAndroid Build Coastguard Worker ], 281*0e209d39SAndroid Build Coastguard Worker api_dir: "api/intra", 282*0e209d39SAndroid Build Coastguard Worker api_only: true, 283*0e209d39SAndroid Build Coastguard Worker sdk_version: "none", 284*0e209d39SAndroid Build Coastguard Worker system_modules: "art-module-intra-core-api-stubs-system-modules", 285*0e209d39SAndroid Build Coastguard Worker 286*0e209d39SAndroid Build Coastguard Worker droiddoc_options: [ 287*0e209d39SAndroid Build Coastguard Worker "--hide-annotation libcore.api.Hide ", 288*0e209d39SAndroid Build Coastguard Worker "--show-single-annotation libcore.api.IntraCoreApi ", 289*0e209d39SAndroid Build Coastguard Worker ], 290*0e209d39SAndroid Build Coastguard Worker 291*0e209d39SAndroid Build Coastguard Worker // Don't copy any output files to the dist. 292*0e209d39SAndroid Build Coastguard Worker no_dist: true, 293*0e209d39SAndroid Build Coastguard Worker 294*0e209d39SAndroid Build Coastguard Worker lint: { 295*0e209d39SAndroid Build Coastguard Worker warning_checks: ["SuspiciousIndentation"], 296*0e209d39SAndroid Build Coastguard Worker }, 297*0e209d39SAndroid Build Coastguard Worker 298*0e209d39SAndroid Build Coastguard Worker // This module's output stubs contain apis defined in "i18n.module.public.api.stubs", 299*0e209d39SAndroid Build Coastguard Worker // but adding "i18n.module.public.api" as a dependency of this module leads to circular 300*0e209d39SAndroid Build Coastguard Worker // dependency and requires further bootstrapping. Thus, disable stubs generation from the 301*0e209d39SAndroid Build Coastguard Worker // api signature files and generate stubs from the source Java files instead. 302*0e209d39SAndroid Build Coastguard Worker build_from_text_stub: false, 303*0e209d39SAndroid Build Coastguard Worker} 304*0e209d39SAndroid Build Coastguard Worker 305*0e209d39SAndroid Build Coastguard Worker// Referenced implicitly from i18n.module.intra.core.api. 306*0e209d39SAndroid Build Coastguard Workerfilegroup { 307*0e209d39SAndroid Build Coastguard Worker name: "i18n.module.intra.core.api.api.combined.public.latest", 308*0e209d39SAndroid Build Coastguard Worker srcs: [ 309*0e209d39SAndroid Build Coastguard Worker "api/intra/last-api.txt", 310*0e209d39SAndroid Build Coastguard Worker ], 311*0e209d39SAndroid Build Coastguard Worker} 312*0e209d39SAndroid Build Coastguard Worker 313*0e209d39SAndroid Build Coastguard Worker// Referenced implicitly from i18n.module.intra.core.api. 314*0e209d39SAndroid Build Coastguard Workerfilegroup { 315*0e209d39SAndroid Build Coastguard Worker name: "i18n.module.intra.core.api-removed.api.combined.public.latest", 316*0e209d39SAndroid Build Coastguard Worker srcs: [ 317*0e209d39SAndroid Build Coastguard Worker "api/intra/last-removed.txt", 318*0e209d39SAndroid Build Coastguard Worker ], 319*0e209d39SAndroid Build Coastguard Worker} 320*0e209d39SAndroid Build Coastguard Worker 321*0e209d39SAndroid Build Coastguard Worker// Referenced implicitly from i18n.module.intra.core.api. 322*0e209d39SAndroid Build Coastguard Workerfilegroup { 323*0e209d39SAndroid Build Coastguard Worker name: "i18n.module.intra.core.api-incompatibilities.api.public.latest", 324*0e209d39SAndroid Build Coastguard Worker srcs: [ 325*0e209d39SAndroid Build Coastguard Worker "api/intra/last-incompatibilities.txt", 326*0e209d39SAndroid Build Coastguard Worker ], 327*0e209d39SAndroid Build Coastguard Worker} 328*0e209d39SAndroid Build Coastguard Worker 329*0e209d39SAndroid Build Coastguard Worker// Referenced implicitly from legacy.i18n.module.platform.api. 330*0e209d39SAndroid Build Coastguard Workerfilegroup { 331*0e209d39SAndroid Build Coastguard Worker name: "legacy.i18n.module.platform.api.api.combined.public.latest", 332*0e209d39SAndroid Build Coastguard Worker srcs: [ 333*0e209d39SAndroid Build Coastguard Worker "api/legacy_platform/last-api.txt", 334*0e209d39SAndroid Build Coastguard Worker ], 335*0e209d39SAndroid Build Coastguard Worker} 336*0e209d39SAndroid Build Coastguard Worker 337*0e209d39SAndroid Build Coastguard Worker// Referenced implicitly from legacy.i18n.module.platform.api. 338*0e209d39SAndroid Build Coastguard Workerfilegroup { 339*0e209d39SAndroid Build Coastguard Worker name: "legacy.i18n.module.platform.api-removed.api.combined.public.latest", 340*0e209d39SAndroid Build Coastguard Worker srcs: [ 341*0e209d39SAndroid Build Coastguard Worker "api/legacy_platform/last-removed.txt", 342*0e209d39SAndroid Build Coastguard Worker ], 343*0e209d39SAndroid Build Coastguard Worker} 344*0e209d39SAndroid Build Coastguard Worker 345*0e209d39SAndroid Build Coastguard Worker// Referenced implicitly from legacy.i18n.module.platform.api. 346*0e209d39SAndroid Build Coastguard Workerfilegroup { 347*0e209d39SAndroid Build Coastguard Worker name: "legacy.i18n.module.platform.api-incompatibilities.api.public.latest", 348*0e209d39SAndroid Build Coastguard Worker srcs: [ 349*0e209d39SAndroid Build Coastguard Worker "api/legacy_platform/last-incompatibilities.txt", 350*0e209d39SAndroid Build Coastguard Worker ], 351*0e209d39SAndroid Build Coastguard Worker} 352*0e209d39SAndroid Build Coastguard Worker 353*0e209d39SAndroid Build Coastguard Worker// Referenced implicitly from stable.i18n.module.platform.api. 354*0e209d39SAndroid Build Coastguard Workerfilegroup { 355*0e209d39SAndroid Build Coastguard Worker name: "stable.i18n.module.platform.api.api.combined.public.latest", 356*0e209d39SAndroid Build Coastguard Worker srcs: [ 357*0e209d39SAndroid Build Coastguard Worker "api/stable_platform/last-api.txt", 358*0e209d39SAndroid Build Coastguard Worker ], 359*0e209d39SAndroid Build Coastguard Worker} 360*0e209d39SAndroid Build Coastguard Worker 361*0e209d39SAndroid Build Coastguard Worker// Referenced implicitly from stable.i18n.module.platform.api. 362*0e209d39SAndroid Build Coastguard Workerfilegroup { 363*0e209d39SAndroid Build Coastguard Worker name: "stable.i18n.module.platform.api-removed.api.combined.public.latest", 364*0e209d39SAndroid Build Coastguard Worker srcs: [ 365*0e209d39SAndroid Build Coastguard Worker "api/stable_platform/last-removed.txt", 366*0e209d39SAndroid Build Coastguard Worker ], 367*0e209d39SAndroid Build Coastguard Worker} 368*0e209d39SAndroid Build Coastguard Worker 369*0e209d39SAndroid Build Coastguard Worker// Referenced implicitly from stable.i18n.module.platform.api. 370*0e209d39SAndroid Build Coastguard Workerfilegroup { 371*0e209d39SAndroid Build Coastguard Worker name: "stable.i18n.module.platform.api-incompatibilities.api.public.latest", 372*0e209d39SAndroid Build Coastguard Worker srcs: [ 373*0e209d39SAndroid Build Coastguard Worker "api/stable_platform/last-incompatibilities.txt", 374*0e209d39SAndroid Build Coastguard Worker ], 375*0e209d39SAndroid Build Coastguard Worker} 376*0e209d39SAndroid Build Coastguard Worker 377*0e209d39SAndroid Build Coastguard Worker// Used by ravenwood for processing 378*0e209d39SAndroid Build Coastguard Workerfilegroup { 379*0e209d39SAndroid Build Coastguard Worker name: "icu-ravenwood-policies", 380*0e209d39SAndroid Build Coastguard Worker visibility: ["//frameworks/base/ravenwood"], 381*0e209d39SAndroid Build Coastguard Worker srcs: [ 382*0e209d39SAndroid Build Coastguard Worker "icu-ravenwood-policies.txt", 383*0e209d39SAndroid Build Coastguard Worker ], 384*0e209d39SAndroid Build Coastguard Worker} 385*0e209d39SAndroid Build Coastguard Worker 386*0e209d39SAndroid Build Coastguard Worker// Generates stub source files for the core platform API of the I18N module. 387*0e209d39SAndroid Build Coastguard Worker// i.e. every class/member that is either in the public API or annotated with 388*0e209d39SAndroid Build Coastguard Worker// @CorePlatformApi. 389*0e209d39SAndroid Build Coastguard Worker// 390*0e209d39SAndroid Build Coastguard Worker// The API specification .txt files managed by this only contain the additional 391*0e209d39SAndroid Build Coastguard Worker// classes/members that are in the intra-core API but which are not in the public 392*0e209d39SAndroid Build Coastguard Worker// API. 393*0e209d39SAndroid Build Coastguard Worker// 394*0e209d39SAndroid Build Coastguard Worker// For notes on the legacy and stable versions see mmodules/core_platform_api/Android.bp. 395*0e209d39SAndroid Build Coastguard Worker 396*0e209d39SAndroid Build Coastguard Workerjava_sdk_library { 397*0e209d39SAndroid Build Coastguard Worker name: "legacy.i18n.module.platform.api", 398*0e209d39SAndroid Build Coastguard Worker defaults: ["libcore_icu_bridge_defaults"], 399*0e209d39SAndroid Build Coastguard Worker srcs: [ 400*0e209d39SAndroid Build Coastguard Worker ":android_icu4j_repackaged_src_files", 401*0e209d39SAndroid Build Coastguard Worker ], 402*0e209d39SAndroid Build Coastguard Worker visibility: [ 403*0e209d39SAndroid Build Coastguard Worker "//build/soong/java/core-libraries", 404*0e209d39SAndroid Build Coastguard Worker "//packages/modules/RuntimeI18n/apex", 405*0e209d39SAndroid Build Coastguard Worker // Visibility for prebuilt i18n-module-sdk from the prebuilt of 406*0e209d39SAndroid Build Coastguard Worker // this module. 407*0e209d39SAndroid Build Coastguard Worker // TODO(b/155921753): Restrict this when prebuilts are in their proper 408*0e209d39SAndroid Build Coastguard Worker // locations. 409*0e209d39SAndroid Build Coastguard Worker "//prebuilts:__subpackages__", 410*0e209d39SAndroid Build Coastguard Worker ], 411*0e209d39SAndroid Build Coastguard Worker hostdex: true, 412*0e209d39SAndroid Build Coastguard Worker api_dir: "api/legacy_platform", 413*0e209d39SAndroid Build Coastguard Worker api_only: true, 414*0e209d39SAndroid Build Coastguard Worker sdk_version: "none", 415*0e209d39SAndroid Build Coastguard Worker system_modules: "art-module-lib-api-stubs-system-modules", 416*0e209d39SAndroid Build Coastguard Worker 417*0e209d39SAndroid Build Coastguard Worker droiddoc_options: [ 418*0e209d39SAndroid Build Coastguard Worker "--hide-annotation libcore.api.Hide ", 419*0e209d39SAndroid Build Coastguard Worker "--show-single-annotation libcore.api.CorePlatformApi ", 420*0e209d39SAndroid Build Coastguard Worker ], 421*0e209d39SAndroid Build Coastguard Worker 422*0e209d39SAndroid Build Coastguard Worker // Don't copy any output files to the dist. 423*0e209d39SAndroid Build Coastguard Worker no_dist: true, 424*0e209d39SAndroid Build Coastguard Worker 425*0e209d39SAndroid Build Coastguard Worker lint: { 426*0e209d39SAndroid Build Coastguard Worker warning_checks: ["SuspiciousIndentation"], 427*0e209d39SAndroid Build Coastguard Worker }, 428*0e209d39SAndroid Build Coastguard Worker} 429*0e209d39SAndroid Build Coastguard Worker 430*0e209d39SAndroid Build Coastguard Workerjava_sdk_library { 431*0e209d39SAndroid Build Coastguard Worker name: "stable.i18n.module.platform.api", 432*0e209d39SAndroid Build Coastguard Worker defaults: ["libcore_icu_bridge_defaults"], 433*0e209d39SAndroid Build Coastguard Worker srcs: [ 434*0e209d39SAndroid Build Coastguard Worker ":android_icu4j_repackaged_src_files", 435*0e209d39SAndroid Build Coastguard Worker ], 436*0e209d39SAndroid Build Coastguard Worker visibility: [ 437*0e209d39SAndroid Build Coastguard Worker "//build/soong/java/core-libraries", 438*0e209d39SAndroid Build Coastguard Worker "//packages/modules/RuntimeI18n/apex", 439*0e209d39SAndroid Build Coastguard Worker // Visibility for prebuilt i18n-module-sdk from the prebuilt of 440*0e209d39SAndroid Build Coastguard Worker // this module. 441*0e209d39SAndroid Build Coastguard Worker // TODO(b/155921753): Restrict this when prebuilts are in their proper 442*0e209d39SAndroid Build Coastguard Worker // locations. 443*0e209d39SAndroid Build Coastguard Worker "//prebuilts:__subpackages__", 444*0e209d39SAndroid Build Coastguard Worker ], 445*0e209d39SAndroid Build Coastguard Worker hostdex: true, 446*0e209d39SAndroid Build Coastguard Worker api_dir: "api/stable_platform", 447*0e209d39SAndroid Build Coastguard Worker api_only: true, 448*0e209d39SAndroid Build Coastguard Worker sdk_version: "none", 449*0e209d39SAndroid Build Coastguard Worker system_modules: "art-module-lib-api-stubs-system-modules", 450*0e209d39SAndroid Build Coastguard Worker 451*0e209d39SAndroid Build Coastguard Worker droiddoc_options: [ 452*0e209d39SAndroid Build Coastguard Worker "--hide-annotation libcore.api.Hide ", 453*0e209d39SAndroid Build Coastguard Worker "--show-single-annotation libcore.api.CorePlatformApi\\(status=libcore.api.CorePlatformApi.Status.STABLE\\)", 454*0e209d39SAndroid Build Coastguard Worker ], 455*0e209d39SAndroid Build Coastguard Worker 456*0e209d39SAndroid Build Coastguard Worker // Don't copy any output files to the dist. 457*0e209d39SAndroid Build Coastguard Worker no_dist: true, 458*0e209d39SAndroid Build Coastguard Worker 459*0e209d39SAndroid Build Coastguard Worker lint: { 460*0e209d39SAndroid Build Coastguard Worker warning_checks: ["SuspiciousIndentation"], 461*0e209d39SAndroid Build Coastguard Worker }, 462*0e209d39SAndroid Build Coastguard Worker} 463*0e209d39SAndroid Build Coastguard Worker 464*0e209d39SAndroid Build Coastguard Worker//========================================================== 465*0e209d39SAndroid Build Coastguard Worker// build repackaged ICU tests 466*0e209d39SAndroid Build Coastguard Worker// 467*0e209d39SAndroid Build Coastguard Worker// Target builds against core-libart and core-oj so that it can access all the 468*0e209d39SAndroid Build Coastguard Worker// repackaged android.icu classes and methods and not just the ones available 469*0e209d39SAndroid Build Coastguard Worker// through the Android API. 470*0e209d39SAndroid Build Coastguard Worker//========================================================== 471*0e209d39SAndroid Build Coastguard Workerjava_defaults { 472*0e209d39SAndroid Build Coastguard Worker name: "android-icu4j-tests-default", 473*0e209d39SAndroid Build Coastguard Worker visibility: [ 474*0e209d39SAndroid Build Coastguard Worker "//cts/tests/tests/icu", 475*0e209d39SAndroid Build Coastguard Worker ], 476*0e209d39SAndroid Build Coastguard Worker java_resource_dirs: [ 477*0e209d39SAndroid Build Coastguard Worker "src/main/tests", 478*0e209d39SAndroid Build Coastguard Worker "testing/src", 479*0e209d39SAndroid Build Coastguard Worker ], 480*0e209d39SAndroid Build Coastguard Worker libs: [ 481*0e209d39SAndroid Build Coastguard Worker "core-icu4j", 482*0e209d39SAndroid Build Coastguard Worker ], 483*0e209d39SAndroid Build Coastguard Worker static_libs: [ 484*0e209d39SAndroid Build Coastguard Worker "gson", 485*0e209d39SAndroid Build Coastguard Worker "junit", 486*0e209d39SAndroid Build Coastguard Worker "junit-params", 487*0e209d39SAndroid Build Coastguard Worker "tzdata-testing", 488*0e209d39SAndroid Build Coastguard Worker ], 489*0e209d39SAndroid Build Coastguard Worker 490*0e209d39SAndroid Build Coastguard Worker patch_module: "java.base", 491*0e209d39SAndroid Build Coastguard Worker sdk_version: "none", 492*0e209d39SAndroid Build Coastguard Worker system_modules: "art-module-intra-core-api-stubs-system-modules", 493*0e209d39SAndroid Build Coastguard Worker 494*0e209d39SAndroid Build Coastguard Worker errorprone: { 495*0e209d39SAndroid Build Coastguard Worker javacflags: [ 496*0e209d39SAndroid Build Coastguard Worker "-Xep:EqualsNull:WARN", 497*0e209d39SAndroid Build Coastguard Worker "-Xep:ArrayToString:WARN", 498*0e209d39SAndroid Build Coastguard Worker "-Xep:SelfEquals:WARN", 499*0e209d39SAndroid Build Coastguard Worker "-Xep:SelfComparison:WARN", 500*0e209d39SAndroid Build Coastguard Worker "-Xep:ReturnValueIgnored:WARN", 501*0e209d39SAndroid Build Coastguard Worker "-Xep:IdentityBinaryExpression:WARN", 502*0e209d39SAndroid Build Coastguard Worker "-Xep:BoxedPrimitiveEquality:WARN", 503*0e209d39SAndroid Build Coastguard Worker "-Xep:ComparableType:WARN", 504*0e209d39SAndroid Build Coastguard Worker ], 505*0e209d39SAndroid Build Coastguard Worker }, 506*0e209d39SAndroid Build Coastguard Worker} 507*0e209d39SAndroid Build Coastguard Worker 508*0e209d39SAndroid Build Coastguard Workerjava_test { 509*0e209d39SAndroid Build Coastguard Worker name: "android-icu4j-tests", 510*0e209d39SAndroid Build Coastguard Worker defaults: ["android-icu4j-tests-default"], 511*0e209d39SAndroid Build Coastguard Worker visibility: [ 512*0e209d39SAndroid Build Coastguard Worker "//cts/tests/tests/icu", 513*0e209d39SAndroid Build Coastguard Worker ], 514*0e209d39SAndroid Build Coastguard Worker srcs: [ 515*0e209d39SAndroid Build Coastguard Worker "src/main/tests/**/*.java", 516*0e209d39SAndroid Build Coastguard Worker "testing/src/**/*.java", 517*0e209d39SAndroid Build Coastguard Worker ], 518*0e209d39SAndroid Build Coastguard Worker} 519*0e209d39SAndroid Build Coastguard Worker 520*0e209d39SAndroid Build Coastguard Worker// Equivalent to android-icu4j-tests, excluding the tests under testing/. 521*0e209d39SAndroid Build Coastguard Worker// We run this as ICU CTS on Ravenwood, where the testing/ tests won't pass due to lack of 522*0e209d39SAndroid Build Coastguard Worker// libcore. 523*0e209d39SAndroid Build Coastguard Workerjava_test { 524*0e209d39SAndroid Build Coastguard Worker name: "android-icu4j-tests-core-only", 525*0e209d39SAndroid Build Coastguard Worker defaults: ["android-icu4j-tests-default"], 526*0e209d39SAndroid Build Coastguard Worker visibility: [ 527*0e209d39SAndroid Build Coastguard Worker "//cts/tests/tests/icu", 528*0e209d39SAndroid Build Coastguard Worker ], 529*0e209d39SAndroid Build Coastguard Worker srcs: [ 530*0e209d39SAndroid Build Coastguard Worker "src/main/tests/**/*.java", 531*0e209d39SAndroid Build Coastguard Worker "testing/src/android/icu/testsharding/**/*.java", 532*0e209d39SAndroid Build Coastguard Worker ], 533*0e209d39SAndroid Build Coastguard Worker // TODO(b/340889954) Un-excluide the excluded tests. 534*0e209d39SAndroid Build Coastguard Worker exclude_srcs: [ 535*0e209d39SAndroid Build Coastguard Worker // This class has a "known-failure", which we can't exclude on Ravenwood without 536*0e209d39SAndroid Build Coastguard Worker // modifying this file, so let's just exclude the whole class for now. 537*0e209d39SAndroid Build Coastguard Worker "src/main/tests/android/icu/dev/test/format/NumberFormatRegressionTest.java", 538*0e209d39SAndroid Build Coastguard Worker 539*0e209d39SAndroid Build Coastguard Worker // This test takes too much time and hits the timeout. 540*0e209d39SAndroid Build Coastguard Worker "src/main/tests/android/icu/dev/test/rbbi/RBBIMonkeyTest.java", 541*0e209d39SAndroid Build Coastguard Worker ], 542*0e209d39SAndroid Build Coastguard Worker} 543