Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(648)

Side by Side Diff: chrome/chrome_dll.gypi

Issue 501125: Revert 34983 - Split more targets from chrome.gyp to add support for building... (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src/
Patch Set: Created 11 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « chrome/chrome_common.gypi ('k') | chrome/chrome_exe.gypi » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
(Empty)
1 # Copyright (c) 2009 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 'target_defaults': {
7 'variables': {
8 'chrome_dll_target': 0,
9 },
10 'target_conditions': [
11 ['chrome_dll_target==1', {
12 'conditions': [
13 ['OS=="win"', {
14 'include_dirs': [
15 'third_party/wtl/include',
16 ],
17 'defines': [
18 'CHROME_DLL',
19 'BROWSER_DLL',
20 'RENDERER_DLL',
21 'PLUGIN_DLL',
22 ],
23 'msvs_settings': {
24 'VCLinkerTool': {
25 'BaseAddress': '0x01c30000',
26 'DelayLoadDLLs': [
27 'crypt32.dll',
28 'cryptui.dll',
29 'winhttp.dll',
30 'wininet.dll',
31 'wsock32.dll',
32 'ws2_32.dll',
33 'winspool.drv',
34 'comdlg32.dll',
35 'imagehlp.dll',
36 'urlmon.dll',
37 'imm32.dll',
38 'iphlpapi.dll',
39 ],
40 # Set /SUBSYSTEM:WINDOWS for chrome.dll (for consistency).
41 'SubSystem': '2',
42 },
43 'VCManifestTool': {
44 'AdditionalManifestFiles': '$(ProjectDir)\\app\\chrome.dll.manif est',
45 },
46 },
47 'configurations': {
48 'Debug': {
49 'msvs_settings': {
50 'VCLinkerTool': {
51 'LinkIncremental': '<(msvs_large_module_debug_link_mode)',
52 },
53 },
54 },
55 },
56 }], # OS=="win"
57 ], # conditions
58 }],
59 ],
60 },
61 'conditions': [
62 ['OS=="mac" or OS=="win"', {
63 'targets': [
64 {
65 'target_name': 'chrome_dll',
66 'type': 'shared_library',
67 'variables': {
68 'chrome_dll_target': 1,
69 },
70 'dependencies': [
71 '<@(chromium_dependencies)',
72 ],
73 'conditions': [
74 ['OS=="win"', {
75 'product_name': 'chrome',
76 'msvs_guid': 'C0A7EE2C-2A6D-45BE-BA78-6D006FDF52D9',
77 'dependencies': [
78 # On Windows, link the dependencies (libraries) that make
79 # up actual Chromium functionality into this .dll.
80 'chrome_dll_version',
81 'chrome_resources',
82 'installer/installer.gyp:installer_util_strings',
83 'worker',
84 '../printing/printing.gyp:printing',
85 '../net/net.gyp:net_resources',
86 '../build/util/support/support.gyp:*',
87 '../third_party/cld/cld.gyp:cld',
88 '../views/views.gyp:views',
89 '../webkit/webkit.gyp:webkit_resources',
90 '../gears/gears.gyp:gears',
91 ],
92 'sources': [
93 'app/chrome_dll.rc',
94 'app/chrome_dll_main.cc',
95 'app/chrome_dll_resource.h',
96 '<(SHARED_INTERMEDIATE_DIR)/chrome_dll_version/chrome_dll_versio n.rc',
97
98 '../webkit/glue/resources/aliasb.cur',
99 '../webkit/glue/resources/cell.cur',
100 '../webkit/glue/resources/col_resize.cur',
101 '../webkit/glue/resources/copy.cur',
102 '../webkit/glue/resources/row_resize.cur',
103 '../webkit/glue/resources/vertical_text.cur',
104 '../webkit/glue/resources/zoom_in.cur',
105 '../webkit/glue/resources/zoom_out.cur',
106
107 # TODO: It would be nice to have these pulled in
108 # automatically from direct_dependent_settings in
109 # their various targets (net.gyp:net_resources, etc.),
110 # but that causes errors in other targets when
111 # resulting .res files get referenced multiple times.
112 '<(SHARED_INTERMEDIATE_DIR)/app/app_resources/app_resources.rc',
113 '<(SHARED_INTERMEDIATE_DIR)/chrome/browser_resources.rc',
114 '<(SHARED_INTERMEDIATE_DIR)/chrome/common_resources.rc',
115 '<(SHARED_INTERMEDIATE_DIR)/chrome/renderer_resources.rc',
116 '<(SHARED_INTERMEDIATE_DIR)/chrome/theme_resources.rc',
117 '<(SHARED_INTERMEDIATE_DIR)/net/net_resources.rc',
118 '<(SHARED_INTERMEDIATE_DIR)/webkit/webkit_resources.rc',
119
120 # TODO(sgk): left-over from pre-gyp build, figure out
121 # if we still need them and/or how to update to gyp.
122 #'app/check_dependents.bat',
123 #'app/chrome.dll.deps',
124 ],
125 'msvs_settings': {
126 'VCLinkerTool': {
127 'ImportLibrary': '$(OutDir)\\lib\\chrome_dll.lib',
128 'ProgramDatabaseFile': '$(OutDir)\\chrome_dll.pdb',
129 },
130 },
131 }], # OS=="win"
132 ['OS=="mac"', {
133 # The main browser executable's name is <(mac_product_name).
134 # Certain things will get confused if two modules in the
135 # executable share the same name, so append " Framework" to the
136 # product_name used for the framework. This will result in
137 # a name like "Chromium Framework.framework".
138 'product_name': '<(mac_product_name) Framework',
139 'mac_bundle': 1,
140 'xcode_settings': {
141 'CHROMIUM_BUNDLE_ID': '<(mac_bundle_id)',
142
143 # The dylib versions are of the form a[.b[.c]], where a is a
144 # 16-bit unsigned integer, and b and c are 8-bit unsigned
145 # integers. Any missing component is taken to be 0. The
146 # best mapping from product version numbers into this scheme
147 # is to just use the build and patch numbers. There is no
148 # ambiguity in this scheme because the build number is
149 # guaranteed unique even across distinct major and minor
150 # version numbers. These settings correspond to
151 # -compatibility_version and -current_version.
152 'DYLIB_COMPATIBILITY_VERSION': '<(version_build_patch)',
153 'DYLIB_CURRENT_VERSION': '<(version_build_patch)',
154
155 # The framework is placed within the .app's versioned
156 # directory. DYLIB_INSTALL_NAME_BASE and
157 # LD_DYLIB_INSTALL_NAME affect -install_name.
158 'DYLIB_INSTALL_NAME_BASE':
159 '@executable_path/../Versions/<(version_full)',
160 # See tools/build/mac/copy_framework_unversioned for
161 # information on LD_DYLIB_INSTALL_NAME.
162 'LD_DYLIB_INSTALL_NAME':
163 '$(DYLIB_INSTALL_NAME_BASE:standardizepath)/$(WRAPPER_NAME)/ $(PRODUCT_NAME)',
164
165 'INFOPLIST_FILE': 'app/framework-Info.plist',
166
167 # Define the order of symbols within the framework. This
168 # sets -order_file.
169 'ORDER_FILE': 'app/framework.order',
170 },
171 'sources': [
172 'app/chrome_dll_main.cc',
173 'app/chrome_dll_resource.h',
174 'app/chrome_exe_main.mm',
175 ],
176 # TODO(mark): Come up with a fancier way to do this. It should
177 # only be necessary to list framework-Info.plist once, not the
178 # three times it is listed here.
179 'mac_bundle_resources': [
180 'app/framework-Info.plist',
181 'app/nibs/About.xib',
182 'app/nibs/AboutIPC.xib',
183 'app/nibs/BookmarkAllTabs.xib',
184 'app/nibs/BookmarkBar.xib',
185 'app/nibs/BookmarkBubble.xib',
186 'app/nibs/BookmarkEditor.xib',
187 'app/nibs/BookmarkNameFolder.xib',
188 'app/nibs/BrowserWindow.xib',
189 'app/nibs/ClearBrowsingData.xib',
190 'app/nibs/DownloadItem.xib',
191 'app/nibs/DownloadShelf.xib',
192 'app/nibs/EditSearchEngine.xib',
193 'app/nibs/ExtensionShelf.xib',
194 'app/nibs/FindBar.xib',
195 'app/nibs/FirstRunDialog.xib',
196 'app/nibs/HungRendererDialog.xib',
197 'app/nibs/HttpAuthLoginSheet.xib',
198 'app/nibs/ImportSettingsDialog.xib',
199 'app/nibs/InfoBar.xib',
200 'app/nibs/InfoBarContainer.xib',
201 'app/nibs/ImportProgressDialog.xib',
202 'app/nibs/KeywordEditor.xib',
203 'app/nibs/MainMenu.xib',
204 'app/nibs/PageInfo.xib',
205 'app/nibs/Preferences.xib',
206 'app/nibs/ReportBug.xib',
207 'app/nibs/SaveAccessoryView.xib',
208 'app/nibs/SadTab.xib',
209 'app/nibs/TabContents.xib',
210 'app/nibs/TabView.xib',
211 'app/nibs/TaskManager.xib',
212 'app/nibs/Toolbar.xib',
213 'app/theme/back_Template.pdf',
214 'app/theme/chevron.png', # TODO(jrg): get and use a pdf version
215 'app/theme/close_bar.pdf',
216 'app/theme/close_bar_h.pdf',
217 'app/theme/close_bar_p.pdf',
218 'app/theme/find_next_Template.pdf',
219 'app/theme/find_prev_Template.pdf',
220 'app/theme/forward_Template.pdf',
221 'app/theme/go_Template.pdf',
222 'app/theme/home_Template.pdf',
223 'app/theme/menu_chrome_rtl_Template.pdf',
224 'app/theme/menu_chrome_Template.pdf',
225 'app/theme/menu_page_rtl_Template.pdf',
226 'app/theme/menu_page_Template.pdf',
227 'app/theme/nav.pdf',
228 'app/theme/newtab.pdf',
229 'app/theme/newtab_h.pdf',
230 'app/theme/newtab_p.pdf',
231 'app/theme/otr_icon.pdf',
232 'app/theme/reload_Template.pdf',
233 'app/theme/star_Template.pdf',
234 'app/theme/starred.pdf',
235 'app/theme/stop_Template.pdf',
236 ],
237 'mac_bundle_resources!': [
238 'app/framework-Info.plist',
239 ],
240 'dependencies': [
241 # Bring in pdfsqueeze and run it on all pdfs
242 '../build/temp_gyp/pdfsqueeze.gyp:pdfsqueeze',
243 '../build/util/support/support.gyp:*',
244 ],
245 'rules': [
246 {
247 'rule_name': 'pdfsqueeze',
248 'extension': 'pdf',
249 'inputs': [
250 '<(PRODUCT_DIR)/pdfsqueeze',
251 ],
252 'outputs': [
253 '<(INTERMEDIATE_DIR)/pdfsqueeze/<(RULE_INPUT_ROOT).pdf',
254 ],
255 'action': ['<(PRODUCT_DIR)/pdfsqueeze',
256 '<(RULE_INPUT_PATH)', '<@(_outputs)'],
257 'message': 'Running pdfsqueeze on <(RULE_INPUT_PATH)',
258 },
259 ],
260 'variables': {
261 'repack_path': '../tools/data_pack/repack.py',
262 },
263 'actions': [
264 # TODO(mark): These actions are duplicated for Linux and
265 # FreeBSD in the chrome target. Can they be unified?
266 {
267 'action_name': 'repack_chrome',
268 'variables': {
269 'pak_inputs': [
270 '<(grit_out_dir)/browser_resources.pak',
271 '<(grit_out_dir)/common_resources.pak',
272 '<(grit_out_dir)/renderer_resources.pak',
273 '<(grit_out_dir)/theme_resources.pak',
274 '<(SHARED_INTERMEDIATE_DIR)/app/app_resources/app_resource s.pak',
275 '<(SHARED_INTERMEDIATE_DIR)/net/net_resources.pak',
276 '<(SHARED_INTERMEDIATE_DIR)/webkit/webkit_resources.pak',
277 ],
278 },
279 'inputs': [
280 '<(repack_path)',
281 '<@(pak_inputs)',
282 ],
283 'outputs': [
284 '<(INTERMEDIATE_DIR)/repack/chrome.pak',
285 ],
286 'action': ['python', '<(repack_path)', '<@(_outputs)',
287 '<@(pak_inputs)'],
288 'process_outputs_as_mac_bundle_resources': 1,
289 },
290 {
291 'action_name': 'repack_locales',
292 'process_outputs_as_mac_bundle_resources': 1,
293 'variables': {
294 'conditions': [
295 ['branding=="Chrome"', {
296 'branding_flag': ['-b', 'google_chrome',],
297 }, { # else: branding!="Chrome"
298 'branding_flag': ['-b', 'chromium',],
299 }],
300 ],
301 },
302 'inputs': [
303 'tools/build/repack_locales.py',
304 # NOTE: Ideally the common command args would be shared
305 # amongst inputs/outputs/action, but the args include shell
306 # variables which need to be passed intact, and command
307 # expansion wants to expand the shell variables. Adding the
308 # explicit quoting here was the only way it seemed to work.
309 '>!@(<(repack_locales_cmd) -i <(branding_flag) -g \'<(grit_o ut_dir)\' -s \'<(SHARED_INTERMEDIATE_DIR)\' -x \'<(INTERMEDIATE_DIR)\' <(locales ))',
310 ],
311 'outputs': [
312 '>!@(<(repack_locales_cmd) -o -g \'<(grit_out_dir)\' -s \'<( SHARED_INTERMEDIATE_DIR)\' -x \'<(INTERMEDIATE_DIR)\' <(locales))',
313 ],
314 'action': [
315 '<@(repack_locales_cmd)',
316 '<@(branding_flag)',
317 '-g', '<(grit_out_dir)',
318 '-s', '<(SHARED_INTERMEDIATE_DIR)',
319 '-x', '<(INTERMEDIATE_DIR)',
320 '<@(locales)',
321 ],
322 },
323 ],
324 'postbuilds': [
325 {
326 # This step causes an error to be raised if the .order file
327 # does not account for all global text symbols. It
328 # validates the completeness of the .order file.
329 'postbuild_name': 'Verify global text symbol order',
330 'variables': {
331 'verify_order_path': 'tools/build/mac/verify_order',
332 },
333 'action': [
334 '<(verify_order_path)',
335 '_ChromeMain',
336 '${BUILT_PRODUCTS_DIR}/${EXECUTABLE_PATH}',
337 ],
338 },
339 {
340 # Modify the Info.plist as needed. The script explains why
341 # this is needed. This is also done in the chrome target.
342 # The framework needs the Breakpad and Keystone keys if
343 # those features are enabled. It doesn't currently use the
344 # Subversion keys for anything, but this seems like a really
345 # good place to store them.
346 'postbuild_name': 'Tweak Info.plist',
347 'action': ['<(tweak_info_plist_path)',
348 '-b<(mac_breakpad)',
349 '-k<(mac_keystone)',
350 '-s1',
351 '<(branding)',
352 '<(mac_bundle_id)'],
353 },
354 {
355 'postbuild_name': 'Symlink Libraries',
356 'action': [
357 'ln',
358 '-fhs',
359 'Versions/Current/Libraries',
360 '${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Libraries'
361 ],
362 },
363 ],
364 'copies': [
365 {
366 'destination': '<(PRODUCT_DIR)/$(CONTENTS_FOLDER_PATH)/Resourc es',
367 'files': [
368 '<(PRODUCT_DIR)/resources/inspector/'
369 ],
370 'conditions': [
371 ['mac_breakpad==1', {
372 'files': [
373 '<(PRODUCT_DIR)/crash_inspector',
374 '<(PRODUCT_DIR)/crash_report_sender.app'
375 ],
376 }],
377 ],
378 },
379 {
380 'destination':
381 '<(PRODUCT_DIR)/$(CONTENTS_FOLDER_PATH)/Libraries',
382 'files': [
383 # TODO(ajwong): Find a way to share this path with
384 # ffmpeg.gyp so they don't diverge. (BUG=23602)
385 '<(PRODUCT_DIR)/libffmpegsumo.dylib',
386 ],
387 },
388 ],
389 'conditions': [
390 ['mac_breakpad==1', {
391 'variables': {
392 # A real .dSYM is needed for dump_syms to operate on.
393 'mac_real_dsym': 1,
394 },
395 'sources': [
396 'app/breakpad_mac.mm',
397 'app/breakpad_mac.h',
398 ],
399 'dependencies': [
400 '../breakpad/breakpad.gyp:breakpad',
401 ],
402 }, { # else: mac_breakpad!=1
403 # No Breakpad, put in the stubs.
404 'sources': [
405 'app/breakpad_mac_stubs.mm',
406 'app/breakpad_mac.h',
407 ],
408 }], # mac_breakpad
409 ['mac_keystone==1', {
410 'variables': {
411 'conditions': [
412 ['branding=="Chrome"', {
413 'theme_dir_name': 'google_chrome',
414 }, { # else: 'branding!="Chrome"
415 'theme_dir_name': 'chromium',
416 }],
417 ],
418 },
419 'mac_bundle_resources': [
420 # This image is used to badge the lock icon in the
421 # promotion authentication dialog. It needs to exist as
422 # a file on disk and not just something in a resource
423 # bundle because that's the interface that Authorization
424 # Services uses. Also, Authorization Services can't deal
425 # with .icns files.
426 'app/theme/<(theme_dir_name)/product_logo_32.png',
427
428 'browser/cocoa/keystone_promote_preflight.sh',
429 'browser/cocoa/keystone_promote_postflight.sh',
430 ],
431 'postbuilds': [
432 {
433 'postbuild_name': 'Copy KeystoneRegistration.framework',
434 'action': [
435 'tools/build/mac/copy_framework_unversioned',
436 '../third_party/googlemac/Releases/Keystone/KeystoneRegi stration.framework',
437 '${BUILT_PRODUCTS_DIR}/${CONTENTS_FOLDER_PATH}/Framework s',
438 ],
439 },
440 {
441 'postbuild_name': 'Symlink Frameworks',
442 'action': [
443 'ln',
444 '-fhs',
445 'Versions/Current/Frameworks',
446 '${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/Frameworks'
447 ],
448 },
449 ],
450 }], # mac_keystone
451 ], # conditions
452 }], # OS=="mac"
453 ], # conditions
454 }, # target chrome_dll
455 ], # targets
456 }], # OS=="mac" or OS=="win"
457 [ 'OS=="win"', {
458 'targets': [
459 {
460 'target_name': 'chrome_dll_nacl_win64',
461 'type': 'shared_library',
462 'product_name': 'chrome_nacl_win64',
463 'msvs_guid': 'F5B2D851-1279-4CE1-9386-AB7C6433551B',
464 'variables': {
465 'chrome_dll_target': 1,
466 },
467 'include_dirs': [
468 '..',
469 ],
470 'dependencies': [
471 '<@(nacl_win64_dependencies)',
472 'chrome_dll_version',
473 'nacl_win64',
474 ],
475 'defines': [
476 '<@(nacl_win64_defines)',
477 ],
478 'sources': [
479 'app/chrome_dll_main.cc',
480 'app/chrome_dll_resource.h',
481 'browser/renderer_host/render_process_host_dummy.cc',
482 '<(SHARED_INTERMEDIATE_DIR)/chrome_dll_version/chrome_dll_version.rc ',
483
484 # TODO: It would be nice to have these pulled in
485 # automatically from direct_dependent_settings in
486 # their various targets (net.gyp:net_resources, etc.),
487 # but that causes errors in other targets when
488 # resulting .res files get referenced multiple times.
489 '<(SHARED_INTERMEDIATE_DIR)/app/app_resources/app_resources.rc',
490 '<(SHARED_INTERMEDIATE_DIR)/chrome/common_resources.rc',
491
492 # TODO(sgk): left-over from pre-gyp build, figure out
493 # if we still need them and/or how to update to gyp.
494 #'app/check_dependents.bat',
495 #'app/chrome.dll.deps',
496
497 # Stub entry points for process types that are not supported
498 # by NaCl Win64 executable
499 'app/dummy_main_functions.cc',
500 ],
501 'msvs_settings': {
502 'VCLinkerTool': {
503 'ImportLibrary': '$(OutDir)\\lib\\chrome_dll_nacl_win64.lib',
504 'ProgramDatabaseFile': '$(OutDir)\\chrome_dll_nacl_win64.pdb',
505 },
506 },
507 'configurations': {
508 'Common': {
509 'msvs_target_platform': 'x64',
510 },
511 },
512 }, # target chrome_dll
513 ],
514 }],
515 ],
516 }
OLDNEW
« no previous file with comments | « chrome/chrome_common.gypi ('k') | chrome/chrome_exe.gypi » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698