Update mojo sdk to rev 1dc8a9a5db73d3718d99917fadf31f5fb2ebad4f
[chromium-blink-merge.git] / third_party / opus / opus.gyp
bloba4744865e21a1d3f316bab42ff9f4701470d4fa5
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   'variables': {
7     'conditions': [
8       ['target_arch=="arm" or target_arch=="arm64"', {
9         'use_opus_fixed_point%': 1,
10       }, {
11         'use_opus_fixed_point%': 0,
12       }],
13       ['target_arch=="arm"', {
14         'use_opus_arm_optimization%': 1,
15       }, {
16         'use_opus_arm_optimization%': 0,
17       }],
18       ['target_arch=="arm" and (OS=="win" or OS=="android" or OS=="linux")', {
19         # Based on the conditions in celt/arm/armcpu.c:
20         # defined(_MSC_VER) || defined(__linux__).
21         'use_opus_rtcd%': 1,
22       }, {
23         'use_opus_rtcd%': 0,
24       }],
25     ],
26   },
27   'target_defaults': {
28     'target_conditions': [
29       ['_type=="executable"', {
30         # All of the executable targets depend on 'opus'. Unfortunately the
31         # 'dependencies' block cannot be inherited via 'target_defaults'.
32         'include_dirs': [
33           'src/celt',
34           'src/silk',
35         ],
36         'conditions': [
37           ['OS == "win"', {
38             'defines': [
39               'inline=__inline',
40             ],
41           }],
42           ['OS=="android"', {
43             'libraries': [
44               '-llog',
45             ],
46           }],
47           ['clang==1', {
48             'cflags': [ '-Wno-absolute-value' ],
49           }]
50         ],
51       }],
52     ],
53   },
54   'targets': [
55     {
56       'target_name': 'opus',
57       'type': 'static_library',
58       'defines': [
59         'OPUS_BUILD',
60         'OPUS_EXPORT=',
61       ],
62       'include_dirs': [
63         'src/celt',
64         'src/include',
65         'src/silk',
66       ],
67       'direct_dependent_settings': {
68         'include_dirs': [
69           'src/include',
70         ],
71       },
72       'includes': [
73         'opus_srcs.gypi',
74         # Disable LTO due to ELF section name out of range
75         # crbug.com/422251
76         '../../build/android/disable_lto.gypi',
77       ],
78       'sources': ['<@(opus_common_sources)'],
79       'conditions': [
80         ['OS!="win"', {
81           'defines': [
82             'HAVE_LRINT',
83             'HAVE_LRINTF',
84             'VAR_ARRAYS',
85           ],
86         }, {
87           'defines': [
88             'USE_ALLOCA',
89             'inline=__inline',
90           ],
91           'msvs_disabled_warnings': [
92             4305,  # Disable truncation warning in celt/pitch.c .
93             4334,  # Disable 32-bit shift warning in src/opus_encoder.c .
94           ],
95         }],
96         ['os_posix==1', {
97           'link_settings': {
98             'libraries': [ '-lm' ],
99           },
100         }],
101         ['os_posix==1 and OS!="android"', {
102           # Suppress a warning given by opus_decoder.c that tells us
103           # optimizations are turned off.
104           'cflags': [
105             '-Wno-#pragma-messages',
106           ],
107           'xcode_settings': {
108             'WARNING_CFLAGS': [
109               '-Wno-#pragma-messages',
110             ],
111           },
112         }],
113         ['os_posix==1 and (target_arch=="arm" or target_arch=="arm64")', {
114           'cflags!': ['-Os'],
115           'cflags': ['-O3'],
116         }],
117         ['use_opus_fixed_point==0', {
118           'include_dirs': [
119             'src/silk/float',
120           ],
121           'sources': ['<@(opus_float_sources)'],
122         }, {
123           'defines': [
124             'FIXED_POINT',
125           ],
126           'include_dirs': [
127             'src/silk/fixed',
128           ],
129           'sources': ['<@(opus_fixed_sources)'],
130           'conditions': [
131             ['use_opus_arm_optimization==1', {
132               'defines': [
133                 'OPUS_ARM_ASM',
134                 'OPUS_ARM_INLINE_ASM',
135                 'OPUS_ARM_INLINE_EDSP',
136               ],
137               'includes': [
138                 'opus_srcs_arm.gypi',
139               ],
140               'conditions': [
141                 ['use_opus_rtcd==1', {
142                   'defines': [
143                     'OPUS_ARM_MAY_HAVE_EDSP',
144                     'OPUS_ARM_MAY_HAVE_MEDIA',
145                     'OPUS_ARM_MAY_HAVE_NEON',
146                     'OPUS_HAVE_RTCD',
147                   ],
148                   'includes': [
149                     'opus_srcs_rtcd.gypi',
150                   ],
151                 }],
152               ],
153             }],
154           ],
155         }],
156       ],
157     },  # target opus
158     {
159       'target_name': 'opus_compare',
160       'type': 'executable',
161       'dependencies': [
162         'opus'
163       ],
164       'sources': [
165         'src/src/opus_compare.c',
166       ],
167     },  # target opus_compare
168     {
169       'target_name': 'opus_demo',
170       'type': 'executable',
171       'dependencies': [
172         'opus'
173       ],
174       'sources': [
175         'src/src/opus_demo.c',
176       ],
177     },  # target opus_demo
178     {
179       'target_name': 'test_opus_api',
180       'type': 'executable',
181       'dependencies': [
182         'opus'
183       ],
184       'sources': [
185         'src/tests/test_opus_api.c',
186       ],
187     },  # target test_opus_api
188     {
189       'target_name': 'test_opus_encode',
190       'type': 'executable',
191       'dependencies': [
192         'opus'
193       ],
194       'sources': [
195         'src/tests/test_opus_encode.c',
196       ],
197     },  # target test_opus_encode
198     {
199       'target_name': 'test_opus_decode',
200       'type': 'executable',
201       'dependencies': [
202         'opus'
203       ],
204       'sources': [
205         'src/tests/test_opus_decode.c',
206       ],
207       # test_opus_decode passes a null pointer to opus_decode() for an argument
208       # marked as requiring a non-null value by the nonnull function attribute,
209       # and expects opus_decode() to fail. Disable the -Wnonnull option to avoid
210       # a compilation error if -Werror is specified.
211       'conditions': [
212         ['os_posix==1 and OS!="mac" and OS!="ios"', {
213           'cflags': ['-Wno-nonnull'],
214         }],
215         ['OS=="mac" or OS=="ios"', {
216           'xcode_settings': {
217             'WARNING_CFLAGS': ['-Wno-nonnull'],
218           },
219         }],
220       ],
221     },  # target test_opus_decode
222     {
223       'target_name': 'test_opus_padding',
224       'type': 'executable',
225       'dependencies': [
226         'opus'
227       ],
228       'sources': [
229         'src/tests/test_opus_padding.c',
230       ],
231     },  # target test_opus_padding
232   ]