Add policy_templates target for GN.
[chromium-blink-merge.git] / third_party / libwebp / libwebp.gyp
blob9962d0a167b49b350317fdb8dc5a2b14ab00a354
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.
6   'targets': [
7     {
8       'target_name': 'libwebp_dec',
9       'type': 'static_library',
10       'dependencies' : [
11         'libwebp_dsp',
12         'libwebp_dsp_neon',
13         'libwebp_utils',
14       ],
15       'include_dirs': ['.'],
16       'sources': [
17         'dec/alpha.c',
18         'dec/buffer.c',
19         'dec/frame.c',
20         'dec/idec.c',
21         'dec/io.c',
22         'dec/quant.c',
23         'dec/tree.c',
24         'dec/vp8.c',
25         'dec/vp8l.c',
26         'dec/webp.c',
27       ],
28     },
29     {
30       'target_name': 'libwebp_demux',
31       'type': 'static_library',
32       'include_dirs': ['.'],
33       'sources': [
34         'demux/demux.c',
35       ],
36     },
37     {
38       'target_name': 'libwebp_dsp',
39       'type': 'static_library',
40       'include_dirs': ['.'],
41       'sources': [
42         'dsp/alpha_processing.c',
43         'dsp/alpha_processing_sse2.c',
44         'dsp/cpu.c',
45         'dsp/dec.c',
46         'dsp/dec_clip_tables.c',
47         'dsp/dec_mips32.c',
48         'dsp/dec_sse2.c',
49         'dsp/enc.c',
50         'dsp/enc_avx2.c',
51         'dsp/enc_mips32.c',
52         'dsp/enc_sse2.c',
53         'dsp/lossless.c',
54         'dsp/lossless_mips32.c',
55         'dsp/lossless_sse2.c',
56         'dsp/upsampling.c',
57         'dsp/upsampling_sse2.c',
58         'dsp/yuv.c',
59         'dsp/yuv_mips32.c',
60         'dsp/yuv_sse2.c',
61       ],
62       'conditions': [
63         ['OS == "android"', {
64           'includes': [ '../../build/android/cpufeatures.gypi' ],
65         }],
66         ['order_profiling != 0', {
67           'target_conditions' : [
68             ['_toolset=="target"', {
69               'cflags!': [ '-finstrument-functions' ],
70             }],
71           ],
72         }],
73       ],
74     },
75     {
76       'target_name': 'libwebp_dsp_neon',
77       'includes' : [
78         # Disable LTO due to Neon issues.
79         # crbug.com/408997
80         '../../build/android/disable_lto.gypi',
81       ],
82       'conditions': [
83         # iOS uses the same project to generate build project for both device
84         # and simulator and do not use "target_arch" variable. Other platform
85         # set it correctly.
86         ['OS == "ios" or (target_arch == "arm" and arm_version >= 7 and (arm_neon == 1 or arm_neon_optional == 1)) or (target_arch == "arm64")', {
87           'type': 'static_library',
88           'include_dirs': ['.'],
89           'sources': [
90             'dsp/dec_neon.c',
91             'dsp/enc_neon.c',
92             'dsp/lossless_neon.c',
93             'dsp/upsampling_neon.c',
94           ],
95           'conditions': [
96             ['target_arch == "arm" and arm_version >= 7 and (arm_neon == 1 or arm_neon_optional == 1)', {
97               # behavior similar to *.c.neon in an Android.mk
98               'cflags!': [ '-mfpu=vfpv3-d16' ],
99               'cflags': [ '-mfpu=neon' ],
100             }],
101             ['target_arch == "arm64"', {
102               # avoid an ICE with gcc-4.9: b/15574841
103               'cflags': [ '-frename-registers' ],
104             }],
105           ]
106         }, {
107           'type': 'none',
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   ],