xref: /aosp_15_r20/external/icu/libicu/Android.bp (revision 0e209d3975ff4a8c132096b14b0e9364a753506e)
1// Copyright (C) 2018 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
15package {
16    default_team: "trendy_team_java_core_libraries",
17    // See: http://go/android-license-faq
18    // A large-scale-change added 'default_applicable_licenses' to import
19    // all of the 'license_kinds' from "external_icu_license"
20    // to get the below license kinds:
21    //   SPDX-license-identifier-Apache-2.0
22    //   SPDX-license-identifier-BSD
23    //   SPDX-license-identifier-Unicode-DFS
24    default_applicable_licenses: ["external_icu_license"],
25}
26
27ndk_library {
28    name: "libicu",
29    symbol_file: "libicu.map.txt",
30    first_version: "31",
31    unversioned_until: "current",
32}
33
34ndk_headers {
35    name: "libicu_ndk_headers",
36    from: "ndk_headers",
37    to: "",
38    srcs: ["ndk_headers/**/*.h"],
39    license: ":icu_license",
40}
41
42cc_library_shared {
43    name: "libicu",
44    defaults: ["icu4c_defaults"],
45    host_supported: true,
46    native_bridge_supported: true,
47    export_include_dirs: ["ndk_headers"],
48    // The whole implementation comes from the intermediate library libicu_static because
49    // ndk_headers/ has symbol name collisions with the headers in libicuuc/libicui18n.
50    whole_static_libs: ["libicu_static"],
51    shared_libs: [
52        "libicuuc",
53        "libicui18n",
54    ],
55    apex_available: [
56        "com.android.i18n",
57    ],
58    stubs: {
59        symbol_file: "libicu.map.txt",
60        versions: ["31"],
61    },
62    target: {
63        android: {
64            version_script: "libicu.map.txt",
65        },
66    },
67}
68
69cc_library_shared {
70    name: "libicu_cts_stub",
71    defaults: ["icu4c_defaults"],
72    host_supported: false,
73    native_bridge_supported: false,
74    installable: false,
75    stem: "libicu",
76    export_include_dirs: ["cts_headers"],
77    // The whole implementation comes from the intermediate library libicu_static because
78    // ndk_headers/ has collision with the headers in libicuuc/libicui18n.
79    whole_static_libs: ["libicu_static"],
80    shared_libs: [
81        "libicuuc_cts_stub",
82        "libicui18n_cts_stub",
83    ],
84    target: {
85        android: {
86            version_script: "libicu.map.txt",
87        },
88    },
89}
90