1 # Copyright 2016 Google Inc. 2 # 3 # Use of this source code is governed by a BSD-style license that can be 4 # found in the LICENSE file. 5 6 declare_args() { 7 skia_use_system_libwebp = is_official_build 8 } 9 10 import("../third_party.gni") 11 12 if (skia_use_system_libwebp) { 13 system("libwebp") { 14 libs = [ 15 "webp", 16 "webpdemux", 17 ] 18 } 19 } else { 20 third_party("libwebp") { 21 public_include_dirs = [ "../externals/libwebp/src" ] 22 23 if (is_android) { 24 deps = [ 25 "//third_party/cpu-features", 26 ] 27 } 28 29 defines = [ 30 # WebP naturally decodes to RGB_565, and we work with BGR_565. 31 # This makes WebP decode to BGR_565 when we ask for RGB_565. 32 # (It also swaps the color order for 4444, but we don't care today.) 33 # TODO: swizzle ourself in SkWebpCodec instead of requiring this non-standard libwebp. 34 "WEBP_SWAP_16BIT_CSP", 35 ] 36 37 sources = [ 38 "../externals/libwebp/src/dec/alpha_dec.c", 39 "../externals/libwebp/src/dec/buffer_dec.c", 40 "../externals/libwebp/src/dec/frame_dec.c", 41 "../externals/libwebp/src/dec/idec_dec.c", 42 "../externals/libwebp/src/dec/io_dec.c", 43 "../externals/libwebp/src/dec/quant_dec.c", 44 "../externals/libwebp/src/dec/tree_dec.c", 45 "../externals/libwebp/src/dec/vp8_dec.c", 46 "../externals/libwebp/src/dec/vp8l_dec.c", 47 "../externals/libwebp/src/dec/webp_dec.c", 48 "../externals/libwebp/src/demux/demux.c", 49 "../externals/libwebp/src/dsp/alpha_processing.c", 50 "../externals/libwebp/src/dsp/alpha_processing_mips_dsp_r2.c", 51 "../externals/libwebp/src/dsp/alpha_processing_neon.c", 52 "../externals/libwebp/src/dsp/alpha_processing_sse2.c", 53 "../externals/libwebp/src/dsp/alpha_processing_sse41.c", 54 "../externals/libwebp/src/dsp/argb.c", 55 "../externals/libwebp/src/dsp/argb_mips_dsp_r2.c", 56 "../externals/libwebp/src/dsp/argb_sse2.c", 57 "../externals/libwebp/src/dsp/cost.c", 58 "../externals/libwebp/src/dsp/cost_mips32.c", 59 "../externals/libwebp/src/dsp/cost_mips_dsp_r2.c", 60 "../externals/libwebp/src/dsp/cost_sse2.c", 61 "../externals/libwebp/src/dsp/cpu.c", 62 "../externals/libwebp/src/dsp/dec.c", 63 "../externals/libwebp/src/dsp/dec_clip_tables.c", 64 "../externals/libwebp/src/dsp/dec_mips32.c", 65 "../externals/libwebp/src/dsp/dec_mips_dsp_r2.c", 66 "../externals/libwebp/src/dsp/dec_neon.c", 67 "../externals/libwebp/src/dsp/dec_sse2.c", 68 "../externals/libwebp/src/dsp/dec_sse41.c", 69 "../externals/libwebp/src/dsp/enc.c", 70 "../externals/libwebp/src/dsp/enc_avx2.c", 71 "../externals/libwebp/src/dsp/enc_mips32.c", 72 "../externals/libwebp/src/dsp/enc_mips_dsp_r2.c", 73 "../externals/libwebp/src/dsp/enc_msa.c", 74 "../externals/libwebp/src/dsp/enc_neon.c", 75 "../externals/libwebp/src/dsp/enc_sse2.c", 76 "../externals/libwebp/src/dsp/enc_sse41.c", 77 "../externals/libwebp/src/dsp/filters.c", 78 "../externals/libwebp/src/dsp/filters_mips_dsp_r2.c", 79 "../externals/libwebp/src/dsp/filters_msa.c", 80 "../externals/libwebp/src/dsp/filters_neon.c", 81 "../externals/libwebp/src/dsp/filters_sse2.c", 82 "../externals/libwebp/src/dsp/lossless.c", 83 "../externals/libwebp/src/dsp/lossless_enc.c", 84 "../externals/libwebp/src/dsp/lossless_enc_mips32.c", 85 "../externals/libwebp/src/dsp/lossless_enc_mips_dsp_r2.c", 86 "../externals/libwebp/src/dsp/lossless_enc_msa.c", 87 "../externals/libwebp/src/dsp/lossless_enc_neon.c", 88 "../externals/libwebp/src/dsp/lossless_enc_sse2.c", 89 "../externals/libwebp/src/dsp/lossless_enc_sse41.c", 90 "../externals/libwebp/src/dsp/lossless_mips_dsp_r2.c", 91 "../externals/libwebp/src/dsp/lossless_msa.c", 92 "../externals/libwebp/src/dsp/lossless_neon.c", 93 "../externals/libwebp/src/dsp/lossless_sse2.c", 94 "../externals/libwebp/src/dsp/rescaler.c", 95 "../externals/libwebp/src/dsp/rescaler_mips32.c", 96 "../externals/libwebp/src/dsp/rescaler_mips_dsp_r2.c", 97 "../externals/libwebp/src/dsp/rescaler_msa.c", 98 "../externals/libwebp/src/dsp/rescaler_neon.c", 99 "../externals/libwebp/src/dsp/rescaler_sse2.c", 100 "../externals/libwebp/src/dsp/upsampling.c", 101 "../externals/libwebp/src/dsp/upsampling_mips_dsp_r2.c", 102 "../externals/libwebp/src/dsp/upsampling_msa.c", 103 "../externals/libwebp/src/dsp/upsampling_neon.c", 104 "../externals/libwebp/src/dsp/upsampling_sse2.c", 105 "../externals/libwebp/src/dsp/yuv.c", 106 "../externals/libwebp/src/dsp/yuv_mips32.c", 107 "../externals/libwebp/src/dsp/yuv_mips_dsp_r2.c", 108 "../externals/libwebp/src/dsp/yuv_sse2.c", 109 "../externals/libwebp/src/enc/alpha_enc.c", 110 "../externals/libwebp/src/enc/analysis_enc.c", 111 "../externals/libwebp/src/enc/backward_references_enc.c", 112 "../externals/libwebp/src/enc/config_enc.c", 113 "../externals/libwebp/src/enc/cost_enc.c", 114 "../externals/libwebp/src/enc/filter_enc.c", 115 "../externals/libwebp/src/enc/frame_enc.c", 116 "../externals/libwebp/src/enc/histogram_enc.c", 117 "../externals/libwebp/src/enc/iterator_enc.c", 118 "../externals/libwebp/src/enc/near_lossless_enc.c", 119 "../externals/libwebp/src/enc/picture_csp_enc.c", 120 "../externals/libwebp/src/enc/picture_enc.c", 121 "../externals/libwebp/src/enc/picture_psnr_enc.c", 122 "../externals/libwebp/src/enc/picture_rescale_enc.c", 123 "../externals/libwebp/src/enc/picture_tools_enc.c", 124 "../externals/libwebp/src/enc/predictor_enc.c", 125 "../externals/libwebp/src/enc/quant_enc.c", 126 "../externals/libwebp/src/enc/syntax_enc.c", 127 "../externals/libwebp/src/enc/token_enc.c", 128 "../externals/libwebp/src/enc/tree_enc.c", 129 "../externals/libwebp/src/enc/vp8l_enc.c", 130 "../externals/libwebp/src/enc/webp_enc.c", 131 "../externals/libwebp/src/mux/anim_encode.c", 132 "../externals/libwebp/src/mux/muxedit.c", 133 "../externals/libwebp/src/mux/muxinternal.c", 134 "../externals/libwebp/src/mux/muxread.c", 135 "../externals/libwebp/src/utils/bit_reader_utils.c", 136 "../externals/libwebp/src/utils/bit_writer_utils.c", 137 "../externals/libwebp/src/utils/color_cache_utils.c", 138 "../externals/libwebp/src/utils/filters_utils.c", 139 "../externals/libwebp/src/utils/huffman_encode_utils.c", 140 "../externals/libwebp/src/utils/huffman_utils.c", 141 "../externals/libwebp/src/utils/quant_levels_dec_utils.c", 142 "../externals/libwebp/src/utils/quant_levels_utils.c", 143 "../externals/libwebp/src/utils/random_utils.c", 144 "../externals/libwebp/src/utils/rescaler_utils.c", 145 "../externals/libwebp/src/utils/thread_utils.c", 146 "../externals/libwebp/src/utils/utils.c", 147 ] 148 } 149 } 150