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