You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

150 lines
4.0 KiB

//
// 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,
generate_hashtree: false,
}
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",
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",
],
},
}
// 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_header_libs: [
"libandroidicu_headers",
"libicuuc_headers",
],
native_shared_libs: [
"libandroidicu",
"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",
],
}