| OLD | NEW |
| 1 # Copyright (c) 2012 The Chromium Authors. All rights reserved. | 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 | 2 # Use of this source code is governed by a BSD-style license that can be |
| 3 # found in the LICENSE file. | 3 # found in the LICENSE file. |
| 4 { | 4 { |
| 5 'conditions': [ | 5 'conditions': [ |
| 6 ['OS=="mac" or OS=="win"', { | 6 ['OS=="mac" or OS=="win"', { |
| 7 'targets': [ | 7 'targets': [ |
| 8 { | 8 { |
| 9 'target_name': 'chrome_dll', | 9 'target_name': '<(chrome_dll_target_name)', |
| 10 'type': 'none', | 10 'type': 'none', |
| 11 'dependencies': [ | 11 'dependencies': [ |
| 12 'chrome_main_dll', | 12 '<(chrome_main_dll_target_name)', |
| 13 ], | 13 ], |
| 14 'conditions': [ | 14 'conditions': [ |
| 15 ['OS=="mac" and component=="shared_library"', { | 15 ['OS=="mac" and component=="shared_library"', { |
| 16 'type': 'shared_library', | 16 'type': 'shared_library', |
| 17 'includes': [ 'chrome_dll_bundle.gypi' ], | 17 'includes': [ 'chrome_dll_bundle.gypi' ], |
| 18 'xcode_settings': { | 18 'xcode_settings': { |
| 19 'OTHER_LDFLAGS': [ | 19 'OTHER_LDFLAGS': [ |
| 20 '-Wl,-reexport_library,<(PRODUCT_DIR)/libchrome_main_dll.dylib
', | 20 '-Wl,-reexport_library,<(PRODUCT_DIR)/libchrome_main_dll.dylib
', |
| 21 ], | 21 ], |
| 22 }, | 22 }, |
| 23 }], # OS=="mac" | 23 }], # OS=="mac" |
| 24 ['chrome_multiple_dll==1', { | 24 ['chrome_multiple_dll==1', { |
| 25 'dependencies': [ | 25 'dependencies': [ |
| 26 'chrome_child_dll', | 26 '<(chrome_child_dll_target_name)', |
| 27 ], | 27 ], |
| 28 }], | 28 }], |
| 29 ['incremental_chrome_dll==1', { | 29 ['incremental_chrome_dll==1', { |
| 30 # Linking to a different directory and then hardlinking back | 30 # Linking to a different directory and then hardlinking back |
| 31 # to OutDir is a workaround to avoid having the .ilk for | 31 # to OutDir is a workaround to avoid having the .ilk for |
| 32 # chrome.exe and chrome.dll conflicting. See crbug.com/92528 | 32 # chrome.exe and chrome.dll conflicting. See crbug.com/92528 |
| 33 # for more information. Done on the dll instead of the exe so | 33 # for more information. Done on the dll instead of the exe so |
| 34 # that people launching from VS don't need to modify | 34 # that people launching from VS don't need to modify |
| 35 # $(TargetPath) for the exe. | 35 # $(TargetPath) for the exe. |
| 36 'actions': [ | 36 'actions': [ |
| 37 { | 37 { |
| 38 'action_name': 'hardlink_to_output', | 38 'action_name': 'hardlink_to_output', |
| 39 'inputs': [ | 39 'inputs': [ |
| 40 '$(OutDir)\\initial\\chrome.dll', | 40 '$(OutDir)\\initial\\<(chrome_main_dll_product_name).dll', |
| 41 ], | 41 ], |
| 42 'outputs': [ | 42 'outputs': [ |
| 43 '$(OutDir)\\chrome.dll', | 43 '$(OutDir)\\<(chrome_main_dll_product_name).dll', |
| 44 ], | 44 ], |
| 45 'action': ['tools\\build\\win\\hardlink_failsafe.bat', | 45 'action': ['tools\\build\\win\\hardlink_failsafe.bat', |
| 46 '$(OutDir)\\initial\\chrome.dll', | 46 '$(OutDir)\\initial\\<(chrome_main_dll_product_name
).dll', |
| 47 '$(OutDir)\\chrome.dll'], | 47 '$(OutDir)\\<(chrome_main_dll_product_name).dll'], |
| 48 }, | 48 }, |
| 49 ], | 49 ], |
| 50 'conditions': [ | 50 'conditions': [ |
| 51 # Only hardlink pdb if we're generating debug info. | 51 # Only hardlink pdb if we're generating debug info. |
| 52 ['fastbuild==0 or win_z7!=0', { | 52 ['fastbuild==0 or win_z7!=0', { |
| 53 'actions': [ | 53 'actions': [ |
| 54 { | 54 { |
| 55 'action_name': 'hardlink_pdb_to_output', | 55 'action_name': 'hardlink_pdb_to_output', |
| 56 'inputs': [ | 56 'inputs': [ |
| 57 # Not the pdb, since gyp doesn't know about it | 57 # Not the pdb, since gyp doesn't know about it |
| 58 '$(OutDir)\\initial\\chrome.dll', | 58 '$(OutDir)\\initial\\<(chrome_main_dll_product_name).dll
', |
| 59 ], | 59 ], |
| 60 'outputs': [ | 60 'outputs': [ |
| 61 '$(OutDir)\\chrome.dll.pdb', | 61 '$(OutDir)\\<(chrome_main_dll_product_name).dll.pdb', |
| 62 ], | 62 ], |
| 63 'action': ['tools\\build\\win\\hardlink_failsafe.bat', | 63 'action': ['tools\\build\\win\\hardlink_failsafe.bat', |
| 64 '$(OutDir)\\initial\\chrome.dll.pdb', | 64 '$(OutDir)\\initial\\<(chrome_main_dll_product_
name).pdb', |
| 65 '$(OutDir)\\chrome.dll.pdb'], | 65 '$(OutDir)\\<(chrome_main_dll_product_name).pdb
'], |
| 66 } | 66 } |
| 67 ] | 67 ] |
| 68 }] | 68 }] |
| 69 ], | 69 ], |
| 70 }], | 70 }], |
| 71 ] | 71 ] |
| 72 }, | 72 }, |
| 73 { | 73 { |
| 74 'target_name': 'chrome_main_dll', | 74 'target_name': '<(chrome_main_dll_target_name)', |
| 75 'type': 'shared_library', | 75 'type': 'shared_library', |
| 76 'variables': { | 76 'variables': { |
| 77 'enable_wexit_time_destructors': 1, | 77 'enable_wexit_time_destructors': 1, |
| 78 }, | 78 }, |
| 79 'dependencies': [ | 79 'dependencies': [ |
| 80 '<@(chromium_browser_dependencies)', | 80 '<@(chromium_browser_dependencies)', |
| 81 '../components/components.gyp:policy', | 81 '../components/components.gyp:policy', |
| 82 '../content/content.gyp:content_app_browser', | 82 '../content/content.gyp:content_app_browser', |
| 83 ], | 83 ], |
| 84 'conditions': [ | 84 'conditions': [ |
| 85 ['OS=="win"', { | 85 ['OS=="win"', { |
| 86 'dependencies': [ | 86 'dependencies': [ |
| 87 '<(DEPTH)/chrome_elf/chrome_elf.gyp:chrome_elf', | 87 '<(DEPTH)/chrome_elf/chrome_elf.gyp:chrome_elf', |
| 88 ], | 88 ], |
| 89 }], | 89 }], |
| 90 # This ugly hack is required to make sure that the instrumented DLL |
| 91 # gets linked before trying to link the optimized one. |
| 92 # ltcg_value==3 corresponds to the /LTCG:PGOPTIMIZE option. |
| 93 # TODO(sebmarchand): Find a cleaner way to express this dependency. |
| 94 ['OS=="win" and chrome_pgo==1 and ltcg_value==3', { |
| 95 'dependencies': [ |
| 96 'chrome_pgo_profile', |
| 97 ], |
| 98 }], |
| 90 ['use_aura==1', { | 99 ['use_aura==1', { |
| 91 'dependencies': [ | 100 'dependencies': [ |
| 92 '../ui/compositor/compositor.gyp:compositor', | 101 '../ui/compositor/compositor.gyp:compositor', |
| 93 ], | 102 ], |
| 94 }], | 103 }], |
| 95 ['OS=="win" and target_arch=="ia32"', { | 104 ['OS=="win" and target_arch=="ia32"', { |
| 96 # Add a dependency to custom import library for user32 delay | 105 # Add a dependency to custom import library for user32 delay |
| 97 # imports only in x86 builds. | 106 # imports only in x86 builds. |
| 98 'dependencies': [ | 107 'dependencies': [ |
| 99 'chrome_user32_delay_imports', | 108 'chrome_user32_delay_imports', |
| 100 ], | 109 ], |
| 101 },], | 110 },], |
| 102 ['OS=="win"', { | 111 ['OS=="win"', { |
| 103 'product_name': 'chrome', | 112 'product_name': '<(chrome_main_dll_product_name)', |
| 104 'dependencies': [ | 113 'dependencies': [ |
| 105 # On Windows, link the dependencies (libraries) that make | 114 # On Windows, link the dependencies (libraries) that make |
| 106 # up actual Chromium functionality into this .dll. | 115 # up actual Chromium functionality into this .dll. |
| 107 'chrome_version_resources', | 116 'chrome_version_resources', |
| 108 '../chrome/chrome_resources.gyp:chrome_unscaled_resources', | 117 '../chrome/chrome_resources.gyp:chrome_unscaled_resources', |
| 109 '../crypto/crypto.gyp:crypto', | 118 '../crypto/crypto.gyp:crypto', |
| 110 '../net/net.gyp:net_resources', | 119 '../net/net.gyp:net_resources', |
| 111 '../ui/views/views.gyp:views', | 120 '../ui/views/views.gyp:views', |
| 112 '../webkit/webkit_resources.gyp:webkit_resources', | 121 '../webkit/webkit_resources.gyp:webkit_resources', |
| 113 ], | 122 ], |
| (...skipping 26 matching lines...) Expand all Loading... |
| 140 }, | 149 }, |
| 141 }, | 150 }, |
| 142 'msvs_settings': { | 151 'msvs_settings': { |
| 143 'VCLinkerTool': { | 152 'VCLinkerTool': { |
| 144 'BaseAddress': '0x01c30000', | 153 'BaseAddress': '0x01c30000', |
| 145 'ImportLibrary': '$(OutDir)\\lib\\chrome_dll.lib', | 154 'ImportLibrary': '$(OutDir)\\lib\\chrome_dll.lib', |
| 146 # Set /SUBSYSTEM:WINDOWS for chrome.dll (for consistency). | 155 # Set /SUBSYSTEM:WINDOWS for chrome.dll (for consistency). |
| 147 'SubSystem': '2', | 156 'SubSystem': '2', |
| 148 'conditions': [ | 157 'conditions': [ |
| 149 ['incremental_chrome_dll==1', { | 158 ['incremental_chrome_dll==1', { |
| 150 'OutputFile': '$(OutDir)\\initial\\chrome.dll', | 159 'OutputFile': '$(OutDir)\\initial\\<(chrome_main_dll_produ
ct_name)', |
| 151 'UseLibraryDependencyInputs': "true", | 160 'UseLibraryDependencyInputs': "true", |
| 152 }], | 161 }], |
| 153 ['target_arch=="ia32"', { | 162 ['target_arch=="ia32"', { |
| 154 # Link against the XP-constrained user32 import library | 163 # Link against the XP-constrained user32 import library |
| 155 # instead of the platform-SDK provided one to avoid | 164 # instead of the platform-SDK provided one to avoid |
| 156 # inadvertently taking dependencies on post-XP user32 | 165 # inadvertently taking dependencies on post-XP user32 |
| 157 # exports. | 166 # exports. |
| 158 'AdditionalDependencies!': [ | 167 'AdditionalDependencies!': [ |
| 159 'user32.lib', | 168 'user32.lib', |
| 160 ], | 169 ], |
| (...skipping 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 213 ['enable_printing!=0', { | 222 ['enable_printing!=0', { |
| 214 'dependencies': [ | 223 'dependencies': [ |
| 215 '../printing/printing.gyp:printing', | 224 '../printing/printing.gyp:printing', |
| 216 ], | 225 ], |
| 217 }], | 226 }], |
| 218 ['component!="shared_library"', { # http://crbug.com/339215 | 227 ['component!="shared_library"', { # http://crbug.com/339215 |
| 219 'dependencies': [ | 228 'dependencies': [ |
| 220 'chrome_dll_pdb_workaround', | 229 'chrome_dll_pdb_workaround', |
| 221 ], | 230 ], |
| 222 }], | 231 }], |
| 232 ['chrome_pgo==1', { |
| 233 'msvs_settings': { |
| 234 'VCLinkerTool': { |
| 235 'LinkTimeCodeGeneration': '<(ltcg_value)', |
| 236 'ProfileGuidedDatabase': '$(OutDir)\\chrome.pgd', |
| 237 }, |
| 238 }, |
| 239 }], |
| 223 ] | 240 ] |
| 224 }], | 241 }], |
| 225 ['chrome_multiple_dll==1', { | 242 ['chrome_multiple_dll==1', { |
| 226 'defines': [ | 243 'defines': [ |
| 227 'CHROME_MULTIPLE_DLL_BROWSER', | 244 'CHROME_MULTIPLE_DLL_BROWSER', |
| 228 ], | 245 ], |
| 229 }, { | 246 }, { |
| 230 'dependencies': [ | 247 'dependencies': [ |
| 231 '<@(chromium_child_dependencies)', | 248 '<@(chromium_child_dependencies)', |
| 232 '../content/content.gyp:content_app_both', | 249 '../content/content.gyp:content_app_both', |
| (...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 305 ], | 322 ], |
| 306 }], # mac_breakpad_compiled_in | 323 }], # mac_breakpad_compiled_in |
| 307 ['internal_pdf', { | 324 ['internal_pdf', { |
| 308 'dependencies': [ | 325 'dependencies': [ |
| 309 '../pdf/pdf.gyp:pdf', | 326 '../pdf/pdf.gyp:pdf', |
| 310 ], | 327 ], |
| 311 }], | 328 }], |
| 312 ], # conditions | 329 ], # conditions |
| 313 }], # OS=="mac" | 330 }], # OS=="mac" |
| 314 ], # conditions | 331 ], # conditions |
| 315 }, # target chrome_main_dll | 332 }, # target <(chrome_main_dll_target_name) |
| 316 ], # targets | 333 ], # targets |
| 317 }], # OS=="mac" or OS=="win" | 334 }], # OS=="mac" or OS=="win" |
| 318 ['OS=="win"', { | 335 ['OS=="win"', { |
| 319 'targets': [ | 336 'targets': [ |
| 320 { | 337 { |
| 321 # This target is only depended upon on Windows. | 338 # This target is only depended upon on Windows. |
| 322 'target_name': 'chrome_dll_pdb_workaround', | 339 'target_name': '<(chrome_dll_target_name)_pdb_workaround', |
| 323 'type': 'static_library', | 340 'type': 'static_library', |
| 324 'sources': [ 'empty_pdb_workaround.cc' ], | 341 'sources': [ 'empty_pdb_workaround.cc' ], |
| 325 'conditions': [ | 342 'conditions': [ |
| 326 ['fastbuild==0 or win_z7!=0', { | 343 ['fastbuild==0 or win_z7!=0', { |
| 327 'msvs_settings': { | 344 'msvs_settings': { |
| 328 'VCCLCompilerTool': { | 345 'VCCLCompilerTool': { |
| 329 # This *in the compile phase* must match the pdb name that's | 346 # This *in the compile phase* must match the pdb name that's |
| 330 # output by the final link. See empty_pdb_workaround.cc for | 347 # output by the final link. See empty_pdb_workaround.cc for |
| 331 # more details. | 348 # more details. |
| 332 'DebugInformationFormat': '3', | 349 'DebugInformationFormat': '3', |
| 333 'ProgramDataBaseFileName': '<(PRODUCT_DIR)/chrome.dll.pdb', | 350 'ProgramDataBaseFileName': |
| 351 '<(PRODUCT_DIR)/<(chrome_main_dll_product_name).dll.pdb', |
| 334 }, | 352 }, |
| 335 }, | 353 }, |
| 336 }], | 354 }], |
| 337 ], | 355 ], |
| 338 }, | 356 }, |
| 339 ], | 357 ], |
| 340 }], | 358 }], |
| 341 ['chrome_multiple_dll', { | 359 ['chrome_multiple_dll', { |
| 342 'targets': [ | 360 'targets': [ |
| 343 { | 361 { |
| 344 'target_name': 'chrome_child_dll', | 362 'target_name': '<(chrome_child_dll_target_name)', |
| 345 'type': 'shared_library', | 363 'type': 'shared_library', |
| 346 'product_name': 'chrome_child', | 364 'product_name': '<(chrome_child_dll_product_name)', |
| 347 'variables': { | 365 'variables': { |
| 348 'enable_wexit_time_destructors': 1, | 366 'enable_wexit_time_destructors': 1, |
| 349 }, | 367 }, |
| 350 'dependencies': [ | 368 'dependencies': [ |
| 351 '<@(chromium_child_dependencies)', | 369 '<@(chromium_child_dependencies)', |
| 352 '../content/content.gyp:content_app_child', | 370 '../content/content.gyp:content_app_child', |
| 353 '../content/content.gyp:content_worker', | 371 '../content/content.gyp:content_worker', |
| 354 'chrome_version_resources', | 372 'chrome_version_resources', |
| 355 'policy_path_parser', | 373 'policy_path_parser', |
| 356 ], | 374 ], |
| 357 'defines': [ | 375 'defines': [ |
| 358 'CHROME_MULTIPLE_DLL_CHILD', | 376 'CHROME_MULTIPLE_DLL_CHILD', |
| 359 ], | 377 ], |
| 360 'sources': [ | 378 'sources': [ |
| 361 '<(SHARED_INTERMEDIATE_DIR)/chrome_version/chrome_dll_version.rc', | 379 '<(SHARED_INTERMEDIATE_DIR)/chrome_version/chrome_dll_version.rc', |
| 362 'app/chrome_main.cc', | 380 'app/chrome_main.cc', |
| 363 'app/chrome_main_delegate.cc', | 381 'app/chrome_main_delegate.cc', |
| 364 'app/chrome_main_delegate.h', | 382 'app/chrome_main_delegate.h', |
| 365 ], | 383 ], |
| 366 'conditions': [ | 384 'conditions': [ |
| 367 ['OS=="win"', { | 385 ['OS=="win"', { |
| 368 'dependencies': [ | 386 'dependencies': [ |
| 369 '<(DEPTH)/chrome_elf/chrome_elf.gyp:chrome_elf', | 387 '<(DEPTH)/chrome_elf/chrome_elf.gyp:chrome_elf', |
| 370 ], | 388 ], |
| 389 'conditions': [ |
| 390 ['chrome_pgo==1', { |
| 391 'msvs_settings': { |
| 392 'VCLinkerTool': { |
| 393 'LinkTimeCodeGeneration': '<(ltcg_value)', |
| 394 'ProfileGuidedDatabase': '$(OutDir)\\chrome_child.pgd', |
| 395 }, |
| 396 }, |
| 397 }], |
| 398 ], |
| 399 }], |
| 400 # This ugly hack is required to make sure that the instrumented DLL |
| 401 # gets linked before trying to link the optimized one. |
| 402 # ltcg_value==3 corresponds to the /LTCG:PGOPTIMIZE option. |
| 403 # TODO(sebmarchand): Find a cleaner way to express this dependency. |
| 404 ['OS=="win" and chrome_pgo==1 and ltcg_value==3', { |
| 405 'dependencies': [ |
| 406 'chrome_pgo_profile', |
| 407 ], |
| 371 }], | 408 }], |
| 372 ], | 409 ], |
| 373 }, # target chrome_child_dll | 410 }, # target <(chrome_child_dll_target_name) |
| 374 ], | 411 ], |
| 375 }], | 412 }], |
| 376 ], | 413 ], |
| 377 } | 414 } |
| OLD | NEW |