1 # Copyright (c) 2011 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.
7 'chromium_code': 1, # Use higher warning level.
8 'directxsdk_exists': '<!(python <(DEPTH)/build/dir_exists.py ../third_party/directxsdk)',
11 '../build/win_precompile.gypi',
16 'defines': ['CONTENT_IMPLEMENTATION'],
19 # In component mode, we build all of content as a single DLL.
20 # However, in the static mode, we need to build content as multiple
21 # targets in order to prevent dependencies from getting introduced
22 # upstream unnecessarily (e.g., content_renderer depends on allocator
23 # and chrome_exe depends on content_common but we don't want
24 # chrome_exe to have to depend on allocator).
25 ['component=="static_library" or incremental_chrome_dll==1', {
27 'COMPILE_CONTENT_STATICALLY',
30 {'target_name': 'content',
38 'content_ppapi_plugin',
44 {'target_name': 'content_app',
45 'type': 'static_library',
46 'variables': { 'enable_wexit_time_destructors': 1, },
54 {'target_name': 'content_browser',
55 'type': 'static_library',
56 'variables': { 'enable_wexit_time_destructors': 1, },
58 'content_browser.gypi',
64 {'target_name': 'content_common',
65 'type': 'static_library',
66 'variables': { 'enable_wexit_time_destructors': 1, },
68 'content_common.gypi',
71 'content_resources.gyp:content_resources',
74 {'target_name': 'content_gpu',
75 'type': 'static_library',
76 'variables': { 'enable_wexit_time_destructors': 1, },
84 {'target_name': 'content_plugin',
85 'type': 'static_library',
86 'variables': { 'enable_wexit_time_destructors': 1, },
88 'content_plugin.gypi',
94 {'target_name': 'content_ppapi_plugin',
95 'type': 'static_library',
96 'variables': { 'enable_wexit_time_destructors': 1, },
98 'content_ppapi_plugin.gypi',
101 {'target_name': 'content_renderer',
102 'type': 'static_library',
103 'variables': { 'enable_wexit_time_destructors': 1, },
105 'content_renderer.gypi',
109 'content_resources.gyp:content_resources',
112 {'target_name': 'content_utility',
113 'type': 'static_library',
114 'variables': { 'enable_wexit_time_destructors': 1, },
116 'content_utility.gypi',
122 {'target_name': 'content_worker',
123 'type': 'static_library',
124 'variables': { 'enable_wexit_time_destructors': 1, },
126 'content_worker.gypi',
134 { # component != static_library
136 {'target_name': 'content',
137 'type': 'shared_library',
138 'variables': { 'enable_wexit_time_destructors': 1, },
140 'content_resources.gyp:content_resources',
144 'content_browser.gypi',
145 'content_common.gypi',
147 'content_plugin.gypi',
148 'content_ppapi_plugin.gypi',
149 'content_renderer.gypi',
150 'content_utility.gypi',
151 'content_worker.gypi',
154 {'target_name': 'content_app',
156 'dependencies': ['content', 'content_browser'],
158 {'target_name': 'content_browser',
160 'dependencies': ['content'],
162 {'target_name': 'content_common',
164 'dependencies': ['content', 'content_resources.gyp:content_resources'],
166 {'target_name': 'content_gpu',
168 'dependencies': ['content'],
170 {'target_name': 'content_plugin',
172 'dependencies': ['content'],
174 {'target_name': 'content_ppapi_plugin',
176 'dependencies': ['content'],
178 {'target_name': 'content_renderer',
180 'dependencies': ['content'],
182 {'target_name': 'content_utility',
184 'dependencies': ['content'],
186 {'target_name': 'content_worker',
188 'dependencies': ['content'],
196 'target_name': 'closure_blocks_leopard_compat',
197 'defines!': ['CONTENT_IMPLEMENTATION'],
199 'browser/mac/closure_blocks_leopard_compat.h',
202 ['mac_sdk == "10.5"', {
203 'type': 'shared_library',
204 'product_name': 'closure_blocks_leopard_compat_stub',
206 # This target controls stripping directly. See below.
210 'browser/mac/closure_blocks_leopard_compat.S',
213 # These values are taken from libSystem.dylib in the 10.5
214 # SDK. Setting LD_DYLIB_INSTALL_NAME causes anything linked
215 # against this stub library to look for the symbols it
216 # provides in the real libSystem at runtime. When using ld
217 # from Xcode 4 or later (ld64-123.2 and up), giving two
218 # libraries with the same "install name" to the linker will
219 # cause it to print "ld: warning: dylibs with same install
220 # name". This is harmless, and ld will behave as intended
223 # The real library's compatibility version is used, and the
224 # value of the current version from the SDK is used to make
225 # it appear as though anything linked against this stub was
226 # linked against the real thing.
227 'LD_DYLIB_INSTALL_NAME': '/usr/lib/libSystem.B.dylib',
228 'DYLIB_COMPATIBILITY_VERSION': '1.0.0',
229 'DYLIB_CURRENT_VERSION': '111.1.4',
231 # Turn on stripping (yes, even in debug mode), and add the -c
232 # flag. This is what produces a stub library (MH_DYLIB_STUB)
233 # as opposed to a dylib (MH_DYLIB). MH_DYLIB_STUB files
234 # contain symbol tables and everything else needed for
235 # linking, but are stripped of section contents. This is the
236 # same way that the stub libraries in Mac OS X SDKs are
237 # created. dyld will refuse to load a stub library, so this
238 # provides some insurance in case anyone tries to load the
240 'DEPLOYMENT_POSTPROCESSING': 'YES',
241 'STRIP_STYLE': 'non-global',
244 }, { # else: mac_sdk != "10.5"
245 # When using the 10.6 SDK or newer, the necessary definitions
246 # are already present in libSystem.dylib. There is no need to
247 # build a stub dylib to provide these symbols at link time.
248 # This target is still useful to cause those symbols to be
249 # treated as weak imports in dependents, who still must
250 # #include closure_blocks_leopard_compat.h to get weak imports.