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