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 'targets': [ 7 { 8 'target_name': 'chrome', 9 'type': 'none', 10 'dependencies': [ 'chrome_initial', ], 11 'conditions': [ 12 ['OS == "win"', { 13 'actions': [ 14 { 15 'variables': { 16 'reorder_py_path': '<(DEPTH)/build/win/reorder-imports.py', 17 # See comment in chrome_dll.gypi in the hardlink_to_output 18 # target for why this cannot be 'initial' like the DLL. 19 'exe_input_path':'$(OutDir)\\initialexe', 20 'exe_output_path':'<(PRODUCT_DIR)', 21 }, 22 'action_name': 'reorder_imports', 23 'inputs': [ 24 '<(reorder_py_path)', 25 '$(OutDir)\\initialexe\\chrome.exe', 26 ], 27 'outputs': [ 28 '<(PRODUCT_DIR)\\chrome.exe', 29 '<(PRODUCT_DIR)\\chrome.exe.pdb', 30 ], 31 'action': [ 32 'python', 33 '<(reorder_py_path)', 34 '-i', '<(exe_input_path)', 35 '-o', '<(exe_output_path)', 36 '-a', '<(target_arch)', 37 ], 38 'message': 'Reordering Imports', 39 }, 40 ], 41 }], 42 ], 43 }, 44 { 45 'target_name': 'chrome_initial', 46 'type': 'executable', 47 # Name the exe chrome.exe, not chrome_initial.exe. 48 'product_name': 'chrome', 49 'mac_bundle': 1, 50 'variables': { 51 'use_system_xdg_utils%': 0, 52 'enable_wexit_time_destructors': 1, 53 }, 54 'sources': [ 55 'app/chrome_exe_main_aura.cc', 56 'app/chrome_exe_main_mac.cc', 57 'app/chrome_exe_main_win.cc', 58 'app/chrome_exe_resource.h', 59 'app/client_util.cc', 60 'app/client_util.h', 61 'app/signature_validator_win.cc', 62 'app/signature_validator_win.h', 63 '<(DEPTH)/content/app/startup_helper_win.cc', 64 '<(DEPTH)/content/public/common/content_switches.cc', 65 ], 66 'mac_bundle_resources': [ 67 'app/app-Info.plist', 68 ], 69 # TODO(mark): Come up with a fancier way to do this. It should only 70 # be necessary to list app-Info.plist once, not the three times it is 71 # listed here. 72 'mac_bundle_resources!': [ 73 'app/app-Info.plist', 74 ], 75 'xcode_settings': { 76 'CHROMIUM_STRIP_SAVE_FILE': 'app/app.saves', 77 'INFOPLIST_FILE': 'app/app-Info.plist', 78 }, 79 'conditions': [ 80 ['order_profiling!=0 and (chromeos==1 or OS=="linux")', { 81 'dependencies' : [ 82 '../tools/cygprofile/cygprofile.gyp:cygprofile', 83 ], 84 }], 85 ['order_text_section!=""', { 86 'target_conditions' : [ 87 ['_toolset=="target"', { 88 'ldflags': [ 89 '-Wl,-section-ordering-file=<(order_text_section)' ], 90 }], 91 ] 92 }], 93 ['OS == "win"', { 94 'sources!': [ 95 # We still want the _win entry point for sandbox, etc. 96 'app/chrome_exe_main_aura.cc', 97 ], 98 'dependencies': [ 99 '../ui/gfx/gfx.gyp:gfx', 100 ], 101 }], 102 ['OS == "android"', { 103 # Don't put the 'chrome' target in 'all' on android 104 'suppress_wildcard': 1, 105 }], 106 ['os_posix == 1 and OS != "mac" and OS != "android"', { 107 'actions': [ 108 { 109 'action_name': 'manpage', 110 'conditions': [ 111 [ 'branding == "Chrome"', { 112 'variables': { 113 'name': 'Google Chrome', 114 'filename': 'google-chrome', 115 'confdir': 'google-chrome', 116 }, 117 }, { # else branding!="Chrome" 118 'variables': { 119 'name': 'Chromium', 120 'filename': 'chromium-browser', 121 'confdir': 'chromium', 122 }, 123 }], 124 ], 125 'inputs': [ 126 'tools/build/linux/sed.sh', 127 'app/resources/manpage.1.in', 128 ], 129 'outputs': [ 130 '<(PRODUCT_DIR)/chrome.1', 131 ], 132 'action': [ 133 'tools/build/linux/sed.sh', 134 'app/resources/manpage.1.in', 135 '<@(_outputs)', 136 '-e', 's/@@NAME@@/<(name)/', 137 '-e', 's/@@FILENAME@@/<(filename)/', 138 '-e', 's/@@CONFDIR@@/<(confdir)/', 139 ], 140 'message': 'Generating manpage' 141 }, 142 ], 143 'conditions': [ 144 ['use_allocator!="none"', { 145 'dependencies': [ 146 '<(allocator_target)', 147 ], 148 }, 149 ], 150 ['profiling==0 and linux_disable_pie==0', { 151 'ldflags': [ 152 '-pie', 153 ], 154 }], 155 ['use_system_xdg_utils==0', { 156 'copies': [ 157 { 158 'destination': '<(PRODUCT_DIR)', 159 'files': ['tools/build/linux/chrome-wrapper', 160 '../third_party/xdg-utils/scripts/xdg-mime', 161 '../third_party/xdg-utils/scripts/xdg-settings', 162 ], 163 # The wrapper script above may need to generate a .desktop 164 # file, which requires an icon. So, copy one next to the 165 # script. 166 'conditions': [ 167 ['branding=="Chrome"', { 168 'files': ['app/theme/google_chrome/product_logo_48.png'] 169 }, { # else: 'branding!="Chrome" 170 'files': ['app/theme/chromium/product_logo_48.png'] 171 }], 172 ], 173 }, 174 ], 175 }], 176 # x11 build. Needed for chrome_main.cc initialization of libraries. 177 ['use_x11==1', { 178 'dependencies': [ 179 '../build/linux/system.gyp:x11', 180 '../build/linux/system.gyp:xext', 181 ], 182 }], 183 ], 184 'sources': [ 185 'app/chrome_dll_resource.h', 186 'app/chrome_main.cc', 187 'app/chrome_main_delegate.cc', 188 'app/chrome_main_delegate.h', 189 ], 190 'dependencies': [ 191 # On Linux, link the dependencies (libraries) that make up actual 192 # Chromium functionality directly into the executable. 193 '<@(chromium_browser_dependencies)', 194 '<@(chromium_child_dependencies)', 195 '../content/content.gyp:content_app_both', 196 # Needed for chrome_main.cc initialization of libraries. 197 '../build/linux/system.gyp:pangocairo', 198 # Needed to use the master_preferences functions 199 'installer_util', 200 ], 201 }], 202 ['OS=="mac"', { 203 # 'branding' is a variable defined in common.gypi 204 # (e.g. "Chromium", "Chrome") 205 'conditions': [ 206 ['branding=="Chrome"', { 207 'mac_bundle_resources': [ 208 'app/theme/google_chrome/mac/app.icns', 209 'app/theme/google_chrome/mac/document.icns', 210 'browser/ui/cocoa/applescript/scripting.sdef', 211 ], 212 }, { # else: 'branding!="Chrome" 213 'mac_bundle_resources': [ 214 'app/theme/chromium/mac/app.icns', 215 'app/theme/chromium/mac/document.icns', 216 'browser/ui/cocoa/applescript/scripting.sdef', 217 ], 218 }], 219 ['mac_breakpad==1', { 220 'variables': { 221 # A real .dSYM is needed for dump_syms to operate on. 222 'mac_real_dsym': 1, 223 }, 224 'xcode_settings': { 225 # With mac_real_dsym set, strip_from_xcode won't be used. 226 # Specify CHROMIUM_STRIP_SAVE_FILE directly to Xcode. 227 'STRIPFLAGS': '-s $(CHROMIUM_STRIP_SAVE_FILE)', 228 }, 229 'dependencies': [ 230 '../breakpad/breakpad.gyp:dump_syms', 231 '../breakpad/breakpad.gyp:symupload', 232 ], 233 # The "Dump Symbols" post-build step is in a target_conditions 234 # block so that it will follow the "Strip If Needed" step if that 235 # is also being used. There is no standard configuration where 236 # both of these steps occur together, but Mark likes to use this 237 # configuration sometimes when testing Breakpad-enabled builds 238 # without the time overhead of creating real .dSYM files. When 239 # both "Dump Symbols" and "Strip If Needed" are present, "Dump 240 # Symbols" must come second because "Strip If Needed" creates 241 # a fake .dSYM that dump_syms needs to fake dump. Since 242 # "Strip If Needed" is added in a target_conditions block in 243 # common.gypi, "Dump Symbols" needs to be in an (always true) 244 # target_conditions block. 245 'target_conditions': [ 246 ['1 == 1', { 247 'postbuilds': [ 248 { 249 'postbuild_name': 'Dump Symbols', 250 'variables': { 251 'dump_product_syms_path': 252 'tools/build/mac/dump_product_syms', 253 }, 254 'action': ['<(dump_product_syms_path)', 255 '<(branding)'], 256 }, 257 ], 258 }], 259 ], 260 }], # mac_breakpad 261 ], 262 'product_name': '<(mac_product_name)', 263 'xcode_settings': { 264 # chrome/app/app-Info.plist has: 265 # CFBundleIdentifier of CHROMIUM_BUNDLE_ID 266 # CFBundleName of CHROMIUM_SHORT_NAME 267 # CFBundleSignature of CHROMIUM_CREATOR 268 # Xcode then replaces these values with the branded values we set 269 # as settings on the target. 270 'CHROMIUM_BUNDLE_ID': '<(mac_bundle_id)', 271 'CHROMIUM_CREATOR': '<(mac_creator)', 272 'CHROMIUM_SHORT_NAME': '<(branding)', 273 }, 274 'dependencies': [ 275 '../components/components.gyp:chrome_manifest_bundle', 276 'helper_app', 277 'infoplist_strings_tool', 278 'interpose_dependency_shim', 279 # On Mac, make sure we've built chrome_dll, which contains all of 280 # the library code with Chromium functionality. 281 'chrome_dll', 282 ], 283 'mac_bundle_resources': [ 284 '<(PRODUCT_DIR)/<(mac_bundle_id).manifest', 285 ], 286 'actions': [ 287 { 288 # Generate the InfoPlist.strings file 289 'action_name': 'Generate InfoPlist.strings files', 290 'variables': { 291 'tool_path': '<(PRODUCT_DIR)/infoplist_strings_tool', 292 # Unique dir to write to so the [lang].lproj/InfoPlist.strings 293 # for the main app and the helper app don't name collide. 294 'output_path': '<(INTERMEDIATE_DIR)/app_infoplist_strings', 295 }, 296 'conditions': [ 297 [ 'branding == "Chrome"', { 298 'variables': { 299 'branding_name': 'google_chrome_strings', 300 }, 301 }, { # else branding!="Chrome" 302 'variables': { 303 'branding_name': 'chromium_strings', 304 }, 305 }], 306 ], 307 'inputs': [ 308 '<(tool_path)', 309 '<(version_path)', 310 # TODO: remove this helper when we have loops in GYP 311 '>!@(<(apply_locales_cmd) \'<(grit_out_dir)/<(branding_name)_ZZLOCALE.pak\' <(locales))', 312 ], 313 'outputs': [ 314 # TODO: remove this helper when we have loops in GYP 315 '>!@(<(apply_locales_cmd) -d \'<(output_path)/ZZLOCALE.lproj/InfoPlist.strings\' <(locales))', 316 ], 317 'action': [ 318 '<(tool_path)', 319 '-b', '<(branding_name)', 320 '-v', '<(version_path)', 321 '-g', '<(grit_out_dir)', 322 '-o', '<(output_path)', 323 '-t', 'main', 324 '<@(locales)', 325 ], 326 'message': 'Generating the language InfoPlist.strings files', 327 'process_outputs_as_mac_bundle_resources': 1, 328 }, 329 ], 330 'copies': [ 331 { 332 'destination': '<(PRODUCT_DIR)/<(mac_product_name).app/Contents/Versions/<(version_full)', 333 'files': [ 334 '<(PRODUCT_DIR)/<(mac_product_name) Helper.app', 335 '<(PRODUCT_DIR)/libplugin_carbon_interpose.dylib', 336 ], 337 }, 338 ], 339 'postbuilds': [ 340 { 341 'postbuild_name': 'Copy <(mac_product_name) Framework.framework', 342 'action': [ 343 '../build/mac/copy_framework_unversioned.sh', 344 '${BUILT_PRODUCTS_DIR}/<(mac_product_name) Framework.framework', 345 '${BUILT_PRODUCTS_DIR}/${CONTENTS_FOLDER_PATH}/Versions/<(version_full)', 346 ], 347 }, 348 { 349 # Modify the Info.plist as needed. The script explains why this 350 # is needed. This is also done in the helper_app and chrome_dll 351 # targets. Use --breakpad=0 to not include any Breakpad 352 # information; that all goes into the framework's Info.plist. 353 # Keystone information is included if Keystone is enabled. The 354 # application reads Keystone keys from this plist and not the 355 # framework's, and the ticket will reference this Info.plist to 356 # determine the tag of the installed product. Use --scm=1 to 357 # include SCM information. 358 'postbuild_name': 'Tweak Info.plist', 359 'action': ['<(tweak_info_plist_path)', 360 '--breakpad=0', 361 '--keystone=<(mac_keystone)', 362 '--scm=1', 363 '--bundle_id=<(mac_bundle_id)'], 364 }, 365 { 366 'postbuild_name': 'Clean up old versions', 367 'action': [ 368 'tools/build/mac/clean_up_old_versions', 369 '<(version_full)' 370 ], 371 }, 372 { 373 # This postbuid step is responsible for creating the following 374 # helpers: 375 # 376 # For unofficial Chromium branding, Chromium Helper EH.app and 377 # Chromium Helper NP.app are created from Chromium Helper.app. 378 # For official Google Chrome branding, Google Chrome Helper 379 # EH.app and Google Chrome Helper NP.app are created from 380 # Google Chrome Helper.app. 381 # 382 # The EH helper is marked for an executable heap. The NP helper 383 # is marked for no PIE (ASLR). 384 # 385 # Normally, applications shipping as part of offical builds with 386 # Google Chrome branding have dsymutil (dwarf-with-dsym, 387 # mac_real_dsym) and dump_syms (mac_breakpad) run on them to 388 # produce a .dSYM bundle and a Breakpad .sym file. This is 389 # unnecessary for the "More Helpers" because they're identical 390 # to the original helper except for the bits in their Mach-O 391 # headers that change to enable or disable special features. 392 # Each .dSYM is identified by UUID stored in a Mach-O file's 393 # LC_UUID load command. Because the "More Helpers" share a UUID 394 # with the original helper, there's no need to run dsymutil 395 # again. All helpers can share the same .dSYM. Special handling 396 # is performed in chrome/tools/build/mac/dump_product_syms to 397 # prepare their Breakpad symbol files. 398 'postbuild_name': 'Make More Helpers', 399 'action': [ 400 '../build/mac/make_more_helpers.sh', 401 'Versions/<(version_full)', 402 '<(mac_product_name)', 403 ], 404 }, 405 { 406 # Make sure there isn't any Objective-C in the browser app's 407 # executable. 408 'postbuild_name': 'Verify No Objective-C', 409 'action': [ 410 '../build/mac/verify_no_objc.sh', 411 ], 412 }, 413 ], # postbuilds 414 }, { # OS != "mac" 415 'conditions': [ 416 # TODO: add a: 417 # 'product_name': 'chromium' 418 # whenever we convert the rest of the infrastructure 419 # (buildbots etc.) to understand the branding gyp define. 420 # NOTE: chrome/app/theme/chromium/BRANDING and 421 # chrome/app/theme/google_chrome/BRANDING have the short name 422 # "chrome" etc.; should we try to extract from there instead? 423 424 # CrOS does this in a separate build step. 425 ['OS=="linux" and chromeos==0 and linux_dump_symbols==1', { 426 'dependencies': [ 427 '../pdf/pdf.gyp:pdf_linux_symbols', 428 ], 429 }], # OS=="linux" and chromeos==0 and linux_dump_symbols==1 430 # Android doesn't use pdfium. 431 ['OS!="android"', { 432 'dependencies': [ 433 # On Mac, this is done in chrome_dll.gypi. 434 '../pdf/pdf.gyp:pdf', 435 ], 436 }], # OS=="android" 437 ], 438 'dependencies': [ 439 '../components/components.gyp:startup_metric_utils', 440 'chrome_resources.gyp:packed_extra_resources', 441 'chrome_resources.gyp:packed_resources', 442 # Copy Flash Player files to PRODUCT_DIR if applicable. Let the .gyp 443 # file decide what to do on a per-OS basis; on Mac, internal plugins 444 # go inside the framework, so this dependency is in chrome_dll.gypi. 445 '../third_party/adobe/flash/flash_player.gyp:flapper_binaries', 446 # Copy CDM files to PRODUCT_DIR if applicable. Let the .gyp 447 # file decide what to do on a per-OS basis; on Mac, internal plugins 448 # go inside the framework, so this dependency is in chrome_dll.gypi. 449 '../third_party/widevine/cdm/widevine_cdm.gyp:widevinecdmadapter', 450 ], 451 }], 452 ['chrome_multiple_dll', { 453 'defines': ['CHROME_MULTIPLE_DLL'], 454 }], 455 ['OS=="mac" and asan==1', { 456 'xcode_settings': { 457 # Override the outer definition of CHROMIUM_STRIP_SAVE_FILE. 458 'CHROMIUM_STRIP_SAVE_FILE': 'app/app_asan.saves', 459 }, 460 }], 461 ['OS=="linux"', { 462 'conditions': [ 463 ['branding=="Chrome"', { 464 'dependencies': [ 465 'linux_installer_configs', 466 ], 467 }], 468 # For now, do not build nacl_helper when disable_nacl=1 469 # http://code.google.com/p/gyp/issues/detail?id=239 470 ['disable_nacl==0', { 471 'dependencies': [ 472 '../native_client/src/trusted/service_runtime/linux/nacl_bootstrap.gyp:nacl_helper_bootstrap', 473 '../components/nacl.gyp:nacl_helper', 474 ], 475 }], 476 ], 477 'dependencies': [ 478 '../sandbox/sandbox.gyp:sandbox', 479 ], 480 }], 481 ['OS=="win"', { 482 'dependencies': [ 483 'chrome_dll', 484 'chrome_nacl_win64', 485 'chrome_process_finder', 486 'chrome_version_resources', 487 'installer_util', 488 'image_pre_reader', 489 '../base/base.gyp:base', 490 '../breakpad/breakpad.gyp:breakpad_handler', 491 '../breakpad/breakpad.gyp:breakpad_sender', 492 '../chrome_elf/chrome_elf.gyp:chrome_elf', 493 '../components/components.gyp:breakpad_component', 494 '../sandbox/sandbox.gyp:sandbox', 495 ], 496 'sources': [ 497 'app/chrome_breakpad_client.cc', 498 'app/chrome_breakpad_client.h', 499 'app/chrome_exe.rc', 500 'common/crash_keys.cc', 501 'common/crash_keys.h', 502 '<(SHARED_INTERMEDIATE_DIR)/chrome_version/chrome_exe_version.rc', 503 ], 504 'msvs_settings': { 505 'VCLinkerTool': { 506 'ImportLibrary': '$(OutDir)\\lib\\chrome_exe.lib', 507 'OutputFile': '$(OutDir)\\initialexe\\chrome.exe', 508 'DelayLoadDLLs': [ 509 'dbghelp.dll', 510 'dwmapi.dll', 511 'uxtheme.dll', 512 'ole32.dll', 513 'oleaut32.dll', 514 ], 515 'AdditionalDependencies': [ 'wintrust.lib' ], 516 'conditions': [ 517 ['asan==0', { 518 # Set /SUBSYSTEM:WINDOWS for chrome.exe itself, except for the 519 # AddressSanitizer build where console output is important. 520 'SubSystem': '2', 521 }], 522 ], 523 }, 524 'VCManifestTool': { 525 'AdditionalManifestFiles': [ 526 '$(ProjectDir)\\app\\chrome.exe.manifest', 527 '<(SHARED_INTERMEDIATE_DIR)/chrome/app/version_assembly/version_assembly.manifest', 528 ], 529 }, 530 }, 531 'conditions': [ 532 ['configuration_policy==1', { 533 'dependencies': [ 534 '<(DEPTH)/components/components.gyp:policy', 535 ], 536 }], 537 ], 538 'actions': [ 539 { 540 'action_name': 'first_run', 541 'inputs': [ 542 'app/FirstRun', 543 ], 544 'outputs': [ 545 '<(PRODUCT_DIR)/First Run', 546 ], 547 'action': ['python', '../build/cp.py', '<@(_inputs)', '<@(_outputs)'], 548 'message': 'Copy first run complete sentinel file', 549 }, 550 { 551 'action_name': 'chrome_exe_manifest', 552 'includes': [ 553 'app/version_assembly/chrome_exe_manifest_action.gypi', 554 ], 555 }, 556 { 557 'action_name': 'version_assembly_manifest', 558 'includes': [ 559 'app/version_assembly/version_assembly_manifest_action.gypi', 560 ], 561 }, 562 ], 563 }, { # 'OS!="win" 564 'sources!': [ 565 'app/client_util.cc', 566 ], 567 }], 568 ['OS=="win" and component=="shared_library"', { 569 'defines': ['COMPILE_CONTENT_STATICALLY'], 570 }], 571 ['OS=="win"', { 572 'dependencies': [ 573 '../win8/metro_driver/metro_driver.gyp:metro_driver', 574 '../win8/delegate_execute/delegate_execute.gyp:*', 575 ], 576 }], 577 ], 578 }, 579 ], 580 'conditions': [ 581 ['OS=="win"', { 582 'targets': [ 583 { 584 'target_name': 'image_pre_reader', 585 'type': 'static_library', 586 'sources': [ 587 'app/image_pre_reader_win.cc', 588 'app/image_pre_reader_win.h', 589 ], 590 'dependencies': [ 591 '../base/base.gyp:base', 592 ], 593 }, 594 ], 595 'conditions': [ 596 ['disable_nacl!=1 and target_arch=="ia32"', { 597 'targets': [ 598 { 599 'target_name': 'chrome_nacl_win64', 600 'type': 'executable', 601 'product_name': 'nacl64', 602 'sources': [ 603 'app/chrome_breakpad_client.cc', 604 'common/crash_keys.cc', 605 'nacl/nacl_exe_win_64.cc', 606 '../content/app/startup_helper_win.cc', 607 '../content/common/sandbox_init_win.cc', 608 '../content/common/sandbox_win.cc', 609 '../content/public/common/content_switches.cc', 610 '../content/public/common/sandboxed_process_launcher_delegate.cc', 611 '<(SHARED_INTERMEDIATE_DIR)/chrome_version/nacl64_exe_version.rc', 612 ], 613 'dependencies': [ 614 'chrome_version_resources', 615 'installer_util_nacl_win64', 616 '../base/base.gyp:base_i18n_nacl_win64', 617 '../base/base.gyp:base_win64', 618 '../base/base.gyp:base_static_win64', 619 '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations_win64', 620 '../breakpad/breakpad.gyp:breakpad_handler_win64', 621 '../breakpad/breakpad.gyp:breakpad_sender_win64', 622 '../components/components.gyp:breakpad_win64', 623 '../chrome/common_constants.gyp:common_constants_win64', 624 '../components/nacl.gyp:nacl_win64', 625 '../crypto/crypto.gyp:crypto_nacl_win64', 626 '../ipc/ipc.gyp:ipc_win64', 627 '../sandbox/sandbox.gyp:sandbox_win64', 628 ], 629 'defines': [ 630 '<@(nacl_win64_defines)', 631 'COMPILE_CONTENT_STATICALLY', 632 ], 633 'include_dirs': [ 634 '<(SHARED_INTERMEDIATE_DIR)/chrome', 635 ], 636 'msvs_settings': { 637 'VCLinkerTool': { 638 'ImportLibrary': '$(OutDir)\\lib\\nacl64_exe.lib', 639 'SubSystem': '2', # Set /SUBSYSTEM:WINDOWS 640 }, 641 }, 642 'configurations': { 643 'Common_Base': { 644 'msvs_target_platform': 'x64', 645 }, 646 }, 647 'conditions': [ 648 ['configuration_policy==1', { 649 'dependencies': [ 650 '<(DEPTH)/components/components.gyp:policy_win64', 651 ], 652 }], 653 ], 654 }, 655 ], 656 }, { # else (disable_nacl==1) 657 'targets': [ 658 { 659 'target_name': 'chrome_nacl_win64', 660 'type': 'none', 661 'sources': [], 662 }, 663 ], 664 }], 665 ], 666 }], 667 ['test_isolation_mode != "noop"', { 668 'targets': [ 669 { 670 'target_name': 'chrome_run', 671 'type': 'none', 672 'dependencies': [ 673 'chrome', 674 ], 675 'includes': [ 676 '../build/isolate.gypi', 677 'chrome.isolate', 678 ], 679 'sources': [ 680 'chrome.isolate', 681 ], 682 'conditions': [ 683 ['OS=="win"', { 684 'dependencies': [ 685 'chrome_nacl_win64', 686 ], 687 }], 688 ], 689 }, 690 ], 691 }], 692 ], 693 } 694