• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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.
4
5{
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'],
18
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  ],
284}
285