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 'variables': { 7 'lastchange_path': '../build/util/LASTCHANGE', 8 'libpeer_target_type%': 'static_library', 9 # 'branding_dir' is set in the 'conditions' section at the bottom. 10 }, 11 'conditions': [ 12 ['OS=="win"', { 13 'targets': [ 14 { 15 'target_name': 'gcapi_dll', 16 'type': 'loadable_module', 17 'dependencies': [ 18 'gcapi_lib', 19 ], 20 'include_dirs': [ 21 '..', 22 ], 23 'sources': [ 24 'installer/gcapi/gcapi.def', 25 'installer/gcapi/gcapi_dll.cc', 26 ], 27 }, 28 { 29 'target_name': 'gcapi_lib', 30 'type': 'static_library', 31 'dependencies': [ 32 'installer_util', 33 '../base/base.gyp:base', 34 '../chrome/chrome.gyp:launcher_support', 35 '../google_update/google_update.gyp:google_update', 36 ], 37 'include_dirs': [ 38 '..', 39 ], 40 'sources': [ 41 'installer/gcapi/gcapi.cc', 42 'installer/gcapi/gcapi.h', 43 'installer/gcapi/gcapi_omaha_experiment.cc', 44 'installer/gcapi/gcapi_omaha_experiment.h', 45 'installer/gcapi/gcapi_reactivation.cc', 46 'installer/gcapi/gcapi_reactivation.h', 47 ], 48 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. 49 'msvs_disabled_warnings': [ 4267, ], 50 }, 51 { 52 'target_name': 'gcapi_test', 53 'type': 'executable', 54 'dependencies': [ 55 'common', 56 'gcapi_dll', 57 'gcapi_lib', 58 'installer_util', 59 '../base/base.gyp:base', 60 '../base/base.gyp:test_support_base', 61 '../testing/gtest.gyp:gtest', 62 ], 63 'include_dirs': [ 64 '..', 65 ], 66 'sources': [ 67 'installer/gcapi/gcapi_last_run_test.cc', 68 'installer/gcapi/gcapi_reactivation_test.cc', 69 'installer/gcapi/gcapi_test.cc', 70 'installer/gcapi/gcapi_test.rc', 71 'installer/gcapi/resource.h', 72 ], 73 }, 74 { 75 'target_name': 'installer_util_unittests', 76 'type': 'executable', 77 'dependencies': [ 78 'installer_util', 79 'installer_util_strings', 80 'installer/upgrade_test.gyp:alternate_version_generator_lib', 81 '../base/base.gyp:base', 82 '../base/base.gyp:base_i18n', 83 '../base/base.gyp:test_support_base', 84 '../chrome/chrome.gyp:chrome_version_resources', 85 '../content/content.gyp:content_common', 86 '../testing/gmock.gyp:gmock', 87 '../testing/gtest.gyp:gtest', 88 ], 89 'include_dirs': [ 90 '..', 91 ], 92 'sources': [ 93 'installer/setup/compat_checks_unittest.cc', 94 'installer/setup/setup_constants.cc', 95 'installer/util/callback_work_item_unittest.cc', 96 'installer/util/channel_info_unittest.cc', 97 'installer/util/copy_reg_key_work_item_unittest.cc', 98 'installer/util/copy_tree_work_item_unittest.cc', 99 'installer/util/create_dir_work_item_unittest.cc', 100 'installer/util/create_reg_key_work_item_unittest.cc', 101 'installer/util/delete_after_reboot_helper_unittest.cc', 102 'installer/util/delete_reg_key_work_item_unittest.cc', 103 'installer/util/delete_reg_value_work_item_unittest.cc', 104 'installer/util/delete_tree_work_item_unittest.cc', 105 'installer/util/duplicate_tree_detector_unittest.cc', 106 'installer/util/fake_installation_state.h', 107 'installer/util/fake_product_state.h', 108 'installer/util/google_update_settings_unittest.cc', 109 'installer/util/install_util_unittest.cc', 110 'installer/util/installation_validation_helper.cc', 111 'installer/util/installation_validation_helper.h', 112 'installer/util/installation_validator_unittest.cc', 113 'installer/util/installer_state_unittest.cc', 114 'installer/util/installer_util_test_common.cc', 115 'installer/util/installer_util_test_common.h', 116 'installer/util/installer_util_unittests.rc', 117 'installer/util/installer_util_unittests_resource.h', 118 'installer/util/language_selector_unittest.cc', 119 'installer/util/logging_installer_unittest.cc', 120 'installer/util/lzma_util_unittest.cc', 121 'installer/util/master_preferences_unittest.cc', 122 'installer/util/move_tree_work_item_unittest.cc', 123 'installer/util/product_state_unittest.cc', 124 'installer/util/product_unittest.cc', 125 'installer/util/product_unittest.h', 126 'installer/util/registry_key_backup_unittest.cc', 127 'installer/util/registry_test_data.cc', 128 'installer/util/registry_test_data.h', 129 'installer/util/run_all_unittests.cc', 130 'installer/util/self_cleaning_temp_dir_unittest.cc', 131 'installer/util/set_reg_value_work_item_unittest.cc', 132 'installer/util/shell_util_unittest.cc', 133 'installer/util/uninstall_metrics_unittest.cc', 134 'installer/util/wmi_unittest.cc', 135 'installer/util/work_item_list_unittest.cc', 136 '<(SHARED_INTERMEDIATE_DIR)/chrome_version/other_version.rc', 137 ], 138 'msvs_settings': { 139 'VCManifestTool': { 140 'AdditionalManifestFiles': [ 141 '$(ProjectDir)\\installer\\mini_installer\\mini_installer.exe.manifest', 142 ], 143 }, 144 }, 145 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. 146 'msvs_disabled_warnings': [ 4267, ], 147 }, 148 { 149 'target_name': 'installer_util_strings', 150 'type': 'none', 151 'rules': [ 152 { 153 'rule_name': 'installer_util_strings', 154 'extension': 'grd', 155 'variables': { 156 'create_string_rc_py' : 'installer/util/prebuild/create_string_rc.py', 157 }, 158 'inputs': [ 159 '<(create_string_rc_py)', 160 '<(RULE_INPUT_PATH)', 161 ], 162 'outputs': [ 163 # Don't use <(RULE_INPUT_ROOT) to create the output file 164 # name, because the base name of the input 165 # (generated_resources.grd) doesn't match the generated file 166 # (installer_util_strings.h). 167 '<(SHARED_INTERMEDIATE_DIR)/installer_util_strings/installer_util_strings.h', 168 '<(SHARED_INTERMEDIATE_DIR)/installer_util_strings/installer_util_strings.rc', 169 ], 170 'action': ['python', 171 '<(create_string_rc_py)', 172 '<(SHARED_INTERMEDIATE_DIR)/installer_util_strings', 173 '<(branding)',], 174 'message': 'Generating resources from <(RULE_INPUT_PATH)', 175 'msvs_cygwin_shell': 1, 176 }, 177 ], 178 'sources': [ 179 'app/chromium_strings.grd', 180 ], 181 'direct_dependent_settings': { 182 'include_dirs': [ 183 '<(SHARED_INTERMEDIATE_DIR)/installer_util_strings', 184 ], 185 }, 186 }, 187 { 188 'target_name': 'launcher_support', 189 'type': 'static_library', 190 'include_dirs': [ 191 '..', 192 ], 193 'direct_dependent_settings': { 194 'include_dirs': [ 195 '..', 196 ], 197 }, 198 'dependencies': [ 199 '<(DEPTH)/base/base.gyp:base', 200 ], 201 'sources': [ 202 'installer/launcher_support/chrome_launcher_support.cc', 203 'installer/launcher_support/chrome_launcher_support.h', 204 ], 205 }, 206 { 207 'target_name': 'mini_installer_test', 208 'type': 'executable', 209 'dependencies': [ 210 'installer_util', 211 'installer_util_strings', 212 '../base/base.gyp:base', 213 '../base/base.gyp:base_i18n', 214 '../base/base.gyp:test_support_base', 215 '../chrome/chrome.gyp:test_support_common', 216 '../testing/gtest.gyp:gtest', 217 ], 218 'include_dirs': [ 219 '..', 220 ], 221 'sources': [ 222 '<(SHARED_INTERMEDIATE_DIR)/installer_util_strings/installer_util_strings.rc', 223 'installer/util/installation_validation_helper.cc', 224 'installer/util/installation_validation_helper.h', 225 'test/mini_installer_test/installer_path_provider.cc', 226 'test/mini_installer_test/installer_path_provider.h', 227 'test/mini_installer_test/installer_test_util.cc', 228 'test/mini_installer_test/installer_test_util.h', 229 'test/mini_installer_test/mini_installer_test_constants.cc', 230 'test/mini_installer_test/mini_installer_test_constants.h', 231 'test/mini_installer_test/run_all_unittests.cc', 232 'test/mini_installer_test/switch_builder.cc', 233 'test/mini_installer_test/switch_builder.h', 234 'test/mini_installer_test/test.cc', 235 ], 236 'msvs_settings': { 237 'VCManifestTool': { 238 'AdditionalManifestFiles': [ 239 '$(ProjectDir)\\installer\\mini_installer\\mini_installer.exe.manifest', 240 ], 241 }, 242 }, 243 }, 244 { 245 'target_name': 'setup', 246 'type': 'executable', 247 'dependencies': [ 248 'installer_util', 249 'installer_util_strings', 250 'launcher_support', 251 '../base/base.gyp:base', 252 '../breakpad/breakpad.gyp:breakpad_handler', 253 '../chrome/common_constants.gyp:common_constants', 254 '../chrome_frame/chrome_frame.gyp:chrome_tab_idl', 255 '../chrome_frame/chrome_frame.gyp:npchrome_frame', 256 '../rlz/rlz.gyp:rlz_lib', 257 '../third_party/zlib/zlib.gyp:zlib', 258 ], 259 'include_dirs': [ 260 '..', 261 '<(INTERMEDIATE_DIR)', 262 '<(SHARED_INTERMEDIATE_DIR)/setup', 263 ], 264 'direct_dependent_settings': { 265 'include_dirs': [ 266 '<(SHARED_INTERMEDIATE_DIR)/setup', 267 ], 268 }, 269 'sources': [ 270 'installer/mini_installer/chrome.release', 271 'installer/setup/archive_patch_helper.cc', 272 'installer/setup/archive_patch_helper.h', 273 'installer/setup/chrome_frame_quick_enable.cc', 274 'installer/setup/chrome_frame_quick_enable.h', 275 'installer/setup/chrome_frame_ready_mode.cc', 276 'installer/setup/chrome_frame_ready_mode.h', 277 'installer/setup/install.cc', 278 'installer/setup/install.h', 279 'installer/setup/install_worker.cc', 280 'installer/setup/install_worker.h', 281 'installer/setup/setup_main.cc', 282 'installer/setup/setup_main.h', 283 'installer/setup/setup.ico', 284 'installer/setup/setup.rc', 285 'installer/setup/setup_constants.cc', 286 'installer/setup/setup_constants.h', 287 'installer/setup/setup_exe_version.rc.version', 288 'installer/setup/setup_resource.h', 289 'installer/setup/setup_util.cc', 290 'installer/setup/setup_util.h', 291 'installer/setup/uninstall.cc', 292 'installer/setup/uninstall.h', 293 ], 294 'msvs_settings': { 295 'VCLinkerTool': { 296 'SubSystem': '2', # Set /SUBSYSTEM:WINDOWS 297 }, 298 'VCManifestTool': { 299 'AdditionalManifestFiles': [ 300 '$(ProjectDir)\\installer\\setup\\setup.exe.manifest', 301 ], 302 }, 303 }, 304 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. 305 'msvs_disabled_warnings': [ 4267, ], 306 'rules': [ 307 { 308 'rule_name': 'setup_version', 309 'extension': 'version', 310 'variables': { 311 'version_py_path': '../chrome/tools/build/version.py', 312 'template_input_path': 'installer/setup/setup_exe_version.rc.version', 313 }, 314 'inputs': [ 315 '<(template_input_path)', 316 '<(version_path)', 317 '<(lastchange_path)', 318 '<(branding_dir)/BRANDING', 319 ], 320 'outputs': [ 321 '<(SHARED_INTERMEDIATE_DIR)/setup/setup_exe_version.rc', 322 ], 323 'action': [ 324 'python', '<(version_py_path)', 325 '-f', '<(version_path)', 326 '-f', '<(lastchange_path)', 327 '-f', '<(branding_dir)/BRANDING', 328 '<(template_input_path)', 329 '<@(_outputs)', 330 ], 331 'process_outputs_as_sources': 1, 332 'message': 'Generating version information' 333 }, 334 { 335 'rule_name': 'server_dlls', 336 'extension': 'release', 337 'variables': { 338 'scan_server_dlls_py' : 'tools/build/win/scan_server_dlls.py', 339 'template_file': 'installer/mini_installer/chrome.release', 340 }, 341 'inputs': [ 342 '<(scan_server_dlls_py)', 343 '<(template_file)' 344 ], 345 'outputs': [ 346 '<(INTERMEDIATE_DIR)/registered_dlls.h', 347 ], 348 'action': [ 349 'python', 350 '<(scan_server_dlls_py)', 351 '--output_dir=<(PRODUCT_DIR)', 352 '--input_file=<(RULE_INPUT_PATH)', 353 '--header_output_dir=<(INTERMEDIATE_DIR)', 354 # TODO(sgk): may just use environment variables 355 #'--distribution=$(CHROMIUM_BUILD)', 356 '--distribution=_google_chrome', 357 ], 358 'msvs_cygwin_shell': 1, 359 }, 360 ], 361 'conditions': [ 362 ['component == "shared_library"', { 363 'variables': { 364 'win_use_external_manifest': 1, 365 }, 366 }], 367 # TODO(mark): <(branding_dir) should be defined by the 368 # global condition block at the bottom of the file, but 369 # this doesn't work due to the following issue: 370 # 371 # http://code.google.com/p/gyp/issues/detail?id=22 372 # 373 # Remove this block once the above issue is fixed. 374 [ 'branding == "Chrome"', { 375 'variables': { 376 'branding_dir': 'app/theme/google_chrome', 377 'branding_dir_100': 'app/theme/default_100_percent/google_chrome', 378 }, 379 }, { # else branding!="Chrome" 380 'variables': { 381 'branding_dir': 'app/theme/chromium', 382 'branding_dir_100': 'app/theme/default_100_percent/chromium', 383 }, 384 }], 385 ['target_arch=="x64"', { 386 'dependencies!': [ 387 '../chrome_frame/chrome_frame.gyp:chrome_tab_idl', 388 '../chrome_frame/chrome_frame.gyp:npchrome_frame', 389 ], 390 'defines': [ 391 'OMIT_CHROME_FRAME', 392 ], 393 }], 394 ], 395 }, 396 { 397 'target_name': 'setup_unittests', 398 'type': 'executable', 399 'dependencies': [ 400 'installer_util', 401 'installer_util_strings', 402 'launcher_support', 403 '../base/base.gyp:base', 404 '../base/base.gyp:base_i18n', 405 '../base/base.gyp:test_support_base', 406 '../chrome_frame/chrome_frame.gyp:chrome_tab_idl', 407 '../testing/gmock.gyp:gmock', 408 '../testing/gtest.gyp:gtest', 409 ], 410 'include_dirs': [ 411 '..', 412 '<(INTERMEDIATE_DIR)', 413 ], 414 # TODO(robertshield): Move the items marked with "Move to lib" 415 # below into a separate lib and then link both setup.exe and 416 # setup_unittests.exe against that. 417 'sources': [ 418 'installer/mini_installer/chrome.release', # Move to lib 419 'installer/mini_installer/appid.h', 420 'installer/mini_installer/chrome_appid.cc', 421 'installer/mini_installer/configuration.cc', 422 'installer/mini_installer/configuration.h', 423 'installer/mini_installer/configuration_test.cc', 424 'installer/mini_installer/decompress.cc', 425 'installer/mini_installer/decompress.h', 426 'installer/mini_installer/decompress_test.cc', 427 'installer/mini_installer/mini_string.cc', 428 'installer/mini_installer/mini_string.h', 429 'installer/mini_installer/mini_string_test.cc', 430 'installer/setup/archive_patch_helper.cc', # Move to lib 431 'installer/setup/archive_patch_helper.h', # Move to lib 432 'installer/setup/archive_patch_helper_unittest.cc', 433 'installer/setup/install.cc', # Move to lib 434 'installer/setup/install.h', # Move to lib 435 'installer/setup/install_unittest.cc', 436 'installer/setup/install_worker.cc', # Move to lib 437 'installer/setup/install_worker.h', # Move to lib 438 'installer/setup/install_worker_unittest.cc', 439 'installer/setup/run_all_unittests.cc', 440 'installer/setup/setup_constants.cc', # Move to lib 441 'installer/setup/setup_constants.h', # Move to lib 442 'installer/setup/setup_unittests.rc', 443 'installer/setup/setup_unittests_resource.h', 444 'installer/setup/setup_util.cc', 445 'installer/setup/setup_util_unittest.cc', 446 'installer/setup/setup_util_unittest.h', 447 ], 448 'rules': [ 449 { 450 'rule_name': 'server_dlls', # Move to lib 451 'extension': 'release', 452 'variables': { 453 'scan_server_dlls_py' : 'tools/build/win/scan_server_dlls.py', 454 'template_file': 'installer/mini_installer/chrome.release', 455 }, 456 'inputs': [ 457 '<(scan_server_dlls_py)', 458 '<(template_file)' 459 ], 460 'outputs': [ 461 '<(INTERMEDIATE_DIR)/registered_dlls.h', 462 ], 463 'action': [ 464 'python', 465 '<(scan_server_dlls_py)', 466 '--output_dir=<(PRODUCT_DIR)', 467 '--input_file=<(RULE_INPUT_PATH)', 468 '--header_output_dir=<(INTERMEDIATE_DIR)', 469 # TODO(sgk): may just use environment variables 470 #'--distribution=$(CHROMIUM_BUILD)', 471 '--distribution=_google_chrome', 472 ], 473 'msvs_cygwin_shell': 1, 474 }, 475 ], 476 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations. 477 'msvs_disabled_warnings': [ 4267, ], 478 }, 479 ], 480 }], 481 ['OS=="win" and target_arch=="ia32"', { 482 'targets': [ 483 { 484 'target_name': 'launcher_support64', 485 'type': 'static_library', 486 'include_dirs': [ 487 '..', 488 ], 489 'direct_dependent_settings': { 490 'include_dirs': [ 491 '..', 492 ], 493 }, 494 'defines': [ 495 '<@(nacl_win64_defines)', 496 ], 497 'dependencies': [ 498 '<(DEPTH)/base/base.gyp:base_nacl_win64', 499 ], 500 'configurations': { 501 'Common_Base': { 502 'msvs_target_platform': 'x64', 503 }, 504 }, 505 'sources': [ 506 'installer/launcher_support/chrome_launcher_support.cc', 507 'installer/launcher_support/chrome_launcher_support.h', 508 ], 509 }, 510 ], 511 }], 512 ['OS=="linux" and branding=="Chrome"', { 513 'variables': { 514 # Always google_chrome since this only applies to branding==Chrome. 515 'branding_dir': 'app/theme/google_chrome', 516 'branding_dir_100': 'app/theme/default_100_percent/google_chrome', 517 'version' : '<!(python <(version_py_path) -f ../chrome/VERSION -t "@MAJOR@.@MINOR@.@BUILD@.@PATCH@")', 518 'revision' : '<!(python ../build/util/lastchange.py --revision-only)', 519 'packaging_files_common': [ 520 'installer/linux/common/apt.include', 521 'installer/linux/common/default-app.template', 522 'installer/linux/common/default-app-block.template', 523 'installer/linux/common/desktop.template', 524 'installer/linux/common/google-chrome/google-chrome.info', 525 'installer/linux/common/installer.include', 526 'installer/linux/common/postinst.include', 527 'installer/linux/common/prerm.include', 528 'installer/linux/common/repo.cron', 529 'installer/linux/common/rpm.include', 530 'installer/linux/common/rpmrepo.cron', 531 'installer/linux/common/symlinks.include', 532 'installer/linux/common/updater', 533 'installer/linux/common/variables.include', 534 'installer/linux/common/wrapper', 535 ], 536 'packaging_files_deb': [ 537 'installer/linux/debian/build.sh', 538 'installer/linux/debian/changelog.template', 539 'installer/linux/debian/control.template', 540 'installer/linux/debian/debian.menu', 541 'installer/linux/debian/expected_deps', 542 'installer/linux/debian/postinst', 543 'installer/linux/debian/postrm', 544 'installer/linux/debian/prerm', 545 ], 546 'packaging_files_rpm': [ 547 'installer/linux/rpm/build.sh', 548 'installer/linux/rpm/chrome.spec.template', 549 'installer/linux/rpm/expected_deps_i386', 550 'installer/linux/rpm/expected_deps_x86_64', 551 ], 552 'packaging_files_binaries': [ 553 # TODO(mmoss) Any convenient way to get all the relevant build 554 # files? (e.g. all locales, resources, etc.) 555 '<(PRODUCT_DIR)/chrome', 556 '<(PRODUCT_DIR)/chrome.pak', 557 '<(PRODUCT_DIR)/chrome_sandbox', 558 '<(PRODUCT_DIR)/libffmpegsumo.so', 559 '<(PRODUCT_DIR)/libppGoogleNaClPluginChrome.so', 560 '<(PRODUCT_DIR)/xdg-mime', 561 '<(PRODUCT_DIR)/xdg-settings', 562 '<(PRODUCT_DIR)/locales/en-US.pak', 563 '<(PRODUCT_DIR)/nacl_helper', 564 '<(PRODUCT_DIR)/nacl_helper_bootstrap', 565 '<(PRODUCT_DIR)/PepperFlash/libpepflashplayer.so', 566 '<(PRODUCT_DIR)/PepperFlash/manifest.json', 567 '<@(default_apps_list_linux_dest)', 568 ], 569 'flock_bash': ['flock', '--', '/tmp/linux_package_lock', 'bash'], 570 'deb_build': '<(PRODUCT_DIR)/installer/debian/build.sh', 571 'rpm_build': '<(PRODUCT_DIR)/installer/rpm/build.sh', 572 'deb_cmd': ['<@(flock_bash)', '<(deb_build)', '-o' '<(PRODUCT_DIR)', 573 '-b', '<(PRODUCT_DIR)', '-a', '<(target_arch)'], 574 'rpm_cmd': ['<@(flock_bash)', '<(rpm_build)', '-o' '<(PRODUCT_DIR)', 575 '-b', '<(PRODUCT_DIR)', '-a', '<(target_arch)'], 576 'conditions': [ 577 ['target_arch=="ia32"', { 578 'deb_arch': 'i386', 579 'rpm_arch': 'i386', 580 'packaging_files_binaries': [ 581 '<(PRODUCT_DIR)/nacl_irt_x86_32.nexe', 582 '<(PRODUCT_DIR)/libwidevinecdmadapter.so', 583 '<(PRODUCT_DIR)/libwidevinecdm.so', 584 ], 585 }], 586 ['target_arch=="x64"', { 587 'deb_arch': 'amd64', 588 'rpm_arch': 'x86_64', 589 'packaging_files_binaries': [ 590 '<(PRODUCT_DIR)/nacl_irt_x86_64.nexe', 591 '<(PRODUCT_DIR)/libwidevinecdmadapter.so', 592 '<(PRODUCT_DIR)/libwidevinecdm.so', 593 ], 594 }], 595 ['target_arch=="arm"', { 596 'deb_arch': 'arm', 597 'rpm_arch': 'arm', 598 }], 599 ['internal_pdf', { 600 'packaging_files_binaries': [ 601 '<(PRODUCT_DIR)/libpdf.so', 602 ], 603 }], 604 ['libpeer_target_type!="static_library"', { 605 'packaging_files_binaries': [ 606 '<(PRODUCT_DIR)/lib/libpeerconnection.so', 607 ], 608 }], 609 ], 610 }, 611 'targets': [ 612 { 613 'target_name': 'linux_installer_configs', 614 'type': 'none', 615 # Add these files to the build output so the build archives will be 616 # "hermetic" for packaging. This is only for branding="Chrome" since 617 # we only create packages for official builds. 618 'copies': [ 619 { 620 'destination': '<(PRODUCT_DIR)/installer/debian/', 621 'files': [ 622 '<@(packaging_files_deb)', 623 ] 624 }, 625 { 626 'destination': '<(PRODUCT_DIR)/installer/rpm/', 627 'files': [ 628 '<@(packaging_files_rpm)', 629 ] 630 }, 631 { 632 'destination': '<(PRODUCT_DIR)/installer/common/', 633 'files': [ 634 '<@(packaging_files_common)', 635 ] 636 }, 637 # Additional theme resources needed for package building. 638 { 639 'destination': '<(PRODUCT_DIR)/installer/theme/', 640 'files': [ 641 '<(branding_dir_100)/product_logo_16.png', 642 '<(branding_dir)/product_logo_22.png', 643 '<(branding_dir)/product_logo_24.png', 644 '<(branding_dir_100)/product_logo_32.png', 645 '<(branding_dir)/product_logo_48.png', 646 '<(branding_dir)/product_logo_64.png', 647 '<(branding_dir)/product_logo_128.png', 648 '<(branding_dir)/product_logo_256.png', 649 '<(branding_dir)/product_logo_32.xpm', 650 '<(branding_dir)/BRANDING', 651 ], 652 }, 653 ], 654 'actions': [ 655 { 656 'action_name': 'save_build_info', 657 'inputs': [ 658 '<(branding_dir)/BRANDING', 659 '<(version_path)', 660 '<(lastchange_path)', 661 ], 662 'outputs': [ 663 '<(PRODUCT_DIR)/installer/version.txt', 664 ], 665 # Just output the default version info variables. 666 'action': [ 667 'python', '<(version_py_path)', 668 '-f', '<(branding_dir)/BRANDING', 669 '-f', '<(version_path)', 670 '-f', '<(lastchange_path)', 671 '-o', '<@(_outputs)' 672 ], 673 }, 674 ], 675 }, 676 { 677 'target_name': 'linux_packages_all', 678 'suppress_wildcard': 1, 679 'type': 'none', 680 'dependencies': [ 681 'linux_packages_unstable', 682 'linux_packages_beta', 683 'linux_packages_stable', 684 ], 685 }, 686 { 687 # 'asan' is a developer, testing-only package, so it shouldn't be 688 # included in the 'linux_packages_all' collection. 689 'target_name': 'linux_packages_asan', 690 'suppress_wildcard': 1, 691 'type': 'none', 692 'dependencies': [ 693 'linux_packages_asan_deb', 694 ], 695 # ChromeOS doesn't care about RPM packages. 696 'conditions': [ 697 ['chromeos==0', { 698 'dependencies': [ 699 'linux_packages_asan_rpm', 700 ], 701 }], 702 ], 703 }, 704 { 705 # 'trunk' is a developer, testing-only package, so it shouldn't be 706 # included in the 'linux_packages_all' collection. 707 'target_name': 'linux_packages_trunk', 708 'suppress_wildcard': 1, 709 'type': 'none', 710 'dependencies': [ 711 'linux_packages_trunk_deb', 712 ], 713 # ChromeOS doesn't care about RPM packages. 714 'conditions': [ 715 ['chromeos==0', { 716 'dependencies': [ 717 'linux_packages_trunk_rpm', 718 ], 719 }], 720 ], 721 }, 722 { 723 'target_name': 'linux_packages_unstable', 724 'suppress_wildcard': 1, 725 'type': 'none', 726 'dependencies': [ 727 'linux_packages_unstable_deb', 728 ], 729 # ChromeOS doesn't care about RPM packages. 730 'conditions': [ 731 ['chromeos==0', { 732 'dependencies': [ 733 'linux_packages_unstable_rpm', 734 ], 735 }], 736 ], 737 }, 738 { 739 'target_name': 'linux_packages_beta', 740 'suppress_wildcard': 1, 741 'type': 'none', 742 'dependencies': [ 743 'linux_packages_beta_deb', 744 ], 745 # ChromeOS doesn't care about RPM packages. 746 'conditions': [ 747 ['chromeos==0', { 748 'dependencies': [ 749 'linux_packages_beta_rpm', 750 ], 751 }], 752 ], 753 }, 754 { 755 'target_name': 'linux_packages_stable', 756 'suppress_wildcard': 1, 757 'type': 'none', 758 'dependencies': [ 759 'linux_packages_stable_deb', 760 ], 761 # ChromeOS doesn't care about RPM packages. 762 'conditions': [ 763 ['chromeos==0', { 764 'dependencies': [ 765 'linux_packages_stable_rpm', 766 ], 767 }], 768 ], 769 }, 770 # TODO(mmoss) gyp looping construct would be handy here ... 771 # These package actions are the same except for the 'channel' variable. 772 { 773 'target_name': 'linux_packages_asan_deb', 774 'suppress_wildcard': 1, 775 'type': 'none', 776 'dependencies': [ 777 'chrome', 778 'linux_installer_configs', 779 ], 780 'actions': [ 781 { 782 'variables': { 783 'channel': 'asan', 784 }, 785 'action_name': 'deb_packages_<(channel)', 786 'process_outputs_as_sources': 1, 787 'inputs': [ 788 '<(deb_build)', 789 '<@(packaging_files_binaries)', 790 '<@(packaging_files_common)', 791 '<@(packaging_files_deb)', 792 ], 793 'outputs': [ 794 '<(PRODUCT_DIR)/google-chrome-<(channel)_<(version)-1_<(deb_arch).deb', 795 ], 796 'action': [ '<@(deb_cmd)', '-c', '<(channel)', ], 797 }, 798 ], 799 }, 800 { 801 'target_name': 'linux_packages_trunk_deb', 802 'suppress_wildcard': 1, 803 'type': 'none', 804 'dependencies': [ 805 'chrome', 806 'linux_installer_configs', 807 ], 808 'actions': [ 809 { 810 'variables': { 811 'channel': 'trunk', 812 }, 813 'action_name': 'deb_packages_<(channel)', 814 'process_outputs_as_sources': 1, 815 'inputs': [ 816 '<(deb_build)', 817 '<@(packaging_files_binaries)', 818 '<@(packaging_files_common)', 819 '<@(packaging_files_deb)', 820 ], 821 'outputs': [ 822 '<(PRODUCT_DIR)/google-chrome-<(channel)_<(version)-1_<(deb_arch).deb', 823 ], 824 'action': [ '<@(deb_cmd)', '-c', '<(channel)', ], 825 }, 826 ], 827 }, 828 { 829 'target_name': 'linux_packages_unstable_deb', 830 'suppress_wildcard': 1, 831 'type': 'none', 832 'dependencies': [ 833 'chrome', 834 'linux_installer_configs', 835 ], 836 'actions': [ 837 { 838 'variables': { 839 'channel': 'unstable', 840 }, 841 'action_name': 'deb_packages_<(channel)', 842 'process_outputs_as_sources': 1, 843 'inputs': [ 844 '<(deb_build)', 845 '<@(packaging_files_binaries)', 846 '<@(packaging_files_common)', 847 '<@(packaging_files_deb)', 848 ], 849 'outputs': [ 850 '<(PRODUCT_DIR)/google-chrome-<(channel)_<(version)-1_<(deb_arch).deb', 851 ], 852 'action': [ '<@(deb_cmd)', '-c', '<(channel)', ], 853 }, 854 ], 855 }, 856 { 857 'target_name': 'linux_packages_beta_deb', 858 'suppress_wildcard': 1, 859 'type': 'none', 860 'dependencies': [ 861 'chrome', 862 'linux_installer_configs', 863 ], 864 'actions': [ 865 { 866 'variables': { 867 'channel': 'beta', 868 }, 869 'action_name': 'deb_packages_<(channel)', 870 'process_outputs_as_sources': 1, 871 'inputs': [ 872 '<(deb_build)', 873 '<@(packaging_files_binaries)', 874 '<@(packaging_files_common)', 875 '<@(packaging_files_deb)', 876 ], 877 'outputs': [ 878 '<(PRODUCT_DIR)/google-chrome-<(channel)_<(version)-1_<(deb_arch).deb', 879 ], 880 'action': [ '<@(deb_cmd)', '-c', '<(channel)', ], 881 }, 882 ], 883 }, 884 { 885 'target_name': 'linux_packages_stable_deb', 886 'suppress_wildcard': 1, 887 'type': 'none', 888 'dependencies': [ 889 'chrome', 890 'linux_installer_configs', 891 ], 892 'actions': [ 893 { 894 'variables': { 895 'channel': 'stable', 896 }, 897 'action_name': 'deb_packages_<(channel)', 898 'process_outputs_as_sources': 1, 899 'inputs': [ 900 '<(deb_build)', 901 '<@(packaging_files_binaries)', 902 '<@(packaging_files_common)', 903 '<@(packaging_files_deb)', 904 ], 905 'outputs': [ 906 '<(PRODUCT_DIR)/google-chrome-<(channel)_<(version)-1_<(deb_arch).deb', 907 ], 908 'action': [ '<@(deb_cmd)', '-c', '<(channel)', ], 909 }, 910 ], 911 }, 912 { 913 'target_name': 'linux_packages_asan_rpm', 914 'suppress_wildcard': 1, 915 'type': 'none', 916 'dependencies': [ 917 'chrome', 918 'linux_installer_configs', 919 ], 920 'actions': [ 921 { 922 'variables': { 923 'channel': 'asan', 924 }, 925 'action_name': 'rpm_packages_<(channel)', 926 'process_outputs_as_sources': 1, 927 'inputs': [ 928 '<(rpm_build)', 929 '<(PRODUCT_DIR)/installer/rpm/chrome.spec.template', 930 '<@(packaging_files_binaries)', 931 '<@(packaging_files_common)', 932 '<@(packaging_files_rpm)', 933 ], 934 'outputs': [ 935 '<(PRODUCT_DIR)/google-chrome-<(channel)-<(version)-1.<(rpm_arch).rpm', 936 ], 937 'action': [ '<@(rpm_cmd)', '-c', '<(channel)', ], 938 }, 939 ], 940 }, 941 { 942 'target_name': 'linux_packages_trunk_rpm', 943 'suppress_wildcard': 1, 944 'type': 'none', 945 'dependencies': [ 946 'chrome', 947 'linux_installer_configs', 948 ], 949 'actions': [ 950 { 951 'variables': { 952 'channel': 'trunk', 953 }, 954 'action_name': 'rpm_packages_<(channel)', 955 'process_outputs_as_sources': 1, 956 'inputs': [ 957 '<(rpm_build)', 958 '<(PRODUCT_DIR)/installer/rpm/chrome.spec.template', 959 '<@(packaging_files_binaries)', 960 '<@(packaging_files_common)', 961 '<@(packaging_files_rpm)', 962 ], 963 'outputs': [ 964 '<(PRODUCT_DIR)/google-chrome-<(channel)-<(version)-1.<(rpm_arch).rpm', 965 ], 966 'action': [ '<@(rpm_cmd)', '-c', '<(channel)', ], 967 }, 968 ], 969 }, 970 { 971 'target_name': 'linux_packages_unstable_rpm', 972 'suppress_wildcard': 1, 973 'type': 'none', 974 'dependencies': [ 975 'chrome', 976 'linux_installer_configs', 977 ], 978 'actions': [ 979 { 980 'variables': { 981 'channel': 'unstable', 982 }, 983 'action_name': 'rpm_packages_<(channel)', 984 'process_outputs_as_sources': 1, 985 'inputs': [ 986 '<(rpm_build)', 987 '<(PRODUCT_DIR)/installer/rpm/chrome.spec.template', 988 '<@(packaging_files_binaries)', 989 '<@(packaging_files_common)', 990 '<@(packaging_files_rpm)', 991 ], 992 'outputs': [ 993 '<(PRODUCT_DIR)/google-chrome-<(channel)-<(version)-1.<(rpm_arch).rpm', 994 ], 995 'action': [ '<@(rpm_cmd)', '-c', '<(channel)', ], 996 }, 997 ], 998 }, 999 { 1000 'target_name': 'linux_packages_beta_rpm', 1001 'suppress_wildcard': 1, 1002 'type': 'none', 1003 'dependencies': [ 1004 'chrome', 1005 'linux_installer_configs', 1006 ], 1007 'actions': [ 1008 { 1009 'variables': { 1010 'channel': 'beta', 1011 }, 1012 'action_name': 'rpm_packages_<(channel)', 1013 'process_outputs_as_sources': 1, 1014 'inputs': [ 1015 '<(rpm_build)', 1016 '<(PRODUCT_DIR)/installer/rpm/chrome.spec.template', 1017 '<@(packaging_files_binaries)', 1018 '<@(packaging_files_common)', 1019 '<@(packaging_files_rpm)', 1020 ], 1021 'outputs': [ 1022 '<(PRODUCT_DIR)/google-chrome-<(channel)-<(version)-1.<(rpm_arch).rpm', 1023 ], 1024 'action': [ '<@(rpm_cmd)', '-c', '<(channel)', ], 1025 }, 1026 ], 1027 }, 1028 { 1029 'target_name': 'linux_packages_stable_rpm', 1030 'suppress_wildcard': 1, 1031 'type': 'none', 1032 'dependencies': [ 1033 'chrome', 1034 'linux_installer_configs', 1035 ], 1036 'actions': [ 1037 { 1038 'variables': { 1039 'channel': 'stable', 1040 }, 1041 'action_name': 'rpm_packages_<(channel)', 1042 'process_outputs_as_sources': 1, 1043 'inputs': [ 1044 '<(rpm_build)', 1045 '<(PRODUCT_DIR)/installer/rpm/chrome.spec.template', 1046 '<@(packaging_files_binaries)', 1047 '<@(packaging_files_common)', 1048 '<@(packaging_files_rpm)', 1049 ], 1050 'outputs': [ 1051 '<(PRODUCT_DIR)/google-chrome-<(channel)-<(version)-1.<(rpm_arch).rpm', 1052 ], 1053 'action': [ '<@(rpm_cmd)', '-c', '<(channel)', ], 1054 }, 1055 ], 1056 }, 1057 ], 1058 }], 1059 ['OS=="mac"', { 1060 'variables': { 1061 'mac_packaging_dir': 1062 '<(PRODUCT_DIR)/<(mac_product_name) Packaging', 1063 # <(PRODUCT_DIR) expands to $(BUILT_PRODUCTS_DIR), which doesn't 1064 # work properly in a shell script, where ${BUILT_PRODUCTS_DIR} is 1065 # needed. 1066 'mac_packaging_sh_dir': 1067 '${BUILT_PRODUCTS_DIR}/<(mac_product_name) Packaging', 1068 }, # variables 1069 'targets': [ 1070 { 1071 'target_name': 'installer_packaging', 1072 'type': 'none', 1073 'dependencies': [ 1074 'installer/mac/third_party/bsdiff/goobsdiff.gyp:*', 1075 'installer/mac/third_party/xz/xz.gyp:*', 1076 ], 1077 'conditions': [ 1078 ['buildtype=="Official"', { 1079 'actions': [ 1080 { 1081 # Create sign.sh, the script that the packaging system will 1082 # use to sign the .app bundle. 1083 'action_name': 'Make sign.sh', 1084 'variables': { 1085 'make_signers_sh_path': 'installer/mac/make_signers.sh', 1086 }, 1087 'inputs': [ 1088 '<(make_signers_sh_path)', 1089 'installer/mac/sign_app.sh.in', 1090 'installer/mac/sign_versioned_dir.sh.in', 1091 'installer/mac/app_resource_rules.plist.in', 1092 '<(version_path)', 1093 ], 1094 'outputs': [ 1095 '<(mac_packaging_dir)/sign_app.sh', 1096 '<(mac_packaging_dir)/sign_versioned_dir.sh', 1097 '<(mac_packaging_dir)/app_resource_rules.plist', 1098 ], 1099 'action': [ 1100 '<(make_signers_sh_path)', 1101 '<(mac_packaging_sh_dir)', 1102 '<(mac_product_name)', 1103 '<(version_full)', 1104 ], 1105 }, 1106 ], # actions 1107 }], # buildtype=="Official" 1108 ['branding=="Chrome" and buildtype=="Official"', { 1109 'actions': [ 1110 { 1111 # copy_keychain_reauthorize.sh explains why this isn't in a 1112 # 'copies' block, but briefly: this is a prebuilt signed 1113 # binary component that relies on a correct signature to 1114 # function properly, and a normal 'copies' block sadly makes 1115 # a trivial modification to the file such that its signature 1116 # is no longer valid. 1117 'action_name': 'Copy keychain_reauthorize', 1118 'variables': { 1119 'keychain_reauthorize_path': 'tools/build/mac/copy_keychain_reauthorize.sh', 1120 'keychain_reauthorize_normal_path': 'installer/mac/internal/keychain_reauthorize/com.google.Chrome', 1121 'keychain_reauthorize_canary_path': 'installer/mac/internal/keychain_reauthorize/com.google.Chrome.canary', 1122 'keychain_reauthorize_output_dir': '<(mac_packaging_dir)/.keychain_reauthorize', 1123 }, 1124 'inputs': [ 1125 '<(keychain_reauthorize_path)', 1126 '<(keychain_reauthorize_normal_path)', 1127 '<(keychain_reauthorize_canary_path)', 1128 ], 1129 'outputs': [ 1130 '<(keychain_reauthorize_output_dir)/com.google.Chrome', 1131 '<(keychain_reauthorize_output_dir)/com.google.Chrome.canary', 1132 ], 1133 'action': [ 1134 '<(keychain_reauthorize_path)', 1135 '<(keychain_reauthorize_output_dir)', 1136 '<(keychain_reauthorize_normal_path)', 1137 '<(keychain_reauthorize_canary_path)', 1138 ], 1139 }, 1140 ], # actions 1141 }], # branding=="Chrome" and buildtype=="Official" 1142 ], # conditions 1143 'copies': [ 1144 { 1145 # Put the files where the packaging system will find them. The 1146 # packager will use these when building the "full installer" 1147 # disk images and delta/differential update disk images. 1148 'destination': '<(mac_packaging_dir)', 1149 'files': [ 1150 '<(PRODUCT_DIR)/goobsdiff', 1151 '<(PRODUCT_DIR)/goobspatch', 1152 '<(PRODUCT_DIR)/liblzma_decompress.dylib', 1153 '<(PRODUCT_DIR)/xz', 1154 '<(PRODUCT_DIR)/xzdec', 1155 'installer/mac/dirdiffer.sh', 1156 'installer/mac/dirpatcher.sh', 1157 'installer/mac/dmgdiffer.sh', 1158 'installer/mac/pkg-dmg', 1159 ], 1160 'conditions': [ 1161 ['mac_keystone==1', { 1162 'files': [ 1163 'installer/mac/keystone_install.sh', 1164 ], 1165 }], # mac_keystone 1166 ['branding=="Chrome" and buildtype=="Official"', { 1167 'files': [ 1168 'app/theme/google_chrome/app_canary.icns', 1169 'app/theme/google_chrome/document_canary.icns', 1170 'installer/mac/internal/chrome_canary_dmg_dsstore', 1171 'installer/mac/internal/chrome_canary_dmg_icon.icns', 1172 'installer/mac/internal/chrome_dmg_background.png', 1173 'installer/mac/internal/chrome_dmg_dsstore', 1174 'installer/mac/internal/chrome_dmg_icon.icns', 1175 'installer/mac/internal/generate_dmgs', 1176 ], 1177 }], # branding=="Chrome" and buildtype=="Official" 1178 ], # conditions 1179 }, 1180 ], # copies 1181 }, # target: installer_packaging 1182 { 1183 'target_name': 'gcapi_lib', 1184 'type': 'static_library', 1185 'include_dirs': [ 1186 '..', 1187 ], 1188 'sources': [ 1189 'installer/gcapi_mac/gcapi.h', 1190 'installer/gcapi_mac/gcapi.mm', 1191 ], 1192 'link_settings': { 1193 'libraries': [ 1194 '$(SDKROOT)/System/Library/Frameworks/Cocoa.framework', 1195 ], 1196 }, 1197 'xcode_settings': { 1198 'ARCHS': [ 'i386', 'x86_64' ], 1199 'MACOSX_DEPLOYMENT_TARGET': '10.4', 1200 'GCC_ENABLE_OBJC_GC': 'supported', 1201 }, 1202 }, 1203 { 1204 'target_name': 'gcapi_example', 1205 'type': 'executable', 1206 'dependencies': [ 1207 'gcapi_lib', 1208 ], 1209 'include_dirs': [ 1210 '..', 1211 ], 1212 'sources': [ 1213 'installer/gcapi_mac/gcapi_example_client.mm', 1214 ], 1215 }, 1216 ], # targets 1217 }], # OS=="mac" 1218 [ 'branding == "Chrome"', { 1219 'variables': { 1220 'branding_dir': 'app/theme/google_chrome', 1221 'branding_dir_100': 'app/theme/default_100_percent/google_chrome', 1222 }, 1223 }, { # else branding!="Chrome" 1224 'variables': { 1225 'branding_dir': 'app/theme/chromium', 1226 'branding_dir_100': 'app/theme/default_100_percent/chromium', 1227 }, 1228 }], 1229 ], 1230 } 1231