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