165 lines
4.8 KiB
Plaintext
165 lines
4.8 KiB
Plaintext
//
|
|
// Copyright (C) 2019 The Android Open Source Project
|
|
//
|
|
// Licensed under the Apache License, Version 2.0 (the "License");
|
|
// you may not use this file except in compliance with the License.
|
|
// You may obtain a copy of the License at
|
|
//
|
|
// http://www.apache.org/licenses/LICENSE-2.0
|
|
//
|
|
// Unless required by applicable law or agreed to in writing, software
|
|
// distributed under the License is distributed on an "AS IS" BASIS,
|
|
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
// See the License for the specific language governing permissions and
|
|
// limitations under the License.
|
|
|
|
// i18n APEX is intended as a home for ICU as of July 2019.
|
|
// Various parts and dependencies of ICU would be gradually moved into this APEX,
|
|
// and the below build rules should reflect the latest status.
|
|
// TODO(b/138434658): Move the apex declaration back to external/icu
|
|
// The apex is declared in libcore/ to workaround new dependency from external/icu
|
|
// to system/sepolicy in a downstream branch.
|
|
package {
|
|
default_applicable_licenses: ["Android-Apache-2.0"],
|
|
}
|
|
|
|
apex {
|
|
name: "com.android.i18n",
|
|
defaults: ["com.android.i18n-defaults"],
|
|
certificate: ":com.android.i18n.certificate",
|
|
}
|
|
|
|
apex_defaults {
|
|
name: "com.android.i18n-defaults",
|
|
compile_multilib: "both",
|
|
manifest: "manifest.json",
|
|
prebuilts: ["apex_icu.dat"],
|
|
key: "com.android.i18n.key",
|
|
native_shared_libs: [
|
|
"libandroidicu",
|
|
"libicu",
|
|
"libicui18n",
|
|
"libicuuc",
|
|
// libicu_jni is not in jni_libs, but native_shared_libs because it's required to bootstrap
|
|
// the Java method System.loadLibrary.
|
|
"libicu_jni",
|
|
],
|
|
bootclasspath_fragments: [
|
|
"i18n-bootclasspath-fragment",
|
|
],
|
|
updatable: false,
|
|
// Need hash tree so that CompOS can use dm-verity to verify the image in the Protected VM.
|
|
generate_hashtree: true,
|
|
}
|
|
|
|
apex_key {
|
|
name: "com.android.i18n.key",
|
|
public_key: "com.android.i18n.avbpubkey",
|
|
private_key: "com.android.i18n.pem",
|
|
}
|
|
|
|
android_app_certificate {
|
|
name: "com.android.i18n.certificate",
|
|
certificate: "com.android.i18n",
|
|
}
|
|
|
|
// The com.android.i18n's contribution to the bootclasspath.
|
|
bootclasspath_fragment {
|
|
name: "i18n-bootclasspath-fragment",
|
|
// b/191127295: keep i18n in platform's classpath config and boot image.
|
|
generate_classpaths_proto: false,
|
|
contents: [
|
|
"core-icu4j",
|
|
],
|
|
apex_available: [
|
|
"com.android.i18n",
|
|
],
|
|
// The bootclasspath_fragments that provide APIs on which this depends.
|
|
fragments: [
|
|
{
|
|
apex: "com.android.art",
|
|
module: "art-bootclasspath-fragment",
|
|
},
|
|
],
|
|
api: {
|
|
stub_libs: [
|
|
"i18n.module.public.api",
|
|
],
|
|
},
|
|
core_platform_api: {
|
|
stub_libs: [
|
|
"legacy.i18n.module.platform.api",
|
|
],
|
|
},
|
|
hidden_api: {
|
|
max_target_o_low_priority: [
|
|
"hiddenapi/hiddenapi-max-target-o-low-priority.txt",
|
|
],
|
|
|
|
// This module does not contain any split packages.
|
|
split_packages: [],
|
|
|
|
// The following packages and all their subpackages currently only
|
|
// contain classes from this bootclasspath_fragment. Listing a package
|
|
// here won't prevent other bootclasspath modules from adding classes in
|
|
// any of those packages but it will prevent them from adding those
|
|
// classes into an API surface, e.g. public, system, etc.. Doing so will
|
|
// result in a build failure due to inconsistent flags.
|
|
package_prefixes: [
|
|
"android.icu",
|
|
"com.android.i18n.system",
|
|
"com.android.i18n.timezone",
|
|
"com.android.i18n.util",
|
|
"com.android.icu",
|
|
],
|
|
},
|
|
}
|
|
|
|
// SDK exposed by the ICU module.
|
|
sdk {
|
|
name: "i18n-module-sdk",
|
|
host_supported: true,
|
|
target: {
|
|
android: {
|
|
bootclasspath_fragments: ["i18n-bootclasspath-fragment"],
|
|
java_sdk_libs: [
|
|
"i18n.module.intra.core.api",
|
|
"legacy.i18n.module.platform.api",
|
|
"stable.i18n.module.platform.api",
|
|
"i18n.module.public.api",
|
|
],
|
|
},
|
|
},
|
|
native_shared_libs: [
|
|
"libicu",
|
|
],
|
|
}
|
|
|
|
module_exports {
|
|
name: "i18n-module-host-exports",
|
|
host_supported: true,
|
|
device_supported: false,
|
|
java_libs: [
|
|
"timezone-host",
|
|
],
|
|
}
|
|
|
|
// Additional prebuilts for running ART tests on host and device.
|
|
module_exports {
|
|
name: "i18n-module-test-exports",
|
|
host_supported: true,
|
|
target: {
|
|
android: {
|
|
java_libs: [
|
|
// For use by robolectric and ART tests.
|
|
"core-icu4j-for-host",
|
|
],
|
|
},
|
|
},
|
|
native_shared_libs: [
|
|
"libicui18n",
|
|
"libicuuc",
|
|
"libicu_jni",
|
|
],
|
|
}
|