xref: /aosp_15_r20/external/icu/Android.bp (revision 0e209d3975ff4a8c132096b14b0e9364a753506e)
1// Copyright (C) 2020 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    default_applicable_licenses: ["external_icu_license"],
18}
19
20// Added automatically by a large-scale-change that took the approach of
21// 'apply every license found to every target'. While this makes sure we respect
22// every license restriction, it may not be entirely correct.
23//
24// e.g. GPL in an MIT project might only apply to the contrib/ directory.
25//
26// Please consider splitting the single license below into multiple licenses,
27// taking care not to lose any license_kind information, and overriding the
28// default license using the 'licenses: [...]' property on targets as needed.
29//
30// For unused files, consider creating a 'fileGroup' with "//visibility:private"
31// to attach the license to, and including a comment whether the files may be
32// used in the current project.
33// See: http://go/android-license-faq
34license {
35    name: "external_icu_license",
36    visibility: [":__subpackages__"],
37    license_kinds: [
38        "SPDX-license-identifier-Apache-2.0",
39        "SPDX-license-identifier-BSD",
40        "SPDX-license-identifier-EPL",
41        "SPDX-license-identifier-ICU",
42        "SPDX-license-identifier-ISC",
43        "SPDX-license-identifier-MIT",
44        "SPDX-license-identifier-Unicode-3.0",
45        "legacy_unencumbered",
46    ],
47    license_text: [
48        "LICENSE",
49    ],
50}
51
52filegroup {
53    name: "icu_license",
54    visibility: [
55        "//external/icu:__subpackages__",
56    ],
57    srcs: ["LICENSE"],
58}
59
60cc_defaults {
61    name: "icu4c_defaults",
62    cflags: [
63        "-Wall",
64        "-Werror",
65        // Make all warnings into errors, but ignore a set of warnings used in headers by default.
66        "-Wno-ambiguous-reversed-operator",
67        "-Wno-deprecated-declarations",
68        "-Wno-unused-parameter",
69        "-Wno-unused-const-variable",
70        "-Wno-unneeded-internal-declaration",
71        "-DUCONFIG_USE_ML_PHRASE_BREAKING=1",
72    ],
73    target: {
74        android: {
75            cflags: [
76                // Require this flag to compile against libicuuc and libicui18n
77                "-DANDROID_LINK_SHARED_ICU4C",
78            ],
79        },
80        // Windows build required by layoutlib
81        windows: {
82            enabled: true,
83        },
84    },
85}
86
87aconfig_declarations {
88    name: "icu_aconfig_flags",
89    package: "com.android.icu",
90    container: "system",
91    srcs: [
92        "icu.aconfig",
93    ],
94}
95
96java_aconfig_library {
97    name: "icu_aconfig_flags_lib",
98    aconfig_declarations: "icu_aconfig_flags",
99    host_supported: true,
100    // "fake_device_config" is needed for the host.
101    libs: [
102        "fake_device_config",
103        "aconfig-annotations-lib-sdk-none",
104        "aconfig_storage_stub_none",
105        "unsupportedappusage-sdk-none",
106    ],
107    apex_available: [
108        "//apex_available:platform",
109        "com.android.i18n",
110    ],
111    sdk_version: "none",
112    system_modules: "core-all-system-modules",
113}
114