Roll src/third_party/WebKit f36d5e0:68b67cd (svn 193299:193303)
[chromium-blink-merge.git] / ppapi / ppapi_internal.gyp
blob4efac4e02ba87649fade7eae2ad1f51a03bdd847
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/shared_impl and //ppapi/thunk
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       ],
73     },
74   ],
75   'conditions': [
76     ['component=="static_library"', {
77       # In a static build, build ppapi_ipc separately.
78       'targets': [
79         {
80           # GN version: //ppapi/proxy:ipc
81           'target_name': 'ppapi_ipc',
82           'type': 'static_library',
83           'variables': {
84             'ppapi_ipc_target': 1,
85           },
86           'dependencies': [
87             '../base/base.gyp:base',
88             '../gpu/gpu.gyp:gpu_ipc',
89             '../ipc/ipc.gyp:ipc',
90             '../skia/skia.gyp:skia',
91             '../ui/events/ipc/events_ipc.gyp:events_ipc',
92             'ppapi.gyp:ppapi_c',
93             'ppapi_shared',
94           ],
95           'all_dependent_settings': {
96             'include_dirs': [
97                 '..',
98             ],
99           },
100         },
101         {
102           # GN version: //ppapi/proxy
103           'target_name': 'ppapi_proxy',
104           'type': 'static_library',
105           'variables': {
106             'ppapi_proxy_target': 1,
107           },
108           'dependencies': [
109             '../base/base.gyp:base',
110             '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
111             '../gin/gin.gyp:gin',
112             '../gpu/gpu.gyp:gles2_implementation',
113             '../gpu/gpu.gyp:gpu_ipc',
114             '../media/media.gyp:shared_memory_support',
115             '../ipc/ipc.gyp:ipc',
116             '../skia/skia.gyp:skia',
117             '../third_party/icu/icu.gyp:icuuc',
118             '../third_party/icu/icu.gyp:icui18n',
119             '../ui/events/events.gyp:events_base',
120             '../ui/surface/surface.gyp:surface',
121             'ppapi.gyp:ppapi_c',
122             'ppapi_shared',
123             'ppapi_ipc',
124           ],
125           'all_dependent_settings': {
126             'include_dirs': [
127                 '..',
128             ],
129           },
130           'conditions': [
131             ['chrome_multiple_dll==1', {
132               'dependencies': [
133                 '../third_party/WebKit/public/blink.gyp:blink_minimal',
134               ],
135             }, {
136               'dependencies': [
137                 '../third_party/WebKit/public/blink.gyp:blink',
138               ],
139             }],
140           ],
141         },
142       ],
143     },
144     { # component != static_library
145       # In the component build, we'll just build ppapi_ipc in to ppapi_proxy.
146       'targets': [
147         {
148           # GN version: //ppapi:ppapi_proxy
149           'target_name': 'ppapi_proxy',
150           'type': 'shared_library',
151           'variables': {
152             # Setting both variables means we pull in the sources from both
153             # ppapi_ipc.gypi and ppapi_proxy.gypi.
154             'ppapi_ipc_target': 1,
155             'ppapi_proxy_target': 1,
156           },
157           'dependencies': [
158             '../base/base.gyp:base',
159             '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
160             '../gin/gin.gyp:gin',
161             '../gpu/gpu.gyp:gles2_implementation',
162             '../gpu/gpu.gyp:gpu_ipc',
163             '../media/media.gyp:shared_memory_support',
164             '../ipc/ipc.gyp:ipc',
165             '../skia/skia.gyp:skia',
166             '../third_party/icu/icu.gyp:icuuc',
167             '../third_party/icu/icu.gyp:icui18n',
168             '../ui/events/events.gyp:events_base',
169             '../ui/events/ipc/events_ipc.gyp:events_ipc',
170             '../ui/surface/surface.gyp:surface',
171             'ppapi.gyp:ppapi_c',
172             'ppapi_shared',
173           ],
174           'all_dependent_settings': {
175             'include_dirs': [
176                 '..',
177             ],
178           },
179           'conditions': [
180             ['chrome_multiple_dll==1', {
181               'dependencies': [
182                 '../third_party/WebKit/public/blink.gyp:blink_minimal',
183               ],
184             }, {
185               'dependencies': [
186                 '../third_party/WebKit/public/blink.gyp:blink',
187               ],
188             }],
189           ],
190         },
191         {
192           # In component build, this is just a phony target that makes sure
193           # ppapi_proxy is built, since that's where the ipc sources go in the
194           # component build.
195           'target_name': 'ppapi_ipc',
196           'type': 'none',
197           'dependencies': [
198             'ppapi_proxy',
199           ],
200         },
201       ],
202     }],
203     ['disable_nacl!=1 and OS=="win" and target_arch=="ia32"', {
204       # In windows builds, we also want to define some targets to build in
205       # 64-bit mode for use by nacl64.exe (the NaCl helper process for 64-bit
206       # Windows).
207       'targets': [
208         {
209           # GN version: //ppapi:ppapi_shared
210           # (Should be automagical when compiling in the 64-bit toolchain.)
211           'target_name': 'ppapi_shared_win64',
212           'type': '<(component)',
213           'variables': {
214             'nacl_win64_target': 1,
215             'ppapi_shared_target': 1,
216           },
217           'dependencies': [
218             'ppapi.gyp:ppapi_c',
219             '../base/base.gyp:base_win64',
220             '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations_win64',
221             '../gpu/gpu.gyp:command_buffer_common_win64',
222             '../ipc/ipc.gyp:ipc_win64',
223             '../ui/events/latency_info_nacl.gyp:latency_info_nacl_win64',
224           ],
225           'defines': [
226             '<@(nacl_win64_defines)',
227           ],
228           'export_dependent_settings': [
229             '../base/base.gyp:base_win64',
230           ],
231           'configurations': {
232             'Common_Base': {
233               'msvs_target_platform': 'x64',
234             },
235           },
236         },
237         {
238           # GN version: //ppapi:ppapi_ipc
239           # (Should be automagical when compiling in the 64-bit toolchain.)
240           'target_name': 'ppapi_ipc_win64',
241           'type': 'static_library',
242           'variables': {
243             'nacl_win64_target': 1,
244             'ppapi_ipc_target': 1,
245           },
246           'dependencies': [
247             '../base/base.gyp:base_win64',
248             '../ipc/ipc.gyp:ipc_win64',
249             '../gpu/gpu.gyp:gpu_ipc_win64',
250             '../ui/events/latency_info_nacl.gyp:latency_info_nacl_win64',
251             'ppapi.gyp:ppapi_c',
252             'ppapi_shared_win64',
253           ],
254           'export_dependent_settings': [
255             '../gpu/gpu.gyp:gpu_ipc_win64',
256           ],
257           'defines': [
258             '<@(nacl_win64_defines)',
259           ],
260           'all_dependent_settings': {
261             'include_dirs': [
262                '..',
263             ],
264           },
265           'configurations': {
266             'Common_Base': {
267               'msvs_target_platform': 'x64',
268             },
269           },
270       }],
271     }],
272   ],