Roll src/third_party/WebKit caedcbc:f2344f2 (svn 186760:186764)
[chromium-blink-merge.git] / third_party / opus / opus.gyp
blob2668fea0f82217921da48690ce878658cb1f00e7
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   'targets': [
28     {
29       'target_name': 'opus',
30       'type': 'static_library',
31       'defines': [
32         'OPUS_BUILD',
33         'OPUS_EXPORT=',
34       ],
35       'include_dirs': [
36         'src/celt',
37         'src/include',
38         'src/silk',
39       ],
40       'direct_dependent_settings': {
41         'include_dirs': [
42           'src/include',
43         ],
44       },
45       'includes': [
46         'opus_srcs.gypi',
47         # Disable LTO due to ELF section name out of range
48         # crbug.com/422251
49         '../../build/android/disable_lto.gypi',
50       ],
51       'sources': ['<@(opus_common_sources)'],
52       'conditions': [
53         ['OS!="win"', {
54           'defines': [
55             'HAVE_LRINT',
56             'HAVE_LRINTF',
57             'VAR_ARRAYS',
58           ],
59         }, {
60           'defines': [
61             'USE_ALLOCA',
62             'inline=__inline',
63           ],
64           'msvs_disabled_warnings': [
65             4305,  # Disable truncation warning in celt/pitch.c .
66             4334,  # Disable 32-bit shift warning in src/opus_encoder.c .
67           ],
68         }],
69         ['os_posix==1', {
70           'link_settings': {
71             'libraries': [ '-lm' ],
72           },
73         }],
74         ['os_posix==1 and OS!="android"', {
75           # Suppress a warning given by opus_decoder.c that tells us
76           # optimizations are turned off.
77           'cflags': [
78             '-Wno-#pragma-messages',
79           ],
80           'xcode_settings': {
81             'WARNING_CFLAGS': [
82               '-Wno-#pragma-messages',
83             ],
84           },
85         }],
86         ['os_posix==1 and (target_arch=="arm" or target_arch=="arm64")', {
87           'cflags!': ['-Os'],
88           'cflags': ['-O3'],
89         }],
90         ['use_opus_fixed_point==0', {
91           'include_dirs': [
92             'src/silk/float',
93           ],
94           'sources': ['<@(opus_float_sources)'],
95         }, {
96           'defines': [
97             'FIXED_POINT',
98           ],
99           'include_dirs': [
100             'src/silk/fixed',
101           ],
102           'sources': ['<@(opus_fixed_sources)'],
103           'conditions': [
104             ['use_opus_arm_optimization==1', {
105               'defines': [
106                 'OPUS_ARM_ASM',
107                 'OPUS_ARM_INLINE_ASM',
108                 'OPUS_ARM_INLINE_EDSP',
109               ],
110               'includes': [
111                 'opus_srcs_arm.gypi',
112               ],
113               'conditions': [
114                 ['use_opus_rtcd==1', {
115                   'defines': [
116                     'OPUS_ARM_MAY_HAVE_EDSP',
117                     'OPUS_ARM_MAY_HAVE_MEDIA',
118                     'OPUS_ARM_MAY_HAVE_NEON',
119                     'OPUS_HAVE_RTCD',
120                   ],
121                   'includes': [
122                     'opus_srcs_rtcd.gypi',
123                   ],
124                 }],
125               ],
126             }],
127           ],
128         }],
129       ],
130     },  # target opus
131     {
132       'target_name': 'opus_demo',
133       'type': 'executable',
134       'dependencies': [
135         'opus'
136       ],
137       'conditions': [
138         ['OS == "win"', {
139           'defines': [
140             'inline=__inline',
141           ],
142         }],
143         ['OS=="android"', {
144           'link_settings': {
145             'libraries': [
146               '-llog',
147             ],
148           },
149         }],
150         ['clang==1', {
151           'cflags': [ '-Wno-absolute-value' ],
152         }]
153       ],
154       'sources': [
155         'src/src/opus_demo.c',
156       ],
157       'include_dirs': [
158         'src/celt',
159         'src/silk',
160       ],
161     },  # target opus_demo
162   ]