Factorize media/audio into new GN.
[chromium-blink-merge.git] / ppapi / ppapi_internal.gyp
blob4c1614f7d4954277a388ecd4e331407de2aa69af
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     'chromium_code': 1,  # Use higher warning level.
8   },
9   'target_defaults': {
10     'conditions': [
11       # Linux shared libraries should always be built -fPIC.
12       #
13       # TODO(ajwong): For internal pepper plugins, which are statically linked
14       # into chrome, do we want to build w/o -fPIC?  If so, how can we express
15       # that in the build system?
16       ['os_posix==1 and OS!="android" and OS!="mac"', {
17         'cflags': ['-fPIC', '-fvisibility=hidden'],
19         # This is needed to make the Linux shlib build happy. Without this,
20         # -fvisibility=hidden gets stripped by the exclusion in common.gypi
21         # that is triggered when a shared library build is specified.
22         'cflags/': [['include', '^-fvisibility=hidden$']],
23       }],
24     ],
25   },
26   'includes': [
27     'ppapi_sources.gypi',
28     'ppapi_host.gypi',
29     'ppapi_ipc.gypi',
30     'ppapi_proxy.gypi',
31     'ppapi_shared.gypi',
32     'ppapi_tests.gypi',
33   ],
34   'targets': [
35     {
36       'target_name': 'ppapi_shared',
37       'type': '<(component)',
38       'variables': {
39         # Set the ppapi_shared_target variable, so that we will pull in the
40         # sources from ppapi_shared.gypi (and only from there). We follow the
41         # same pattern for the other targets defined within this file.
42         'ppapi_shared_target': 1,
43       },
44       'dependencies': [
45         '../base/base.gyp:base',
46         '../base/base.gyp:base_i18n',
47         '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
48         '../gpu/command_buffer/command_buffer.gyp:gles2_utils',
49         '../gpu/gpu.gyp:command_buffer_client',
50         '../gpu/gpu.gyp:gles2_implementation',
51         '../ipc/ipc.gyp:ipc',
52         '../media/media.gyp:shared_memory_support',
53         '../skia/skia.gyp:skia',
54         '../third_party/icu/icu.gyp:icuuc',
55         '../ui/events/events.gyp:events_base',
56         '../ui/surface/surface.gyp:surface',
57         '../url/url.gyp:url_lib',
58         'ppapi.gyp:ppapi_c',
59       ],
60       'export_dependent_settings': [
61         '../base/base.gyp:base',
62       ],
63       'conditions': [
64         ['OS=="mac"', {
65           'link_settings': {
66             'libraries': [
67               '$(SDKROOT)/System/Library/Frameworks/QuartzCore.framework',
68             ],
69           },
70         }],
71         ['chrome_multiple_dll==1', {
72           'dependencies': [
73             '../third_party/WebKit/public/blink.gyp:blink_minimal',
74           ],
75           'export_dependent_settings': [
76             '../third_party/WebKit/public/blink.gyp:blink_minimal',
77           ],
78         }, {
79           'dependencies': [
80             '../third_party/WebKit/public/blink.gyp:blink',
81           ],
82           'export_dependent_settings': [
83             '../third_party/WebKit/public/blink.gyp:blink',
84           ],
85         }],
86       ],
87       # Disable c4267 warnings until we fix size_t to int truncations.
88       'msvs_disabled_warnings': [ 4267, ],
89     },
90   ],
91   'conditions': [
92     ['component=="static_library"', {
93       # In a static build, build ppapi_ipc separately.
94       'targets': [
95         {
96           'target_name': 'ppapi_ipc',
97           'type': 'static_library',
98           'variables': {
99             'ppapi_ipc_target': 1,
100           },
101           'dependencies': [
102             '../base/base.gyp:base',
103             '../gpu/gpu.gyp:gpu_ipc',
104             '../ipc/ipc.gyp:ipc',
105             '../skia/skia.gyp:skia',
106             '../ui/events/ipc/events_ipc.gyp:events_ipc',
107             'ppapi.gyp:ppapi_c',
108             'ppapi_shared',
109           ],
110           'all_dependent_settings': {
111             'include_dirs': [
112                 '..',
113             ],
114           },
115         },
116         {
117           'target_name': 'ppapi_proxy',
118           'type': 'static_library',
119           'variables': {
120             'ppapi_proxy_target': 1,
121           },
122           'dependencies': [
123             '../base/base.gyp:base',
124             '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
125             '../gpu/gpu.gyp:gles2_implementation',
126             '../gpu/gpu.gyp:gpu_ipc',
127             '../media/media.gyp:shared_memory_support',
128             '../ipc/ipc.gyp:ipc',
129             '../skia/skia.gyp:skia',
130             '../third_party/icu/icu.gyp:icuuc',
131             '../third_party/icu/icu.gyp:icui18n',
132             '../ui/events/events.gyp:events_base',
133             '../ui/surface/surface.gyp:surface',
134             'ppapi.gyp:ppapi_c',
135             'ppapi_shared',
136             'ppapi_ipc',
137           ],
138           'all_dependent_settings': {
139             'include_dirs': [
140                 '..',
141             ],
142           },
143           # Disable c4267 warnings until we fix size_t to int truncations.
144           'msvs_disabled_warnings': [ 4267, ],
145           'conditions': [
146             ['chrome_multiple_dll==1', {
147               'dependencies': [
148                 '../third_party/WebKit/public/blink.gyp:blink_minimal',
149               ],
150             }, {
151               'dependencies': [
152                 '../third_party/WebKit/public/blink.gyp:blink',
153               ],
154             }],
155           ],
156         },
157       ],
158     },
159     { # component != static_library
160       # In the component build, we'll just build ppapi_ipc in to ppapi_proxy.
161       'targets': [
162         {
163           'target_name': 'ppapi_proxy',
164           'type': 'shared_library',
165           'variables': {
166             # Setting both variables means we pull in the sources from both
167             # ppapi_ipc.gypi and ppapi_proxy.gypi.
168             'ppapi_ipc_target': 1,
169             'ppapi_proxy_target': 1,
170           },
171           'dependencies': [
172             '../base/base.gyp:base',
173             '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
174             '../gpu/gpu.gyp:gles2_implementation',
175             '../gpu/gpu.gyp:gpu_ipc',
176             '../media/media.gyp:shared_memory_support',
177             '../ipc/ipc.gyp:ipc',
178             '../skia/skia.gyp:skia',
179             '../third_party/icu/icu.gyp:icuuc',
180             '../third_party/icu/icu.gyp:icui18n',
181             '../ui/events/events.gyp:events_base',
182             '../ui/events/ipc/events_ipc.gyp:events_ipc',
183             '../ui/surface/surface.gyp:surface',
184             'ppapi.gyp:ppapi_c',
185             'ppapi_shared',
186           ],
187           'all_dependent_settings': {
188             'include_dirs': [
189                 '..',
190             ],
191           },
192           # Disable c4267 warnings until we fix size_t to int truncations.
193           'msvs_disabled_warnings': [ 4267, ],
194           'conditions': [
195             ['chrome_multiple_dll==1', {
196               'dependencies': [
197                 '../third_party/WebKit/public/blink.gyp:blink_minimal',
198               ],
199             }, {
200               'dependencies': [
201                 '../third_party/WebKit/public/blink.gyp:blink',
202               ],
203             }],
204           ],
205         },
206         {
207           # In component build, this is just a phony target that makes sure
208           # ppapi_proxy is built, since that's where the ipc sources go in the
209           # component build.
210           'target_name': 'ppapi_ipc',
211           'type': 'none',
212           'dependencies': [
213             'ppapi_proxy',
214           ],
215         },
216       ],
217     }],
218     ['disable_nacl!=1 and OS=="win" and target_arch=="ia32"', {
219       # In windows builds, we also want to define some targets to build in
220       # 64-bit mode for use by nacl64.exe (the NaCl helper process for 64-bit
221       # Windows).
222       'targets': [
223         {
224           'target_name': 'ppapi_shared_win64',
225           'type': '<(component)',
226           'variables': {
227             'nacl_win64_target': 1,
228             'ppapi_shared_target': 1,
229           },
230           'dependencies': [
231             'ppapi.gyp:ppapi_c',
232             '../base/base.gyp:base_win64',
233             '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations_win64',
234             '../gpu/gpu.gyp:command_buffer_common_win64',
235             '../ipc/ipc.gyp:ipc_win64',
236             '../ui/events/latency_info_nacl.gyp:latency_info_nacl_win64',
237           ],
238           'defines': [
239             '<@(nacl_win64_defines)',
240           ],              
241           'export_dependent_settings': [
242             '../base/base.gyp:base_win64',
243           ],
244           'configurations': {
245             'Common_Base': {
246               'msvs_target_platform': 'x64',
247             },
248           },
249         },
250         {
251           'target_name': 'ppapi_ipc_win64',
252           'type': 'static_library',
253           'variables': {
254             'nacl_win64_target': 1,
255             'ppapi_ipc_target': 1,
256           },
257           'dependencies': [
258             '../base/base.gyp:base_win64',
259             '../ipc/ipc.gyp:ipc_win64',
260             '../gpu/gpu.gyp:gpu_ipc_win64',
261             '../ui/events/latency_info_nacl.gyp:latency_info_nacl_win64',
262             'ppapi.gyp:ppapi_c',
263             'ppapi_shared_win64',
264           ],
265           'export_dependent_settings': [
266             '../gpu/gpu.gyp:gpu_ipc_win64',
267           ],
268           'defines': [
269             '<@(nacl_win64_defines)',
270           ],              
271           'all_dependent_settings': {
272             'include_dirs': [
273                '..',
274             ],
275           },
276           'configurations': {
277             'Common_Base': {
278               'msvs_target_platform': 'x64',
279             },
280           },
281       }],
282     }],
283   ],