xref: /aosp_15_r20/external/icu/libicu/Android.bp (revision 0e209d3975ff4a8c132096b14b0e9364a753506e)
1*0e209d39SAndroid Build Coastguard Worker// Copyright (C) 2018 The Android Open Source Project
2*0e209d39SAndroid Build Coastguard Worker//
3*0e209d39SAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*0e209d39SAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*0e209d39SAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*0e209d39SAndroid Build Coastguard Worker//
7*0e209d39SAndroid Build Coastguard Worker//      http://www.apache.org/licenses/LICENSE-2.0
8*0e209d39SAndroid Build Coastguard Worker//
9*0e209d39SAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*0e209d39SAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*0e209d39SAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*0e209d39SAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*0e209d39SAndroid Build Coastguard Worker// limitations under the License.
14*0e209d39SAndroid Build Coastguard Worker
15*0e209d39SAndroid Build Coastguard Workerpackage {
16*0e209d39SAndroid Build Coastguard Worker    default_team: "trendy_team_java_core_libraries",
17*0e209d39SAndroid Build Coastguard Worker    // See: http://go/android-license-faq
18*0e209d39SAndroid Build Coastguard Worker    // A large-scale-change added 'default_applicable_licenses' to import
19*0e209d39SAndroid Build Coastguard Worker    // all of the 'license_kinds' from "external_icu_license"
20*0e209d39SAndroid Build Coastguard Worker    // to get the below license kinds:
21*0e209d39SAndroid Build Coastguard Worker    //   SPDX-license-identifier-Apache-2.0
22*0e209d39SAndroid Build Coastguard Worker    //   SPDX-license-identifier-BSD
23*0e209d39SAndroid Build Coastguard Worker    //   SPDX-license-identifier-Unicode-DFS
24*0e209d39SAndroid Build Coastguard Worker    default_applicable_licenses: ["external_icu_license"],
25*0e209d39SAndroid Build Coastguard Worker}
26*0e209d39SAndroid Build Coastguard Worker
27*0e209d39SAndroid Build Coastguard Workerndk_library {
28*0e209d39SAndroid Build Coastguard Worker    name: "libicu",
29*0e209d39SAndroid Build Coastguard Worker    symbol_file: "libicu.map.txt",
30*0e209d39SAndroid Build Coastguard Worker    first_version: "31",
31*0e209d39SAndroid Build Coastguard Worker    unversioned_until: "current",
32*0e209d39SAndroid Build Coastguard Worker}
33*0e209d39SAndroid Build Coastguard Worker
34*0e209d39SAndroid Build Coastguard Workerndk_headers {
35*0e209d39SAndroid Build Coastguard Worker    name: "libicu_ndk_headers",
36*0e209d39SAndroid Build Coastguard Worker    from: "ndk_headers",
37*0e209d39SAndroid Build Coastguard Worker    to: "",
38*0e209d39SAndroid Build Coastguard Worker    srcs: ["ndk_headers/**/*.h"],
39*0e209d39SAndroid Build Coastguard Worker    license: ":icu_license",
40*0e209d39SAndroid Build Coastguard Worker}
41*0e209d39SAndroid Build Coastguard Worker
42*0e209d39SAndroid Build Coastguard Workercc_library_shared {
43*0e209d39SAndroid Build Coastguard Worker    name: "libicu",
44*0e209d39SAndroid Build Coastguard Worker    defaults: ["icu4c_defaults"],
45*0e209d39SAndroid Build Coastguard Worker    host_supported: true,
46*0e209d39SAndroid Build Coastguard Worker    native_bridge_supported: true,
47*0e209d39SAndroid Build Coastguard Worker    export_include_dirs: ["ndk_headers"],
48*0e209d39SAndroid Build Coastguard Worker    // The whole implementation comes from the intermediate library libicu_static because
49*0e209d39SAndroid Build Coastguard Worker    // ndk_headers/ has symbol name collisions with the headers in libicuuc/libicui18n.
50*0e209d39SAndroid Build Coastguard Worker    whole_static_libs: ["libicu_static"],
51*0e209d39SAndroid Build Coastguard Worker    shared_libs: [
52*0e209d39SAndroid Build Coastguard Worker        "libicuuc",
53*0e209d39SAndroid Build Coastguard Worker        "libicui18n",
54*0e209d39SAndroid Build Coastguard Worker    ],
55*0e209d39SAndroid Build Coastguard Worker    apex_available: [
56*0e209d39SAndroid Build Coastguard Worker        "com.android.i18n",
57*0e209d39SAndroid Build Coastguard Worker    ],
58*0e209d39SAndroid Build Coastguard Worker    stubs: {
59*0e209d39SAndroid Build Coastguard Worker        symbol_file: "libicu.map.txt",
60*0e209d39SAndroid Build Coastguard Worker        versions: ["31"],
61*0e209d39SAndroid Build Coastguard Worker    },
62*0e209d39SAndroid Build Coastguard Worker    target: {
63*0e209d39SAndroid Build Coastguard Worker        android: {
64*0e209d39SAndroid Build Coastguard Worker            version_script: "libicu.map.txt",
65*0e209d39SAndroid Build Coastguard Worker        },
66*0e209d39SAndroid Build Coastguard Worker    },
67*0e209d39SAndroid Build Coastguard Worker}
68*0e209d39SAndroid Build Coastguard Worker
69*0e209d39SAndroid Build Coastguard Workercc_library_shared {
70*0e209d39SAndroid Build Coastguard Worker    name: "libicu_cts_stub",
71*0e209d39SAndroid Build Coastguard Worker    defaults: ["icu4c_defaults"],
72*0e209d39SAndroid Build Coastguard Worker    host_supported: false,
73*0e209d39SAndroid Build Coastguard Worker    native_bridge_supported: false,
74*0e209d39SAndroid Build Coastguard Worker    installable: false,
75*0e209d39SAndroid Build Coastguard Worker    stem: "libicu",
76*0e209d39SAndroid Build Coastguard Worker    export_include_dirs: ["cts_headers"],
77*0e209d39SAndroid Build Coastguard Worker    // The whole implementation comes from the intermediate library libicu_static because
78*0e209d39SAndroid Build Coastguard Worker    // ndk_headers/ has collision with the headers in libicuuc/libicui18n.
79*0e209d39SAndroid Build Coastguard Worker    whole_static_libs: ["libicu_static"],
80*0e209d39SAndroid Build Coastguard Worker    shared_libs: [
81*0e209d39SAndroid Build Coastguard Worker        "libicuuc_cts_stub",
82*0e209d39SAndroid Build Coastguard Worker        "libicui18n_cts_stub",
83*0e209d39SAndroid Build Coastguard Worker    ],
84*0e209d39SAndroid Build Coastguard Worker    target: {
85*0e209d39SAndroid Build Coastguard Worker        android: {
86*0e209d39SAndroid Build Coastguard Worker            version_script: "libicu.map.txt",
87*0e209d39SAndroid Build Coastguard Worker        },
88*0e209d39SAndroid Build Coastguard Worker    },
89*0e209d39SAndroid Build Coastguard Worker}
90