xref: /aosp_15_r20/external/webp/Android.bp (revision b2055c353e87c8814eb2b6b1b11112a1562253bd)
1*b2055c35SXin Li// Copyright 2010 The Android Open Source Project
2*b2055c35SXin Li//
3*b2055c35SXin Li// Licensed under the Apache License, Version 2.0 (the "License");
4*b2055c35SXin Li// you may not use this file except in compliance with the License.
5*b2055c35SXin Li// You may obtain a copy of the License at
6*b2055c35SXin Li//
7*b2055c35SXin Li//      http://www.apache.org/licenses/LICENSE-2.0
8*b2055c35SXin Li//
9*b2055c35SXin Li// Unless required by applicable law or agreed to in writing, software
10*b2055c35SXin Li// distributed under the License is distributed on an "AS IS" BASIS,
11*b2055c35SXin Li// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12*b2055c35SXin Li// See the License for the specific language governing permissions and
13*b2055c35SXin Li// limitations under the License.
14*b2055c35SXin Li
15*b2055c35SXin Libug_component_id = 48069
16*b2055c35SXin Li
17*b2055c35SXin Lifuzz_email_cc = ["[email protected]"]
18*b2055c35SXin Li
19*b2055c35SXin Li//##############################################
20*b2055c35SXin Li
21*b2055c35SXin Lipackage {
22*b2055c35SXin Li    default_applicable_licenses: ["external_webp_license"],
23*b2055c35SXin Li}
24*b2055c35SXin Li
25*b2055c35SXin Li// Added automatically by a large-scale-change
26*b2055c35SXin Li//
27*b2055c35SXin Li// large-scale-change included anything that looked like it might be a license
28*b2055c35SXin Li// text as a license_text. e.g. LICENSE, NOTICE, COPYING etc.
29*b2055c35SXin Li//
30*b2055c35SXin Li// Please consider removing redundant or irrelevant files from 'license_text:'.
31*b2055c35SXin Li// See: http://go/android-license-faq
32*b2055c35SXin Lilicense {
33*b2055c35SXin Li    name: "external_webp_license",
34*b2055c35SXin Li    visibility: [":__subpackages__"],
35*b2055c35SXin Li    license_kinds: [
36*b2055c35SXin Li        "SPDX-license-identifier-BSD",
37*b2055c35SXin Li    ],
38*b2055c35SXin Li    license_text: [
39*b2055c35SXin Li        "COPYING",
40*b2055c35SXin Li        "NOTICE",
41*b2055c35SXin Li        "PATENTS",
42*b2055c35SXin Li    ],
43*b2055c35SXin Li}
44*b2055c35SXin Li
45*b2055c35SXin Licc_library_static {
46*b2055c35SXin Li    name: "webp-headers",
47*b2055c35SXin Li    host_supported: true,
48*b2055c35SXin Li    export_include_dirs: ["src"],
49*b2055c35SXin Li    sdk_version: "9",
50*b2055c35SXin Li    target: {
51*b2055c35SXin Li        windows: {
52*b2055c35SXin Li            enabled: true,
53*b2055c35SXin Li        },
54*b2055c35SXin Li    },
55*b2055c35SXin Li}
56*b2055c35SXin Li
57*b2055c35SXin Li//##############################################
58*b2055c35SXin Li
59*b2055c35SXin Licc_library_static {
60*b2055c35SXin Li    name: "libwebp-encode",
61*b2055c35SXin Li    host_supported: true,
62*b2055c35SXin Li    srcs: [
63*b2055c35SXin Li        "sharpyuv/sharpyuv.c",
64*b2055c35SXin Li        "sharpyuv/sharpyuv_cpu.c",
65*b2055c35SXin Li        "sharpyuv/sharpyuv_csp.c",
66*b2055c35SXin Li        "sharpyuv/sharpyuv_dsp.c",
67*b2055c35SXin Li        "sharpyuv/sharpyuv_gamma.c",
68*b2055c35SXin Li        "sharpyuv/sharpyuv_neon.c",
69*b2055c35SXin Li        "sharpyuv/sharpyuv_sse2.c",
70*b2055c35SXin Li        "src/dsp/cost.c",
71*b2055c35SXin Li        "src/dsp/cost_mips32.c",
72*b2055c35SXin Li        "src/dsp/cost_mips_dsp_r2.c",
73*b2055c35SXin Li        "src/dsp/cost_neon.c",
74*b2055c35SXin Li        "src/dsp/cost_sse2.c",
75*b2055c35SXin Li        "src/dsp/cpu.c",
76*b2055c35SXin Li        "src/dsp/enc.c",
77*b2055c35SXin Li        "src/dsp/enc_mips32.c",
78*b2055c35SXin Li        "src/dsp/enc_mips_dsp_r2.c",
79*b2055c35SXin Li        "src/dsp/enc_msa.c",
80*b2055c35SXin Li        "src/dsp/enc_neon.c",
81*b2055c35SXin Li        "src/dsp/enc_sse2.c",
82*b2055c35SXin Li        "src/dsp/enc_sse41.c",
83*b2055c35SXin Li        "src/dsp/lossless_enc.c",
84*b2055c35SXin Li        "src/dsp/lossless_enc_mips32.c",
85*b2055c35SXin Li        "src/dsp/lossless_enc_mips_dsp_r2.c",
86*b2055c35SXin Li        "src/dsp/lossless_enc_msa.c",
87*b2055c35SXin Li        "src/dsp/lossless_enc_neon.c",
88*b2055c35SXin Li        "src/dsp/lossless_enc_sse2.c",
89*b2055c35SXin Li        "src/dsp/lossless_enc_sse41.c",
90*b2055c35SXin Li        "src/dsp/ssim.c",
91*b2055c35SXin Li        "src/dsp/ssim_sse2.c",
92*b2055c35SXin Li        "src/enc/alpha_enc.c",
93*b2055c35SXin Li        "src/enc/analysis_enc.c",
94*b2055c35SXin Li        "src/enc/backward_references_cost_enc.c",
95*b2055c35SXin Li        "src/enc/backward_references_enc.c",
96*b2055c35SXin Li        "src/enc/config_enc.c",
97*b2055c35SXin Li        "src/enc/cost_enc.c",
98*b2055c35SXin Li        "src/enc/filter_enc.c",
99*b2055c35SXin Li        "src/enc/frame_enc.c",
100*b2055c35SXin Li        "src/enc/histogram_enc.c",
101*b2055c35SXin Li        "src/enc/iterator_enc.c",
102*b2055c35SXin Li        "src/enc/near_lossless_enc.c",
103*b2055c35SXin Li        "src/enc/picture_csp_enc.c",
104*b2055c35SXin Li        "src/enc/picture_enc.c",
105*b2055c35SXin Li        "src/enc/picture_psnr_enc.c",
106*b2055c35SXin Li        "src/enc/picture_rescale_enc.c",
107*b2055c35SXin Li        "src/enc/picture_tools_enc.c",
108*b2055c35SXin Li        "src/enc/predictor_enc.c",
109*b2055c35SXin Li        "src/enc/quant_enc.c",
110*b2055c35SXin Li        "src/enc/syntax_enc.c",
111*b2055c35SXin Li        "src/enc/token_enc.c",
112*b2055c35SXin Li        "src/enc/tree_enc.c",
113*b2055c35SXin Li        "src/enc/vp8l_enc.c",
114*b2055c35SXin Li        "src/enc/webp_enc.c",
115*b2055c35SXin Li        "src/mux/anim_encode.c",
116*b2055c35SXin Li        "src/mux/muxedit.c",
117*b2055c35SXin Li        "src/mux/muxinternal.c",
118*b2055c35SXin Li        "src/mux/muxread.c",
119*b2055c35SXin Li        "src/utils/bit_writer_utils.c",
120*b2055c35SXin Li        "src/utils/huffman_encode_utils.c",
121*b2055c35SXin Li        "src/utils/quant_levels_utils.c",
122*b2055c35SXin Li    ],
123*b2055c35SXin Li
124*b2055c35SXin Li    arch: {
125*b2055c35SXin Li        arm: {
126*b2055c35SXin Li            instruction_set: "arm",
127*b2055c35SXin Li        },
128*b2055c35SXin Li    },
129*b2055c35SXin Li
130*b2055c35SXin Li    cflags: [
131*b2055c35SXin Li        "-DANDROID",
132*b2055c35SXin Li        "-DWEBP_SWAP_16BIT_CSP",
133*b2055c35SXin Li        "-DWEBP_USE_THREAD",
134*b2055c35SXin Li        "-O2",
135*b2055c35SXin Li        "-Wall",
136*b2055c35SXin Li        "-Werror",
137*b2055c35SXin Li    ],
138*b2055c35SXin Li
139*b2055c35SXin Li    local_include_dirs: ["."],
140*b2055c35SXin Li    static_libs: ["webp-headers"],
141*b2055c35SXin Li    export_static_lib_headers: ["webp-headers"],
142*b2055c35SXin Li
143*b2055c35SXin Li    sdk_version: "9",
144*b2055c35SXin Li
145*b2055c35SXin Li    target: {
146*b2055c35SXin Li        windows: {
147*b2055c35SXin Li            enabled: true,
148*b2055c35SXin Li        },
149*b2055c35SXin Li    },
150*b2055c35SXin Li}
151*b2055c35SXin Li
152*b2055c35SXin Li//##############################################
153*b2055c35SXin Li
154*b2055c35SXin Licc_library_static {
155*b2055c35SXin Li    name: "libwebp-decode",
156*b2055c35SXin Li    host_supported: true,
157*b2055c35SXin Li    srcs: [
158*b2055c35SXin Li        "src/dec/alpha_dec.c",
159*b2055c35SXin Li        "src/dec/buffer_dec.c",
160*b2055c35SXin Li        "src/dec/frame_dec.c",
161*b2055c35SXin Li        "src/dec/idec_dec.c",
162*b2055c35SXin Li        "src/dec/io_dec.c",
163*b2055c35SXin Li        "src/dec/quant_dec.c",
164*b2055c35SXin Li        "src/dec/tree_dec.c",
165*b2055c35SXin Li        "src/dec/vp8_dec.c",
166*b2055c35SXin Li        "src/dec/vp8l_dec.c",
167*b2055c35SXin Li        "src/dec/webp_dec.c",
168*b2055c35SXin Li        "src/demux/anim_decode.c",
169*b2055c35SXin Li        "src/demux/demux.c",
170*b2055c35SXin Li        "src/dsp/alpha_processing.c",
171*b2055c35SXin Li        "src/dsp/alpha_processing_mips_dsp_r2.c",
172*b2055c35SXin Li        "src/dsp/alpha_processing_neon.c",
173*b2055c35SXin Li        "src/dsp/alpha_processing_sse2.c",
174*b2055c35SXin Li        "src/dsp/alpha_processing_sse41.c",
175*b2055c35SXin Li        "src/dsp/cpu.c",
176*b2055c35SXin Li        "src/dsp/dec.c",
177*b2055c35SXin Li        "src/dsp/dec_clip_tables.c",
178*b2055c35SXin Li        "src/dsp/dec_mips32.c",
179*b2055c35SXin Li        "src/dsp/dec_mips_dsp_r2.c",
180*b2055c35SXin Li        "src/dsp/dec_msa.c",
181*b2055c35SXin Li        "src/dsp/dec_neon.c",
182*b2055c35SXin Li        "src/dsp/dec_sse2.c",
183*b2055c35SXin Li        "src/dsp/dec_sse41.c",
184*b2055c35SXin Li        "src/dsp/filters.c",
185*b2055c35SXin Li        "src/dsp/filters_mips_dsp_r2.c",
186*b2055c35SXin Li        "src/dsp/filters_msa.c",
187*b2055c35SXin Li        "src/dsp/filters_neon.c",
188*b2055c35SXin Li        "src/dsp/filters_sse2.c",
189*b2055c35SXin Li        "src/dsp/lossless.c",
190*b2055c35SXin Li        "src/dsp/lossless_mips_dsp_r2.c",
191*b2055c35SXin Li        "src/dsp/lossless_msa.c",
192*b2055c35SXin Li        "src/dsp/lossless_neon.c",
193*b2055c35SXin Li        "src/dsp/lossless_sse2.c",
194*b2055c35SXin Li        "src/dsp/lossless_sse41.c",
195*b2055c35SXin Li        "src/dsp/rescaler.c",
196*b2055c35SXin Li        "src/dsp/rescaler_mips32.c",
197*b2055c35SXin Li        "src/dsp/rescaler_mips_dsp_r2.c",
198*b2055c35SXin Li        "src/dsp/rescaler_msa.c",
199*b2055c35SXin Li        "src/dsp/rescaler_neon.c",
200*b2055c35SXin Li        "src/dsp/rescaler_sse2.c",
201*b2055c35SXin Li        "src/dsp/upsampling.c",
202*b2055c35SXin Li        "src/dsp/upsampling_mips_dsp_r2.c",
203*b2055c35SXin Li        "src/dsp/upsampling_msa.c",
204*b2055c35SXin Li        "src/dsp/upsampling_neon.c",
205*b2055c35SXin Li        "src/dsp/upsampling_sse2.c",
206*b2055c35SXin Li        "src/dsp/upsampling_sse41.c",
207*b2055c35SXin Li        "src/dsp/yuv.c",
208*b2055c35SXin Li        "src/dsp/yuv_mips32.c",
209*b2055c35SXin Li        "src/dsp/yuv_mips_dsp_r2.c",
210*b2055c35SXin Li        "src/dsp/yuv_neon.c",
211*b2055c35SXin Li        "src/dsp/yuv_sse2.c",
212*b2055c35SXin Li        "src/dsp/yuv_sse41.c",
213*b2055c35SXin Li        "src/utils/bit_reader_utils.c",
214*b2055c35SXin Li        "src/utils/color_cache_utils.c",
215*b2055c35SXin Li        "src/utils/filters_utils.c",
216*b2055c35SXin Li        "src/utils/huffman_utils.c",
217*b2055c35SXin Li        "src/utils/palette.c",
218*b2055c35SXin Li        "src/utils/quant_levels_dec_utils.c",
219*b2055c35SXin Li        "src/utils/random_utils.c",
220*b2055c35SXin Li        "src/utils/rescaler_utils.c",
221*b2055c35SXin Li        "src/utils/thread_utils.c",
222*b2055c35SXin Li        "src/utils/utils.c",
223*b2055c35SXin Li    ],
224*b2055c35SXin Li
225*b2055c35SXin Li    arch: {
226*b2055c35SXin Li        arm: {
227*b2055c35SXin Li            instruction_set: "arm",
228*b2055c35SXin Li        },
229*b2055c35SXin Li    },
230*b2055c35SXin Li
231*b2055c35SXin Li    cflags: [
232*b2055c35SXin Li        "-DANDROID",
233*b2055c35SXin Li        "-DWEBP_SWAP_16BIT_CSP",
234*b2055c35SXin Li        "-DWEBP_USE_THREAD",
235*b2055c35SXin Li        "-O2",
236*b2055c35SXin Li        "-Wall",
237*b2055c35SXin Li        "-Werror",
238*b2055c35SXin Li    ],
239*b2055c35SXin Li
240*b2055c35SXin Li    local_include_dirs: ["."],
241*b2055c35SXin Li    static_libs: ["webp-headers"],
242*b2055c35SXin Li    export_static_lib_headers: ["webp-headers"],
243*b2055c35SXin Li
244*b2055c35SXin Li    sdk_version: "9",
245*b2055c35SXin Li
246*b2055c35SXin Li    target: {
247*b2055c35SXin Li        windows: {
248*b2055c35SXin Li            enabled: true,
249*b2055c35SXin Li        },
250*b2055c35SXin Li    },
251*b2055c35SXin Li}
252*b2055c35SXin Li
253*b2055c35SXin Licc_defaults {
254*b2055c35SXin Li    name: "libwebp_fuzzer_defaults",
255*b2055c35SXin Li    host_supported: true,
256*b2055c35SXin Li    native_coverage: true,
257*b2055c35SXin Li
258*b2055c35SXin Li    local_include_dirs: [
259*b2055c35SXin Li        ".",
260*b2055c35SXin Li        "src",
261*b2055c35SXin Li    ],
262*b2055c35SXin Li
263*b2055c35SXin Li    fuzz_config: {
264*b2055c35SXin Li        cc: fuzz_email_cc,
265*b2055c35SXin Li        componentid: bug_component_id,
266*b2055c35SXin Li    },
267*b2055c35SXin Li
268*b2055c35SXin Li    corpus: ["fuzz_seed_corpus/*"],
269*b2055c35SXin Li}
270*b2055c35SXin Li
271*b2055c35SXin Licc_fuzz {
272*b2055c35SXin Li    name: "libwebp_advanced_api_fuzzer",
273*b2055c35SXin Li    defaults: ["libwebp_fuzzer_defaults"],
274*b2055c35SXin Li
275*b2055c35SXin Li    srcs: [
276*b2055c35SXin Li        "tests/fuzzer/advanced_api_fuzzer.c",
277*b2055c35SXin Li    ],
278*b2055c35SXin Li
279*b2055c35SXin Li    static_libs: [
280*b2055c35SXin Li        "libwebp-decode",
281*b2055c35SXin Li    ],
282*b2055c35SXin Li}
283*b2055c35SXin Li
284*b2055c35SXin Licc_fuzz {
285*b2055c35SXin Li    name: "libwebp_animation_api_fuzzer",
286*b2055c35SXin Li    defaults: ["libwebp_fuzzer_defaults"],
287*b2055c35SXin Li
288*b2055c35SXin Li    srcs: [
289*b2055c35SXin Li        "tests/fuzzer/animation_api_fuzzer.c",
290*b2055c35SXin Li    ],
291*b2055c35SXin Li
292*b2055c35SXin Li    static_libs: [
293*b2055c35SXin Li        "libwebp-decode",
294*b2055c35SXin Li    ],
295*b2055c35SXin Li}
296*b2055c35SXin Li
297*b2055c35SXin Licc_fuzz {
298*b2055c35SXin Li    name: "libwebp_animencoder_fuzzer",
299*b2055c35SXin Li    defaults: ["libwebp_fuzzer_defaults"],
300*b2055c35SXin Li
301*b2055c35SXin Li    srcs: [
302*b2055c35SXin Li        "tests/fuzzer/animencoder_fuzzer.cc",
303*b2055c35SXin Li    ],
304*b2055c35SXin Li
305*b2055c35SXin Li    static_libs: [
306*b2055c35SXin Li        "libwebp-decode",
307*b2055c35SXin Li        "libwebp-encode",
308*b2055c35SXin Li    ],
309*b2055c35SXin Li}
310*b2055c35SXin Li
311*b2055c35SXin Licc_fuzz {
312*b2055c35SXin Li    name: "libwebp_enc_dec_fuzzer",
313*b2055c35SXin Li    defaults: ["libwebp_fuzzer_defaults"],
314*b2055c35SXin Li
315*b2055c35SXin Li    srcs: [
316*b2055c35SXin Li        "tests/fuzzer/enc_dec_fuzzer.cc",
317*b2055c35SXin Li    ],
318*b2055c35SXin Li
319*b2055c35SXin Li    static_libs: [
320*b2055c35SXin Li        "libwebp-decode",
321*b2055c35SXin Li        "libwebp-encode",
322*b2055c35SXin Li    ],
323*b2055c35SXin Li}
324*b2055c35SXin Li
325*b2055c35SXin Licc_fuzz {
326*b2055c35SXin Li    name: "libwebp_mux_demux_api_fuzzer",
327*b2055c35SXin Li    defaults: ["libwebp_fuzzer_defaults"],
328*b2055c35SXin Li
329*b2055c35SXin Li    srcs: [
330*b2055c35SXin Li        "tests/fuzzer/mux_demux_api_fuzzer.c",
331*b2055c35SXin Li    ],
332*b2055c35SXin Li
333*b2055c35SXin Li    static_libs: [
334*b2055c35SXin Li        "libwebp-decode",
335*b2055c35SXin Li        "libwebp-encode",
336*b2055c35SXin Li    ],
337*b2055c35SXin Li}
338*b2055c35SXin Li
339*b2055c35SXin Licc_fuzz {
340*b2055c35SXin Li    name: "libwebp_simple_api_fuzzer",
341*b2055c35SXin Li    defaults: ["libwebp_fuzzer_defaults"],
342*b2055c35SXin Li
343*b2055c35SXin Li    srcs: [
344*b2055c35SXin Li        "tests/fuzzer/simple_api_fuzzer.c",
345*b2055c35SXin Li    ],
346*b2055c35SXin Li
347*b2055c35SXin Li    static_libs: [
348*b2055c35SXin Li        "libwebp-decode",
349*b2055c35SXin Li    ],
350*b2055c35SXin Li}
351