1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Use of this source code is governed by a BSD-style license that can be 3 # found in the LICENSE file. 4 5 { 6 'variables': { 7 'neon_sources': [ 8 'dsp/dec_neon.c', 9 'dsp/enc_neon.c', 10 'dsp/lossless_neon.c', 11 'dsp/upsampling_neon.c', 12 ] 13 }, 14 'targets': [ 15 { 16 'target_name': 'libwebp_dec', 17 'type': 'static_library', 18 'dependencies' : [ 19 'libwebp_dsp', 20 'libwebp_dsp_neon', 21 'libwebp_utils', 22 ], 23 'include_dirs': ['.'], 24 'sources': [ 25 'dec/alpha.c', 26 'dec/buffer.c', 27 'dec/frame.c', 28 'dec/idec.c', 29 'dec/io.c', 30 'dec/quant.c', 31 'dec/tree.c', 32 'dec/vp8.c', 33 'dec/vp8l.c', 34 'dec/webp.c', 35 ], 36 }, 37 { 38 'target_name': 'libwebp_demux', 39 'type': 'static_library', 40 'include_dirs': ['.'], 41 'sources': [ 42 'demux/demux.c', 43 ], 44 }, 45 { 46 'target_name': 'libwebp_dsp', 47 'type': 'static_library', 48 'include_dirs': ['.'], 49 'sources': [ 50 'dsp/alpha_processing.c', 51 'dsp/cpu.c', 52 'dsp/dec.c', 53 'dsp/dec_clip_tables.c', 54 'dsp/dec_mips32.c', 55 'dsp/dec_sse2.c', 56 'dsp/enc.c', 57 'dsp/enc_avx2.c', 58 'dsp/enc_mips32.c', 59 'dsp/enc_sse2.c', 60 'dsp/lossless.c', 61 'dsp/lossless_mips32.c', 62 'dsp/lossless_sse2.c', 63 'dsp/upsampling.c', 64 'dsp/upsampling_sse2.c', 65 'dsp/yuv.c', 66 'dsp/yuv_mips32.c', 67 'dsp/yuv_sse2.c', 68 ], 69 'conditions': [ 70 ['OS == "android"', { 71 'includes': [ '../../build/android/cpufeatures.gypi' ], 72 }], 73 ['order_profiling != 0', { 74 'target_conditions' : [ 75 ['_toolset=="target"', { 76 'cflags!': [ '-finstrument-functions' ], 77 }], 78 ], 79 }], 80 ], 81 }, 82 { 83 'target_name': 'libwebp_dsp_neon', 84 'conditions': [ 85 ['target_arch == "arm" and arm_version >= 7 and (arm_neon == 1 or arm_neon_optional == 1)', { 86 'type': 'static_library', 87 'include_dirs': ['.'], 88 'sources': [ 89 '<@(neon_sources)' 90 ], 91 # behavior similar to *.c.neon in an Android.mk 92 'cflags!': [ '-mfpu=vfpv3-d16' ], 93 'cflags': [ '-mfpu=neon' ], 94 },{ 95 'conditions': [ 96 ['target_arch == "arm64"', { 97 'type': 'static_library', 98 'include_dirs': ['.'], 99 'sources': [ 100 '<@(neon_sources)' 101 ], 102 # avoid an ICE with gcc-4.9: b/15574841 103 'cflags': [ '-frename-registers' ], 104 },{ # "target_arch != "arm|arm64" or arm_version < 7" 105 'type': 'none', 106 }], 107 ], 108 }], 109 ['order_profiling != 0', { 110 'target_conditions' : [ 111 ['_toolset=="target"', { 112 'cflags!': [ '-finstrument-functions' ], 113 }], 114 ], 115 }], 116 ], 117 }, 118 { 119 'target_name': 'libwebp_enc', 120 'type': 'static_library', 121 'include_dirs': ['.'], 122 'sources': [ 123 'enc/alpha.c', 124 'enc/analysis.c', 125 'enc/backward_references.c', 126 'enc/config.c', 127 'enc/cost.c', 128 'enc/filter.c', 129 'enc/frame.c', 130 'enc/histogram.c', 131 'enc/iterator.c', 132 'enc/picture.c', 133 'enc/picture_csp.c', 134 'enc/picture_psnr.c', 135 'enc/picture_rescale.c', 136 'enc/picture_tools.c', 137 'enc/quant.c', 138 'enc/syntax.c', 139 'enc/token.c', 140 'enc/tree.c', 141 'enc/vp8l.c', 142 'enc/webpenc.c', 143 ], 144 }, 145 { 146 'target_name': 'libwebp_utils', 147 'type': 'static_library', 148 'include_dirs': ['.'], 149 'sources': [ 150 'utils/bit_reader.c', 151 'utils/bit_writer.c', 152 'utils/color_cache.c', 153 'utils/filters.c', 154 'utils/huffman.c', 155 'utils/huffman_encode.c', 156 'utils/quant_levels.c', 157 'utils/quant_levels_dec.c', 158 'utils/random.c', 159 'utils/rescaler.c', 160 'utils/thread.c', 161 'utils/utils.c', 162 ], 163 }, 164 { 165 'target_name': 'libwebp', 166 'type': 'none', 167 'dependencies' : [ 168 'libwebp_dec', 169 'libwebp_demux', 170 'libwebp_dsp', 171 'libwebp_dsp_neon', 172 'libwebp_enc', 173 'libwebp_utils', 174 ], 175 'direct_dependent_settings': { 176 'include_dirs': ['.'], 177 }, 178 'conditions': [ 179 ['OS!="win"', {'product_name': 'webp'}], 180 ], 181 }, 182 ], 183 } 184