| OLD | NEW |
| (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 'target_defaults': { |
| 6 'variables': { |
| 7 'chrome_dll_target': 0, |
| 8 }, |
| 9 'target_conditions': [ |
| 10 ['chrome_dll_target==1', { |
| 11 'conditions': [ |
| 12 ['OS=="win"', { |
| 13 'include_dirs': [ |
| 14 'third_party/wtl/include', |
| 15 ], |
| 16 'defines': [ |
| 17 'CHROME_DLL', |
| 18 'BROWSER_DLL', |
| 19 'RENDERER_DLL', |
| 20 'PLUGIN_DLL', |
| 21 ], |
| 22 'msvs_settings': { |
| 23 'VCLinkerTool': { |
| 24 'BaseAddress': '0x01c30000', |
| 25 'DelayLoadDLLs': [ |
| 26 'crypt32.dll', |
| 27 'cryptui.dll', |
| 28 'winhttp.dll', |
| 29 'wininet.dll', |
| 30 'wsock32.dll', |
| 31 'ws2_32.dll', |
| 32 'winspool.drv', |
| 33 'comdlg32.dll', |
| 34 'imagehlp.dll', |
| 35 'urlmon.dll', |
| 36 'imm32.dll', |
| 37 'iphlpapi.dll', |
| 38 ], |
| 39 # Set /SUBSYSTEM:WINDOWS for chrome.dll (for consistency). |
| 40 'SubSystem': '2', |
| 41 }, |
| 42 'VCManifestTool': { |
| 43 'AdditionalManifestFiles': '$(ProjectDir)\\app\\chrome.dll.manif
est', |
| 44 }, |
| 45 }, |
| 46 'configurations': { |
| 47 'Debug_Base': { |
| 48 'msvs_settings': { |
| 49 'VCLinkerTool': { |
| 50 'LinkIncremental': '<(msvs_large_module_debug_link_mode)', |
| 51 }, |
| 52 }, |
| 53 }, |
| 54 }, |
| 55 }], # OS=="win" |
| 56 ], # conditions |
| 57 }], |
| 58 ], |
| 59 }, |
| 60 'conditions': [ |
| 61 ['OS=="mac" or OS=="win"', { |
| 62 'targets': [ |
| 63 { |
| 64 'target_name': 'chrome_dll', |
| 65 'type': 'shared_library', |
| 66 'variables': { |
| 67 'chrome_dll_target': 1, |
| 68 }, |
| 69 'dependencies': [ |
| 70 '<@(chromium_dependencies)', |
| 71 ], |
| 72 'conditions': [ |
| 73 ['OS=="win"', { |
| 74 'product_name': 'chrome', |
| 75 'msvs_guid': 'C0A7EE2C-2A6D-45BE-BA78-6D006FDF52D9', |
| 76 'dependencies': [ |
| 77 # On Windows, link the dependencies (libraries) that make |
| 78 # up actual Chromium functionality into this .dll. |
| 79 'chrome_dll_version', |
| 80 'chrome_resources', |
| 81 'installer/installer.gyp:installer_util_strings', |
| 82 'worker', |
| 83 '../printing/printing.gyp:printing', |
| 84 '../net/net.gyp:net_resources', |
| 85 '../build/util/support/support.gyp:*', |
| 86 '../third_party/cld/cld.gyp:cld', |
| 87 '../views/views.gyp:views', |
| 88 '../webkit/webkit.gyp:webkit_resources', |
| 89 '../gears/gears.gyp:gears', |
| 90 ], |
| 91 'sources': [ |
| 92 'app/chrome_dll.rc', |
| 93 'app/chrome_dll_main.cc', |
| 94 'app/chrome_dll_resource.h', |
| 95 '<(SHARED_INTERMEDIATE_DIR)/chrome_dll_version/chrome_dll_versio
n.rc', |
| 96 |
| 97 '../webkit/glue/resources/aliasb.cur', |
| 98 '../webkit/glue/resources/cell.cur', |
| 99 '../webkit/glue/resources/col_resize.cur', |
| 100 '../webkit/glue/resources/copy.cur', |
| 101 '../webkit/glue/resources/row_resize.cur', |
| 102 '../webkit/glue/resources/vertical_text.cur', |
| 103 '../webkit/glue/resources/zoom_in.cur', |
| 104 '../webkit/glue/resources/zoom_out.cur', |
| 105 |
| 106 # TODO: It would be nice to have these pulled in |
| 107 # automatically from direct_dependent_settings in |
| 108 # their various targets (net.gyp:net_resources, etc.), |
| 109 # but that causes errors in other targets when |
| 110 # resulting .res files get referenced multiple times. |
| 111 '<(SHARED_INTERMEDIATE_DIR)/app/app_resources/app_resources.rc', |
| 112 '<(SHARED_INTERMEDIATE_DIR)/chrome/browser_resources.rc', |
| 113 '<(SHARED_INTERMEDIATE_DIR)/chrome/common_resources.rc', |
| 114 '<(SHARED_INTERMEDIATE_DIR)/chrome/renderer_resources.rc', |
| 115 '<(SHARED_INTERMEDIATE_DIR)/chrome/theme_resources.rc', |
| 116 '<(SHARED_INTERMEDIATE_DIR)/net/net_resources.rc', |
| 117 '<(SHARED_INTERMEDIATE_DIR)/webkit/webkit_resources.rc', |
| 118 |
| 119 # TODO(sgk): left-over from pre-gyp build, figure out |
| 120 # if we still need them and/or how to update to gyp. |
| 121 #'app/check_dependents.bat', |
| 122 #'app/chrome.dll.deps', |
| 123 ], |
| 124 'msvs_settings': { |
| 125 'VCLinkerTool': { |
| 126 'ImportLibrary': '$(OutDir)\\lib\\chrome_dll.lib', |
| 127 'ProgramDatabaseFile': '$(OutDir)\\chrome_dll.pdb', |
| 128 }, |
| 129 }, |
| 130 }], # OS=="win" |
| 131 ['OS=="mac"', { |
| 132 # The main browser executable's name is <(mac_product_name). |
| 133 # Certain things will get confused if two modules in the |
| 134 # executable share the same name, so append " Framework" to the |
| 135 # product_name used for the framework. This will result in |
| 136 # a name like "Chromium Framework.framework". |
| 137 'product_name': '<(mac_product_name) Framework', |
| 138 'mac_bundle': 1, |
| 139 'xcode_settings': { |
| 140 'CHROMIUM_BUNDLE_ID': '<(mac_bundle_id)', |
| 141 |
| 142 # The dylib versions are of the form a[.b[.c]], where a is a |
| 143 # 16-bit unsigned integer, and b and c are 8-bit unsigned |
| 144 # integers. Any missing component is taken to be 0. The |
| 145 # best mapping from product version numbers into this scheme |
| 146 # is to just use the build and patch numbers. There is no |
| 147 # ambiguity in this scheme because the build number is |
| 148 # guaranteed unique even across distinct major and minor |
| 149 # version numbers. These settings correspond to |
| 150 # -compatibility_version and -current_version. |
| 151 'DYLIB_COMPATIBILITY_VERSION': '<(version_build_patch)', |
| 152 'DYLIB_CURRENT_VERSION': '<(version_build_patch)', |
| 153 |
| 154 # The framework is placed within the .app's versioned |
| 155 # directory. DYLIB_INSTALL_NAME_BASE and |
| 156 # LD_DYLIB_INSTALL_NAME affect -install_name. |
| 157 'DYLIB_INSTALL_NAME_BASE': |
| 158 '@executable_path/../Versions/<(version_full)', |
| 159 # See tools/build/mac/copy_framework_unversioned for |
| 160 # information on LD_DYLIB_INSTALL_NAME. |
| 161 'LD_DYLIB_INSTALL_NAME': |
| 162 '$(DYLIB_INSTALL_NAME_BASE:standardizepath)/$(WRAPPER_NAME)/
$(PRODUCT_NAME)', |
| 163 |
| 164 'INFOPLIST_FILE': 'app/framework-Info.plist', |
| 165 |
| 166 # Define the order of symbols within the framework. This |
| 167 # sets -order_file. |
| 168 'ORDER_FILE': 'app/framework.order', |
| 169 }, |
| 170 'sources': [ |
| 171 'app/chrome_dll_main.cc', |
| 172 'app/chrome_dll_resource.h', |
| 173 'app/chrome_exe_main.mm', |
| 174 ], |
| 175 # TODO(mark): Come up with a fancier way to do this. It should |
| 176 # only be necessary to list framework-Info.plist once, not the |
| 177 # three times it is listed here. |
| 178 'mac_bundle_resources': [ |
| 179 'app/framework-Info.plist', |
| 180 'app/nibs/About.xib', |
| 181 'app/nibs/AboutIPC.xib', |
| 182 'app/nibs/BookmarkAllTabs.xib', |
| 183 'app/nibs/BookmarkBar.xib', |
| 184 'app/nibs/BookmarkBubble.xib', |
| 185 'app/nibs/BookmarkEditor.xib', |
| 186 'app/nibs/BookmarkNameFolder.xib', |
| 187 'app/nibs/BrowserWindow.xib', |
| 188 'app/nibs/ClearBrowsingData.xib', |
| 189 'app/nibs/DownloadItem.xib', |
| 190 'app/nibs/DownloadShelf.xib', |
| 191 'app/nibs/EditSearchEngine.xib', |
| 192 'app/nibs/ExtensionShelf.xib', |
| 193 'app/nibs/FindBar.xib', |
| 194 'app/nibs/FirstRunDialog.xib', |
| 195 'app/nibs/FontLanguageSettings.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_Base': { |
| 509 'msvs_target_platform': 'x64', |
| 510 }, |
| 511 }, |
| 512 }, # target chrome_dll |
| 513 ], |
| 514 }], |
| 515 ], |
| 516 } |
| OLD | NEW |