xref: /aosp_15_r20/external/brotli/Android.bp (revision f4ee7fba7774faf2a30f13154332c0a06550dbc4)
1*f4ee7fbaSAndroid Build Coastguard Worker// Copyright (C) 2017 The Android Open Source Project
2*f4ee7fbaSAndroid Build Coastguard Worker//
3*f4ee7fbaSAndroid Build Coastguard Worker// Licensed under the Apache License, Version 2.0 (the "License");
4*f4ee7fbaSAndroid Build Coastguard Worker// you may not use this file except in compliance with the License.
5*f4ee7fbaSAndroid Build Coastguard Worker// You may obtain a copy of the License at
6*f4ee7fbaSAndroid Build Coastguard Worker//
7*f4ee7fbaSAndroid Build Coastguard Worker//      http://www.apache.org/licenses/LICENSE-2.0
8*f4ee7fbaSAndroid Build Coastguard Worker//
9*f4ee7fbaSAndroid Build Coastguard Worker// Unless required by applicable law or agreed to in writing, software
10*f4ee7fbaSAndroid Build Coastguard Worker// distributed under the License is distributed on an "AS IS" BASIS,
11*f4ee7fbaSAndroid Build Coastguard Worker// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*f4ee7fbaSAndroid Build Coastguard Worker// See the License for the specific language governing permissions and
13*f4ee7fbaSAndroid Build Coastguard Worker// limitations under the License.
14*f4ee7fbaSAndroid Build Coastguard Worker//
15*f4ee7fbaSAndroid Build Coastguard Worker
16*f4ee7fbaSAndroid Build Coastguard Workerpackage {
17*f4ee7fbaSAndroid Build Coastguard Worker    default_applicable_licenses: ["external_brotli_license"],
18*f4ee7fbaSAndroid Build Coastguard Worker}
19*f4ee7fbaSAndroid Build Coastguard Worker
20*f4ee7fbaSAndroid Build Coastguard Worker// Added automatically by a large-scale-change that took the approach of
21*f4ee7fbaSAndroid Build Coastguard Worker// 'apply every license found to every target'. While this makes sure we respect
22*f4ee7fbaSAndroid Build Coastguard Worker// every license restriction, it may not be entirely correct.
23*f4ee7fbaSAndroid Build Coastguard Worker//
24*f4ee7fbaSAndroid Build Coastguard Worker// e.g. GPL in an MIT project might only apply to the contrib/ directory.
25*f4ee7fbaSAndroid Build Coastguard Worker//
26*f4ee7fbaSAndroid Build Coastguard Worker// Please consider splitting the single license below into multiple licenses,
27*f4ee7fbaSAndroid Build Coastguard Worker// taking care not to lose any license_kind information, and overriding the
28*f4ee7fbaSAndroid Build Coastguard Worker// default license using the 'licenses: [...]' property on targets as needed.
29*f4ee7fbaSAndroid Build Coastguard Worker//
30*f4ee7fbaSAndroid Build Coastguard Worker// For unused files, consider creating a 'fileGroup' with "//visibility:private"
31*f4ee7fbaSAndroid Build Coastguard Worker// to attach the license to, and including a comment whether the files may be
32*f4ee7fbaSAndroid Build Coastguard Worker// used in the current project.
33*f4ee7fbaSAndroid Build Coastguard Worker// See: http://go/android-license-faq
34*f4ee7fbaSAndroid Build Coastguard Workerlicense {
35*f4ee7fbaSAndroid Build Coastguard Worker    name: "external_brotli_license",
36*f4ee7fbaSAndroid Build Coastguard Worker    visibility: [":__subpackages__"],
37*f4ee7fbaSAndroid Build Coastguard Worker    license_kinds: [
38*f4ee7fbaSAndroid Build Coastguard Worker        "SPDX-license-identifier-BSD",
39*f4ee7fbaSAndroid Build Coastguard Worker        "SPDX-license-identifier-MIT",
40*f4ee7fbaSAndroid Build Coastguard Worker        "SPDX-license-identifier-Unlicense",
41*f4ee7fbaSAndroid Build Coastguard Worker        "legacy_permissive",
42*f4ee7fbaSAndroid Build Coastguard Worker        "legacy_unencumbered",
43*f4ee7fbaSAndroid Build Coastguard Worker    ],
44*f4ee7fbaSAndroid Build Coastguard Worker    license_text: [
45*f4ee7fbaSAndroid Build Coastguard Worker        "LICENSE",
46*f4ee7fbaSAndroid Build Coastguard Worker    ],
47*f4ee7fbaSAndroid Build Coastguard Worker}
48*f4ee7fbaSAndroid Build Coastguard Worker
49*f4ee7fbaSAndroid Build Coastguard Workercc_library_static {
50*f4ee7fbaSAndroid Build Coastguard Worker    name: "libbrotli",
51*f4ee7fbaSAndroid Build Coastguard Worker    host_supported: true,
52*f4ee7fbaSAndroid Build Coastguard Worker    vendor_available: true,
53*f4ee7fbaSAndroid Build Coastguard Worker    recovery_available: true,
54*f4ee7fbaSAndroid Build Coastguard Worker    ramdisk_available: true,
55*f4ee7fbaSAndroid Build Coastguard Worker    vendor_ramdisk_available: true,
56*f4ee7fbaSAndroid Build Coastguard Worker
57*f4ee7fbaSAndroid Build Coastguard Worker    min_sdk_version: "apex_inherit",
58*f4ee7fbaSAndroid Build Coastguard Worker    apex_available: [
59*f4ee7fbaSAndroid Build Coastguard Worker        "//apex_available:platform",
60*f4ee7fbaSAndroid Build Coastguard Worker        "com.android.adbd",
61*f4ee7fbaSAndroid Build Coastguard Worker    ],
62*f4ee7fbaSAndroid Build Coastguard Worker
63*f4ee7fbaSAndroid Build Coastguard Worker    visibility: [
64*f4ee7fbaSAndroid Build Coastguard Worker        "//bootable/recovery:__subpackages__",
65*f4ee7fbaSAndroid Build Coastguard Worker        "//bootable/deprecated-ota:__subpackages__",
66*f4ee7fbaSAndroid Build Coastguard Worker        "//external/bsdiff:__subpackages__",
67*f4ee7fbaSAndroid Build Coastguard Worker        "//external/puffin:__subpackages__",
68*f4ee7fbaSAndroid Build Coastguard Worker        "//packages/modules/adb:__subpackages__",
69*f4ee7fbaSAndroid Build Coastguard Worker        "//system/core/fs_mgr/libsnapshot:__subpackages__",
70*f4ee7fbaSAndroid Build Coastguard Worker        "//system/extras/partition_tools:__subpackages__",
71*f4ee7fbaSAndroid Build Coastguard Worker        "//system/update_engine:__subpackages__",
72*f4ee7fbaSAndroid Build Coastguard Worker    ],
73*f4ee7fbaSAndroid Build Coastguard Worker
74*f4ee7fbaSAndroid Build Coastguard Worker    cflags: [
75*f4ee7fbaSAndroid Build Coastguard Worker        "-Werror",
76*f4ee7fbaSAndroid Build Coastguard Worker        "-O2",
77*f4ee7fbaSAndroid Build Coastguard Worker    ],
78*f4ee7fbaSAndroid Build Coastguard Worker    export_include_dirs: ["c/include"],
79*f4ee7fbaSAndroid Build Coastguard Worker    srcs: [
80*f4ee7fbaSAndroid Build Coastguard Worker        "c/common/*.c",
81*f4ee7fbaSAndroid Build Coastguard Worker        "c/dec/*.c",
82*f4ee7fbaSAndroid Build Coastguard Worker        "c/enc/*.c",
83*f4ee7fbaSAndroid Build Coastguard Worker    ],
84*f4ee7fbaSAndroid Build Coastguard Worker    target: {
85*f4ee7fbaSAndroid Build Coastguard Worker        linux_bionic: {
86*f4ee7fbaSAndroid Build Coastguard Worker            enabled: true,
87*f4ee7fbaSAndroid Build Coastguard Worker        },
88*f4ee7fbaSAndroid Build Coastguard Worker        windows: {
89*f4ee7fbaSAndroid Build Coastguard Worker            enabled: true,
90*f4ee7fbaSAndroid Build Coastguard Worker        },
91*f4ee7fbaSAndroid Build Coastguard Worker    },
92*f4ee7fbaSAndroid Build Coastguard Worker    stl: "none",
93*f4ee7fbaSAndroid Build Coastguard Worker}
94*f4ee7fbaSAndroid Build Coastguard Worker
95*f4ee7fbaSAndroid Build Coastguard Workercc_binary {
96*f4ee7fbaSAndroid Build Coastguard Worker    name: "brotli",
97*f4ee7fbaSAndroid Build Coastguard Worker    host_supported: true,
98*f4ee7fbaSAndroid Build Coastguard Worker    cflags: ["-Werror"],
99*f4ee7fbaSAndroid Build Coastguard Worker    srcs: ["c/tools/brotli.c"],
100*f4ee7fbaSAndroid Build Coastguard Worker    target: {
101*f4ee7fbaSAndroid Build Coastguard Worker        linux_bionic: {
102*f4ee7fbaSAndroid Build Coastguard Worker            enabled: true,
103*f4ee7fbaSAndroid Build Coastguard Worker        },
104*f4ee7fbaSAndroid Build Coastguard Worker    },
105*f4ee7fbaSAndroid Build Coastguard Worker    static_libs: ["libbrotli"],
106*f4ee7fbaSAndroid Build Coastguard Worker    stl: "none",
107*f4ee7fbaSAndroid Build Coastguard Worker}
108*f4ee7fbaSAndroid Build Coastguard Worker
109*f4ee7fbaSAndroid Build Coastguard Workercc_library_shared {
110*f4ee7fbaSAndroid Build Coastguard Worker    name: "libbrotli_encoder_jni",
111*f4ee7fbaSAndroid Build Coastguard Worker    host_supported: true,
112*f4ee7fbaSAndroid Build Coastguard Worker    srcs: [
113*f4ee7fbaSAndroid Build Coastguard Worker        "java/org/brotli/wrapper/enc/encoder_jni.cc",
114*f4ee7fbaSAndroid Build Coastguard Worker    ],
115*f4ee7fbaSAndroid Build Coastguard Worker    static_libs: [
116*f4ee7fbaSAndroid Build Coastguard Worker        "libnativehelper_lazy",
117*f4ee7fbaSAndroid Build Coastguard Worker        "libbrotli",
118*f4ee7fbaSAndroid Build Coastguard Worker    ],
119*f4ee7fbaSAndroid Build Coastguard Worker    cflags: [
120*f4ee7fbaSAndroid Build Coastguard Worker        "-Wno-unused-parameter",
121*f4ee7fbaSAndroid Build Coastguard Worker    ],
122*f4ee7fbaSAndroid Build Coastguard Worker}
123*f4ee7fbaSAndroid Build Coastguard Worker
124*f4ee7fbaSAndroid Build Coastguard Worker//
125*f4ee7fbaSAndroid Build Coastguard Worker// Support for brotli in java code.
126*f4ee7fbaSAndroid Build Coastguard Worker//
127*f4ee7fbaSAndroid Build Coastguard Worker
128*f4ee7fbaSAndroid Build Coastguard Workerjava_library {
129*f4ee7fbaSAndroid Build Coastguard Worker    name: "brotli-java",
130*f4ee7fbaSAndroid Build Coastguard Worker    host_supported: true,
131*f4ee7fbaSAndroid Build Coastguard Worker    hostdex: true,
132*f4ee7fbaSAndroid Build Coastguard Worker    srcs: ["java/**/*.java"],
133*f4ee7fbaSAndroid Build Coastguard Worker    exclude_srcs: ["java/**/*Test.java"],
134*f4ee7fbaSAndroid Build Coastguard Worker    sdk_version: "current",
135*f4ee7fbaSAndroid Build Coastguard Worker    // TODO(b/237039251) use "apex_inherit" when Java modules support it
136*f4ee7fbaSAndroid Build Coastguard Worker    min_sdk_version: "29",
137*f4ee7fbaSAndroid Build Coastguard Worker    // b/267831518: Pin tradefed and dependencies to Java 11.
138*f4ee7fbaSAndroid Build Coastguard Worker    java_version: "11",
139*f4ee7fbaSAndroid Build Coastguard Worker    apex_available: [
140*f4ee7fbaSAndroid Build Coastguard Worker        "//apex_available:platform",
141*f4ee7fbaSAndroid Build Coastguard Worker        "com.android.virt",
142*f4ee7fbaSAndroid Build Coastguard Worker    ],
143*f4ee7fbaSAndroid Build Coastguard Worker}
144*f4ee7fbaSAndroid Build Coastguard Worker
145*f4ee7fbaSAndroid Build Coastguard Worker// TODO(b/171429704): Remove this genrule and use the fuzz_data.zip
146*f4ee7fbaSAndroid Build Coastguard Worker// directly in brotli-fuzzer when a corpus_zip option is available.
147*f4ee7fbaSAndroid Build Coastguard Workergenrule {
148*f4ee7fbaSAndroid Build Coastguard Worker    name: "brotli-fuzzer-corpus",
149*f4ee7fbaSAndroid Build Coastguard Worker    srcs: ["java/org/brotli/integration/fuzz_data.zip"],
150*f4ee7fbaSAndroid Build Coastguard Worker    cmd: "mkdir -p $(genDir)/c/fuzz && " +
151*f4ee7fbaSAndroid Build Coastguard Worker        "unzip -q $(in) -d $(genDir)/c/fuzz",
152*f4ee7fbaSAndroid Build Coastguard Worker    out: [
153*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/04bdd9f35a2881027adddb039026623cd2e86664",
154*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/04dc2c1dc1f4612d4dc4892f4444983f2064c252",
155*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/05a79f06cf3f67f726dae68d18a2290f6c9a50c9",
156*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/05b3606442abab241ede01c3b34d1d73afc580d1",
157*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/065977e9fc84bab81eada79880b4481fece00616",
158*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/08e61f98cc5e260e8d9b853bf9d5c1d9c7a9fc4d",
159*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/155b07e636d98a80a53e667caef9e11370cef995",
160*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/2ad192eab5c0f6e50f0c64777811ae9111bad918",
161*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/2b1cba1e32deab80f440d886d1be7ca43733e878",
162*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/2fe9bc36724f80651a75cde84233a4832afec947",
163*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/312287bfd6732b264b54f9d5eda69f79c73898da",
164*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/3254df93e6003641dfc55522f594335e2c871b8f",
165*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/35a8db906eb1834b8acefd0bb9236ab8dc2ebbfe",
166*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/3a8e0fefadd562f706a16ec84c67646ba7ddcf29",
167*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/3edbdb6fcdb1ff53428af36bc4982f4611303eae",
168*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/477f2aa9b6ca0ff2ef72365d227baabb4855646e",
169*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/49fab0752d21ca89e4da04bdbb86dc7abb6b77e9",
170*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/4b809bfcd95342116053b0c057c878f08c1178b9",
171*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/523dfcdc31b2cb3b0f4715faa2be89b3d0a1d373",
172*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/54fd1711209fb1c0781092374132c66e79e2241b",
173*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/5515e03743624befa68a626382b605829300448d",
174*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/5be2ace579d7b0d816c31db7e65dc3245f1e09a6",
175*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/6f672b1c3c8643ce5083f6efee790b29459cbb47",
176*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/6fb6157dc83d29ef5d4da645e4a078179f54f405",
177*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/70eaba097fdbde0c63159f194ec4cec0f201acd8",
178*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/725ce4c76aa864430d7f4cae9e4cc4fbdd889f5e",
179*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/73231c6592f195ffd41100b8706d1138ff6893b9",
180*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/754f38420c156404309fa05f1ed773be47336882",
181*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/7730f322fb995dd3495d6e69906ff1f5b3cd876f",
182*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/7b74620c59451546866d80c0629ec01221246f59",
183*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/7b9cde6a96a7446f6951cca66266284db28be916",
184*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/7cc01983b79447178179e59af8a56cf4f45b9f8f",
185*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/7d3783cb4414c6098f7ac49ebaa8d2122eb06a0e",
186*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/7ecfeb33839bb8cea5027eb9fc7e5689799e704c",
187*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/7f88ed32938bef52eeaf3d3defedbfd2df87f895",
188*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/90450c570b868c4db80473b978529f6ec6dde20d",
189*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/9590340f604e5c729dbf8b54e25715fd18adb318",
190*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/a3491e5bbd78932592cd02dbff09cd05ca36e2e9",
191*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/a848e83a76d026b01bdfc2c0a6ac841564a97347",
192*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/a8abd012eb59b862bf9bc1ea443d2f35a1a2e222",
193*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/abcaee2817f06af41383c41a7e0920f1cc5a14ec",
194*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/ac81161dd772b1c7a47aa5cefed1ec3d8ac442af",
195*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/aec354d02df9ddb8d4e9ebb0c2771f1325cc2b89",
196*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/c01afbfde5a6ff0e5b0873f9d1ab8742293a375e",
197*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/c18cc3b3c69a07404a2c3cc756ed2d18f3dd4348",
198*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/c46fa7f0b56a80fcf8b1a8a6cbc24e4139b59a6b",
199*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/c51ab436e7332470ea2fd3d68ddbc3d0c43cf7ea",
200*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/c95701b41f06e892874d3001b32c64510c33c178",
201*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/d2b552c1f35b645332e7f63dea404046fdc8577b",
202*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/d6b5b93e87be7082e917d4bcc4d3436f34978d4b",
203*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/d75a03333816807599eadcb043a298ffa8c83378",
204*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/da39a3ee5e6b4b0d3255bfef95601890afd80709",
205*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/dc37d2e46439be3aa4bf23102f0960adbf13aae1",
206*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/de7c798e9523bd7e8350f3a391248cc9700bc4b4",
207*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/e1346339b452f86470a562335958bb6729f66bb2",
208*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/e6d0943f26000ee2306f10b1c1d44ab23619b20a",
209*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/ed22dce9884f67e05bcc082ba9b11424cf6e0449",
210*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/f5c1dc2f4906adb429197a011692b71bc1db856a",
211*f4ee7fbaSAndroid Build Coastguard Worker        "c/fuzz/fb1d6415c35cf9d7807e05e14179537e2019e635",
212*f4ee7fbaSAndroid Build Coastguard Worker    ],
213*f4ee7fbaSAndroid Build Coastguard Worker}
214*f4ee7fbaSAndroid Build Coastguard Worker
215*f4ee7fbaSAndroid Build Coastguard Workercc_fuzz {
216*f4ee7fbaSAndroid Build Coastguard Worker    name: "brotli-fuzzer",
217*f4ee7fbaSAndroid Build Coastguard Worker    static_libs: ["libbrotli"],
218*f4ee7fbaSAndroid Build Coastguard Worker    srcs: ["c/fuzz/decode_fuzzer.c"],
219*f4ee7fbaSAndroid Build Coastguard Worker    corpus: [":brotli-fuzzer-corpus"],
220*f4ee7fbaSAndroid Build Coastguard Worker    fuzz_config: {
221*f4ee7fbaSAndroid Build Coastguard Worker        componentid: 128577,
222*f4ee7fbaSAndroid Build Coastguard Worker    },
223*f4ee7fbaSAndroid Build Coastguard Worker}
224