Roll Libjingle 8093:8097
[chromium-blink-merge.git] / ppapi / ppapi_internal.gyp
blobd96770ecf74e10efd52b1cc0aa195381200fead9
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       # GN version: //ppapi:ppapi_shared
37       'target_name': 'ppapi_shared',
38       'type': '<(component)',
39       'variables': {
40         # Set the ppapi_shared_target variable, so that we will pull in the
41         # sources from ppapi_shared.gypi (and only from there). We follow the
42         # same pattern for the other targets defined within this file.
43         'ppapi_shared_target': 1,
44       },
45       'dependencies': [
46         '../base/base.gyp:base',
47         '../base/base.gyp:base_i18n',
48         '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
49         '../gpu/command_buffer/command_buffer.gyp:gles2_utils',
50         '../gpu/gpu.gyp:command_buffer_client',
51         '../gpu/gpu.gyp:gles2_implementation',
52         '../ipc/ipc.gyp:ipc',
53         '../media/media.gyp:shared_memory_support',
54         '../skia/skia.gyp:skia',
55         '../third_party/icu/icu.gyp:icuuc',
56         '../ui/events/events.gyp:events_base',
57         '../ui/surface/surface.gyp:surface',
58         '../url/url.gyp:url_lib',
59         'ppapi.gyp:ppapi_c',
60       ],
61       'export_dependent_settings': [
62         '../base/base.gyp:base',
63       ],
64       'conditions': [
65         ['OS=="mac"', {
66           'link_settings': {
67             'libraries': [
68               '$(SDKROOT)/System/Library/Frameworks/QuartzCore.framework',
69             ],
70           },
71         }],
72         ['chrome_multiple_dll==1', {
73           'dependencies': [
74             '../third_party/WebKit/public/blink.gyp:blink_minimal',
75           ],
76           'export_dependent_settings': [
77             '../third_party/WebKit/public/blink.gyp:blink_minimal',
78           ],
79         }, {
80           'dependencies': [
81             '../third_party/WebKit/public/blink.gyp:blink',
82           ],
83           'export_dependent_settings': [
84             '../third_party/WebKit/public/blink.gyp:blink',
85           ],
86         }],
87       ],
88       # Disable c4267 warnings until we fix size_t to int truncations.
89       'msvs_disabled_warnings': [ 4267, ],
90     },
91   ],
92   'conditions': [
93     ['component=="static_library"', {
94       # In a static build, build ppapi_ipc separately.
95       'targets': [
96         {
97           # GN version: //ppapi:ppapi_ipc
98           'target_name': 'ppapi_ipc',
99           'type': 'static_library',
100           'variables': {
101             'ppapi_ipc_target': 1,
102           },
103           'dependencies': [
104             '../base/base.gyp:base',
105             '../gpu/gpu.gyp:gpu_ipc',
106             '../ipc/ipc.gyp:ipc',
107             '../skia/skia.gyp:skia',
108             '../ui/events/ipc/events_ipc.gyp:events_ipc',
109             'ppapi.gyp:ppapi_c',
110             'ppapi_shared',
111           ],
112           'all_dependent_settings': {
113             'include_dirs': [
114                 '..',
115             ],
116           },
117         },
118         {
119           # GN version: //ppapi:ppapi_proxy
120           'target_name': 'ppapi_proxy',
121           'type': 'static_library',
122           'variables': {
123             'ppapi_proxy_target': 1,
124           },
125           'dependencies': [
126             '../base/base.gyp:base',
127             '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
128             '../gin/gin.gyp:gin',
129             '../gpu/gpu.gyp:gles2_implementation',
130             '../gpu/gpu.gyp:gpu_ipc',
131             '../media/media.gyp:shared_memory_support',
132             '../ipc/ipc.gyp:ipc',
133             '../skia/skia.gyp:skia',
134             '../third_party/icu/icu.gyp:icuuc',
135             '../third_party/icu/icu.gyp:icui18n',
136             '../ui/events/events.gyp:events_base',
137             '../ui/surface/surface.gyp:surface',
138             'ppapi.gyp:ppapi_c',
139             'ppapi_shared',
140             'ppapi_ipc',
141           ],
142           'all_dependent_settings': {
143             'include_dirs': [
144                 '..',
145             ],
146           },
147           # Disable c4267 warnings until we fix size_t to int truncations.
148           'msvs_disabled_warnings': [ 4267, ],
149           'conditions': [
150             ['chrome_multiple_dll==1', {
151               'dependencies': [
152                 '../third_party/WebKit/public/blink.gyp:blink_minimal',
153               ],
154             }, {
155               'dependencies': [
156                 '../third_party/WebKit/public/blink.gyp:blink',
157               ],
158             }],
159           ],
160         },
161       ],
162     },
163     { # component != static_library
164       # In the component build, we'll just build ppapi_ipc in to ppapi_proxy.
165       'targets': [
166         {
167           # GN version: //ppapi:ppapi_proxy
168           'target_name': 'ppapi_proxy',
169           'type': 'shared_library',
170           'variables': {
171             # Setting both variables means we pull in the sources from both
172             # ppapi_ipc.gypi and ppapi_proxy.gypi.
173             'ppapi_ipc_target': 1,
174             'ppapi_proxy_target': 1,
175           },
176           'dependencies': [
177             '../base/base.gyp:base',
178             '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
179             '../gin/gin.gyp:gin',
180             '../gpu/gpu.gyp:gles2_implementation',
181             '../gpu/gpu.gyp:gpu_ipc',
182             '../media/media.gyp:shared_memory_support',
183             '../ipc/ipc.gyp:ipc',
184             '../skia/skia.gyp:skia',
185             '../third_party/icu/icu.gyp:icuuc',
186             '../third_party/icu/icu.gyp:icui18n',
187             '../ui/events/events.gyp:events_base',
188             '../ui/events/ipc/events_ipc.gyp:events_ipc',
189             '../ui/surface/surface.gyp:surface',
190             'ppapi.gyp:ppapi_c',
191             'ppapi_shared',
192           ],
193           'all_dependent_settings': {
194             'include_dirs': [
195                 '..',
196             ],
197           },
198           # Disable c4267 warnings until we fix size_t to int truncations.
199           'msvs_disabled_warnings': [ 4267, ],
200           'conditions': [
201             ['chrome_multiple_dll==1', {
202               'dependencies': [
203                 '../third_party/WebKit/public/blink.gyp:blink_minimal',
204               ],
205             }, {
206               'dependencies': [
207                 '../third_party/WebKit/public/blink.gyp:blink',
208               ],
209             }],
210           ],
211         },
212         {
213           # In component build, this is just a phony target that makes sure
214           # ppapi_proxy is built, since that's where the ipc sources go in the
215           # component build.
216           'target_name': 'ppapi_ipc',
217           'type': 'none',
218           'dependencies': [
219             'ppapi_proxy',
220           ],
221         },
222       ],
223     }],
224     ['disable_nacl!=1 and OS=="win" and target_arch=="ia32"', {
225       # In windows builds, we also want to define some targets to build in
226       # 64-bit mode for use by nacl64.exe (the NaCl helper process for 64-bit
227       # Windows).
228       'targets': [
229         {
230           # GN version: //ppapi:ppapi_shared
231           # (Should be automagical when compiling in the 64-bit toolchain.)
232           'target_name': 'ppapi_shared_win64',
233           'type': '<(component)',
234           'variables': {
235             'nacl_win64_target': 1,
236             'ppapi_shared_target': 1,
237           },
238           'dependencies': [
239             'ppapi.gyp:ppapi_c',
240             '../base/base.gyp:base_win64',
241             '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations_win64',
242             '../gpu/gpu.gyp:command_buffer_common_win64',
243             '../ipc/ipc.gyp:ipc_win64',
244             '../ui/events/latency_info_nacl.gyp:latency_info_nacl_win64',
245           ],
246           'defines': [
247             '<@(nacl_win64_defines)',
248           ],
249           'export_dependent_settings': [
250             '../base/base.gyp:base_win64',
251           ],
252           'configurations': {
253             'Common_Base': {
254               'msvs_target_platform': 'x64',
255             },
256           },
257         },
258         {
259           # GN version: //ppapi:ppapi_ipc
260           # (Should be automagical when compiling in the 64-bit toolchain.)
261           'target_name': 'ppapi_ipc_win64',
262           'type': 'static_library',
263           'variables': {
264             'nacl_win64_target': 1,
265             'ppapi_ipc_target': 1,
266           },
267           'dependencies': [
268             '../base/base.gyp:base_win64',
269             '../ipc/ipc.gyp:ipc_win64',
270             '../gpu/gpu.gyp:gpu_ipc_win64',
271             '../ui/events/latency_info_nacl.gyp:latency_info_nacl_win64',
272             'ppapi.gyp:ppapi_c',
273             'ppapi_shared_win64',
274           ],
275           'export_dependent_settings': [
276             '../gpu/gpu.gyp:gpu_ipc_win64',
277           ],
278           'defines': [
279             '<@(nacl_win64_defines)',
280           ],
281           'all_dependent_settings': {
282             'include_dirs': [
283                '..',
284             ],
285           },
286           'configurations': {
287             'Common_Base': {
288               'msvs_target_platform': 'x64',
289             },
290           },
291       }],
292     }],
293   ],