summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorrobertshield@chromium.org <robertshield@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-01-19 21:15:06 +0000
committerrobertshield@chromium.org <robertshield@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2010-01-19 21:15:06 +0000
commitfd1d6998e6a96569e478c87220f6825a3e47851c (patch)
tree0f2e2d2e174c20c4eb7366b2d678f58d8aaa633c
parent01bfd02b5e75ad54e90c5379da3a84c714c79bf6 (diff)
downloadchromium_src-fd1d6998e6a96569e478c87220f6825a3e47851c.zip
chromium_src-fd1d6998e6a96569e478c87220f6825a3e47851c.tar.gz
chromium_src-fd1d6998e6a96569e478c87220f6825a3e47851c.tar.bz2
Adding a secondary mini_installer target for Chrome Frame. This will remove the need to have different build scripts to build either Chrome or Chrome Frame.
Also remove the now-unneeded gyp variables 'chrome_frame_define' and 'google_update_appid'. BUG=Both Chrome and Chrome Frame products should be buildable from a single solution file - we shouldn't need to run GYP with different settings to get a CF solution. TEST=none Review URL: http://codereview.chromium.org/542078 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@36546 0039d316-1c4b-4281-b951-d872f2087c98
-rw-r--r--app/app.gyp50
-rw-r--r--build/all.gyp8
-rw-r--r--build/common.gypi9
-rwxr-xr-xchrome/chrome.gyp6
-rw-r--r--chrome/chrome_exe.gypi17
-rw-r--r--chrome/installer/installer.gyp12
-rw-r--r--chrome/installer/installer_util.gypi1
-rwxr-xr-xchrome/installer/mini_installer.gyp309
-rw-r--r--chrome/installer/mini_installer/appid.h13
-rw-r--r--chrome/installer/mini_installer/chrome.release2
-rw-r--r--chrome/installer/mini_installer/chrome_appid.cc9
-rw-r--r--chrome/installer/mini_installer/chrome_frame.release47
-rw-r--r--chrome/installer/mini_installer/chrome_frame_appid.cc9
-rw-r--r--chrome/installer/mini_installer/mini_installer.cc6
-rw-r--r--chrome/installer/setup/install.cc58
-rwxr-xr-xchrome/tools/build/win/create_installer_archive.py9
-rw-r--r--chrome_frame/chrome_frame.gyp5
-rw-r--r--chrome_frame/rename_me_to_supplement.gypi29
18 files changed, 315 insertions, 284 deletions
diff --git a/app/app.gyp b/app/app.gyp
index a0bccad..dcabe1d 100644
--- a/app/app.gyp
+++ b/app/app.gyp
@@ -163,56 +163,6 @@
}],
],
},
- {
- 'target_name': 'app_id',
- 'type': 'none',
- 'msvs_guid': '83100055-172B-49EA-B422-B1A92B627D37',
- 'conditions': [
- ['OS=="win"',
- {
- 'direct_dependent_settings': {
- 'include_dirs': [
- '<(SHARED_INTERMEDIATE_DIR)/chrome/app_id',
- ],
- },
- 'actions': [
- {
- 'action_name': 'appid',
- 'variables': {
- 'appid_py': '../chrome/tools/build/appid.py',
- },
- 'conditions': [
- [ 'branding=="Chrome"', {
- 'variables': {
- 'appid_value': '<(google_update_appid)',
- },
- }, { # else
- 'variables': {
- 'appid_value': '',
- },
- }],
- ],
- 'inputs': [
- '<(appid_py)',
- ],
- 'outputs': [
- '<(SHARED_INTERMEDIATE_DIR)/chrome/app_id/appid.h',
- 'tools/build/_always_run_appid_py.marker',
- ],
- 'action': [
- 'python',
- '<(appid_py)',
- '-a', '<(appid_value)',
- '-o', '<(SHARED_INTERMEDIATE_DIR)/chrome/app_id/appid.h',
- ],
- 'process_outputs_as_sources': 1,
- 'message': 'Generating appid information in <(SHARED_INTERMEDIATE_DIR)/chrome/appid.h'
- },
- ],
- },
- ],
- ],
- },
],
}
diff --git a/build/all.gyp b/build/all.gyp
index 7566802..8a0910b 100644
--- a/build/all.gyp
+++ b/build/all.gyp
@@ -48,11 +48,6 @@
'../v8/tools/gyp/v8.gyp:*',
],
}],
- ['chrome_frame_define==1', {
- 'dependencies': [
- '../chrome_frame/chrome_frame.gyp:*',
- ],
- }],
['OS=="mac" or OS=="linux" or OS=="freebsd"', {
'dependencies': [
'../third_party/yasm/yasm.gyp:*#host',
@@ -95,6 +90,7 @@
'dependencies': [
'../breakpad/breakpad.gyp:*',
'../chrome/app/locales/locales.gyp:*',
+ '../chrome_frame/chrome_frame.gyp:*',
'../courgette/courgette.gyp:*',
'../gears/gears.gyp:*',
'../gpu/demos/demos.gyp:*',
@@ -212,6 +208,7 @@
# mini_installer_tests depends on mini_installer. This should be
# defined in installer.gyp.
'../chrome/installer/mini_installer.gyp:mini_installer',
+ '../chrome/installer/mini_installer.gyp:chrome_frame_mini_installer',
'../courgette/courgette.gyp:courgette_unittests',
'../ipc/ipc.gyp:ipc_tests',
'../media/media.gyp:media_unittests',
@@ -241,6 +238,7 @@
# mini_installer_tests depends on mini_installer. This should be
# defined in installer.gyp.
'../chrome/installer/mini_installer.gyp:mini_installer',
+ '../chrome/installer/mini_installer.gyp:chrome_frame_mini_installer',
'../courgette/courgette.gyp:courgette_unittests',
'../chrome/chrome.gyp:chrome',
'../chrome_frame/chrome_frame.gyp:npchrome_frame',
diff --git a/build/common.gypi b/build/common.gypi
index 164095d..4f6d4bb 100644
--- a/build/common.gypi
+++ b/build/common.gypi
@@ -149,12 +149,6 @@
# to compile as shared by default
'library%': 'static_library',
- # The Google Update appid.
- 'google_update_appid%': '{8A69D345-D564-463c-AFF1-A69D9E530F96}',
-
- # Whether to add the experimental build define.
- 'chrome_frame_define%': 0,
-
# Whether usage of OpenMAX is enabled.
'enable_openmax%': 0,
@@ -321,9 +315,6 @@
}, { # else: branding!="Chrome"
'defines': ['CHROMIUM_BUILD'],
}],
- ['chrome_frame_define', {
- 'defines': ['CHROME_FRAME_BUILD'],
- }],
['toolkit_views==1 or chromeos==1', {
'defines': ['TOOLKIT_VIEWS=1'],
}],
diff --git a/chrome/chrome.gyp b/chrome/chrome.gyp
index 286c16e..de2a386 100755
--- a/chrome/chrome.gyp
+++ b/chrome/chrome.gyp
@@ -1233,6 +1233,7 @@
'installer/installer.gyp:*',
'../app/app.gyp:*',
'../base/base.gyp:*',
+ '../chrome_frame/chrome_frame.gyp:*',
'../ipc/ipc.gyp:*',
'../media/media.gyp:*',
'../net/net.gyp:*',
@@ -1275,11 +1276,6 @@
'../base/allocator/allocator.gyp:*',
],
}],
- ['chrome_frame_define==1', {
- 'dependencies': [
- '../chrome_frame/chrome_frame.gyp:*',
- ],
- }],
],
},
{
diff --git a/chrome/chrome_exe.gypi b/chrome/chrome_exe.gypi
index d57770b..7d923b7 100644
--- a/chrome/chrome_exe.gypi
+++ b/chrome/chrome_exe.gypi
@@ -130,13 +130,6 @@
'chrome_exe_target': 1,
},
'conditions': [
- ['chrome_frame_define==1 and OS=="win"', {
- # TODO(gregoryd): This could be shared with the 64-bit target, but
- # it does not work due to a gyp issue.
- 'dependencies': [
- '../chrome_frame/chrome_frame.gyp:npchrome_frame',
- ],
- }],
['OS=="linux" or OS=="freebsd"', {
'actions': [
{
@@ -509,6 +502,7 @@
'../breakpad/breakpad.gyp:breakpad_handler_win64',
'../breakpad/breakpad.gyp:breakpad_sender_win64',
'../base/base.gyp:base_nacl_win64',
+ '../chrome_frame/chrome_frame.gyp:npchrome_frame',
# TODO(gregoryd): build sandbox for 64 bit
# '../sandbox/sandbox.gyp:sandbox',
],
@@ -524,15 +518,6 @@
'ProgramDatabaseFile': '$(OutDir)\\nacl_exe.pdb',
},
},
- 'conditions': [
- ['chrome_frame_define==1 and OS=="win"', {
- # TODO(gregoryd): This could be shared with the 32-bit target, but
- # it does not work due to a gyp issue.
- 'dependencies': [
- '../chrome_frame/chrome_frame.gyp:npchrome_frame',
- ],
- }],
- ],
'configurations': {
'Common_Base': {
'msvs_target_platform': 'x64',
diff --git a/chrome/installer/installer.gyp b/chrome/installer/installer.gyp
index b28017d..28b46826 100644
--- a/chrome/installer/installer.gyp
+++ b/chrome/installer/installer.gyp
@@ -176,6 +176,7 @@
'../../build/util/build_util.gyp:lastchange',
'../../build/util/support/support.gyp:*',
'../../build/win/system.gyp:cygwin',
+ '../../chrome_frame/chrome_frame.gyp:npchrome_frame',
],
'include_dirs': [
'../..',
@@ -188,7 +189,7 @@
],
},
'sources': [
- 'mini_installer/chrome.release',
+ 'mini_installer/chrome_frame.release',
'setup/install.cc',
'setup/install.h',
'setup/setup_main.cc',
@@ -244,9 +245,11 @@
'extension': 'release',
'variables': {
'scan_server_dlls_py' : '../tools/build/win/scan_server_dlls.py',
+ 'template_file': 'mini_installer/chrome_frame.release',
},
'inputs': [
- '<scan_server_dlls_py)',
+ '<(scan_server_dlls_py)',
+ '<(template_file)'
],
'outputs': [
'<(INTERMEDIATE_DIR)/registered_dlls.h',
@@ -264,11 +267,6 @@
},
],
'conditions': [
- ['chrome_frame_define==1', {
- 'dependencies': [
- '../../chrome_frame/chrome_frame.gyp:npchrome_frame',
- ],
- }],
# TODO(mark): <(branding_dir) should be defined by the
# global condition block at the bottom of the file, but
# this doesn't work due to the following issue:
diff --git a/chrome/installer/installer_util.gypi b/chrome/installer/installer_util.gypi
index f6c7bbc..497248e 100644
--- a/chrome/installer/installer_util.gypi
+++ b/chrome/installer/installer_util.gypi
@@ -68,7 +68,6 @@
},
'dependencies': [
'installer_util_strings',
- '../../app/app.gyp:app_id',
'../chrome.gyp:common_constants',
'../chrome.gyp:chrome_resources',
'../chrome.gyp:chrome_strings',
diff --git a/chrome/installer/mini_installer.gyp b/chrome/installer/mini_installer.gyp
index 4fc5a6f..e4cc0f1 100755
--- a/chrome/installer/mini_installer.gyp
+++ b/chrome/installer/mini_installer.gyp
@@ -9,129 +9,207 @@
},
'conditions': [
['OS=="win"', {
+ 'target_defaults': {
+ 'dependencies': [
+ '../chrome.gyp:chrome',
+ '../chrome.gyp:chrome_dll',
+ '../chrome.gyp:default_extensions',
+ 'installer.gyp:setup',
+ ],
+ 'include_dirs': [
+ '../..',
+ '<(PRODUCT_DIR)',
+ '<(INTERMEDIATE_DIR)',
+ '<(SHARED_INTERMEDIATE_DIR)/chrome',
+ ],
+ 'sources': [
+ 'mini_installer/appid.h',
+ 'mini_installer/mini_installer.cc',
+ 'mini_installer/mini_installer.h',
+ 'mini_installer/mini_installer.ico',
+ 'mini_installer/mini_installer.rc',
+ 'mini_installer/mini_installer_exe_version.rc.version',
+ 'mini_installer/mini_installer_resource.h',
+ 'mini_installer/pe_resource.cc',
+ 'mini_installer/pe_resource.h',
+ ],
+ 'msvs_settings': {
+ 'VCCLCompilerTool': {
+ 'EnableIntrinsicFunctions': 'true',
+ 'BufferSecurityCheck': 'false',
+ 'BasicRuntimeChecks': '0',
+ },
+ 'VCLinkerTool': {
+ 'RandomizedBaseAddress': '1',
+ 'DataExecutionPrevention': '0',
+ 'AdditionalLibraryDirectories': [
+ '<(DEPTH)/third_party/platformsdk_win7/files/Lib',
+ '<(PRODUCT_DIR)/lib'
+ ],
+ 'DelayLoadDLLs': [],
+ 'EntryPointSymbol': 'MainEntryPoint',
+ 'GenerateMapFile': 'true',
+ 'IgnoreAllDefaultLibraries': 'true',
+ 'OptimizeForWindows98': '1',
+ 'SubSystem': '2', # Set /SUBSYSTEM:WINDOWS
+ 'AdditionalDependencies': [
+ '"$(VCInstallDir)crt\\src\\intel\\mt_lib\\memset.obj"',
+ '"$(VCInstallDir)crt\\src\\intel\\mt_lib\\P4_memset.obj"',
+ 'shlwapi.lib',
+ ],
+ },
+ 'VCManifestTool': {
+ 'AdditionalManifestFiles': [
+ '$(ProjectDir)\\mini_installer\\mini_installer.exe.manifest',
+ ],
+ },
+ },
+ 'configurations': {
+ 'Debug_Base': {
+ 'msvs_settings': {
+ 'VCCLCompilerTool': {
+ 'BasicRuntimeChecks': '0',
+ 'BufferSecurityCheck': 'false',
+ },
+ 'VCLinkerTool': {
+ 'AdditionalOptions': [
+ '/safeseh:no',
+ '/dynamicbase:no',
+ '/ignore:4199',
+ '/ignore:4221',
+ '/nxcompat',
+ ],
+ },
+ },
+ },
+ 'Release_Base': {
+ 'includes': ['../../build/internal/release_defaults.gypi'],
+ 'msvs_settings': {
+ 'VCCLCompilerTool': {
+ 'EnableIntrinsicFunctions': 'true',
+ 'BasicRuntimeChecks': '0',
+ 'BufferSecurityCheck': 'false',
+ },
+ 'VCLinkerTool': {
+ 'AdditionalOptions': [
+ '/SAFESEH:NO',
+ '/NXCOMPAT',
+ '/DYNAMICBASE:NO',
+ '/FIXED',
+ ],
+ },
+ },
+ },
+ },
+ 'rules': [
+ {
+ 'rule_name': 'mini_installer_version',
+ 'extension': 'version',
+ 'variables': {
+ 'template_input_path': 'mini_installer/mini_installer_exe_version.rc.version',
+ },
+ 'inputs': [
+ '<(template_input_path)',
+ '<(version_path)',
+ '<(lastchange_path)',
+ '<(branding_dir)/BRANDING',
+ ],
+ 'outputs': [
+ '<(INTERMEDIATE_DIR)/mini_installer_exe_version.rc',
+ ],
+ 'action': [
+ 'python', '<(version_py)',
+ '-f', '<(version_path)',
+ '-f', '<(lastchange_path)',
+ '-f', '<(branding_dir)/BRANDING',
+ '<(template_input_path)',
+ '<@(_outputs)',
+ ],
+ 'process_outputs_as_sources': 1,
+ 'message': 'Generating version information'
+ },
+ ],
+ # TODO(mark): <(branding_dir) should be defined by the
+ # global condition block at the bottom of the file, but
+ # this doesn't work due to the following issue:
+ #
+ # http://code.google.com/p/gyp/issues/detail?id=22
+ #
+ # Remove this block once the above issue is fixed.
+ 'conditions': [
+ [ 'branding == "Chrome"', {
+ 'variables': {
+ 'branding_dir': '../app/theme/google_chrome',
+ },
+ }, { # else branding!="Chrome"
+ 'variables': {
+ 'branding_dir': '../app/theme/chromium',
+ },
+ }],
+ ],
+ },
'targets': [
{
'target_name': 'mini_installer',
'type': 'executable',
'msvs_guid': '24A5AC7C-280B-4899-9153-6BA570A081E7',
- 'dependencies': [
- '../../app/app.gyp:app_id',
- '../chrome.gyp:chrome',
- '../chrome.gyp:chrome_dll',
- '../chrome.gyp:default_extensions',
- 'installer.gyp:setup',
- ],
- 'include_dirs': [
- '../..',
- '<(PRODUCT_DIR)',
- '<(INTERMEDIATE_DIR)',
- '<(SHARED_INTERMEDIATE_DIR)/chrome',
- ],
'sources': [
'mini_installer/chrome.release',
- 'mini_installer/mini_installer.cc',
- 'mini_installer/mini_installer.h',
- 'mini_installer/mini_installer.ico',
- 'mini_installer/mini_installer.rc',
- 'mini_installer/mini_installer_exe_version.rc.version',
- 'mini_installer/mini_installer_resource.h',
- 'mini_installer/pe_resource.cc',
- 'mini_installer/pe_resource.h',
+ 'mini_installer/chrome_appid.cc',
],
- 'msvs_settings': {
- 'VCCLCompilerTool': {
- 'EnableIntrinsicFunctions': 'true',
- 'BufferSecurityCheck': 'false',
- 'BasicRuntimeChecks': '0',
- },
- 'VCLinkerTool': {
- 'RandomizedBaseAddress': '1',
- 'DataExecutionPrevention': '0',
- 'AdditionalLibraryDirectories': [
- '<(DEPTH)/third_party/platformsdk_win7/files/Lib',
- '<(PRODUCT_DIR)/lib'
- ],
- 'DelayLoadDLLs': [],
- 'EntryPointSymbol': 'MainEntryPoint',
- 'GenerateMapFile': 'true',
- 'IgnoreAllDefaultLibraries': 'true',
- 'OptimizeForWindows98': '1',
- 'SubSystem': '2', # Set /SUBSYSTEM:WINDOWS
- 'AdditionalDependencies': [
- '"$(VCInstallDir)crt\\src\\intel\\mt_lib\\memset.obj"',
- '"$(VCInstallDir)crt\\src\\intel\\mt_lib\\P4_memset.obj"',
- 'shlwapi.lib',
- ],
- },
- 'VCManifestTool': {
- 'AdditionalManifestFiles': [
- '$(ProjectDir)\\mini_installer\\mini_installer.exe.manifest',
- ],
- },
- },
- 'configurations': {
- 'Debug_Base': {
- 'msvs_settings': {
- 'VCCLCompilerTool': {
- 'BasicRuntimeChecks': '0',
- },
- 'VCLinkerTool': {
- 'AdditionalOptions': [
- '/safeseh:no',
- '/dynamicbase:no',
- '/ignore:4199',
- '/ignore:4221',
- '/nxcompat',
- ],
- },
- },
- },
- 'Release_Base': {
- 'includes': ['../../build/internal/release_defaults.gypi'],
- 'msvs_settings': {
- 'VCCLCompilerTool': {
- 'EnableIntrinsicFunctions': 'true',
- 'BasicRuntimeChecks': '0',
- 'BufferSecurityCheck': 'false',
- },
- 'VCLinkerTool': {
- 'AdditionalOptions': [
- '/SAFESEH:NO',
- '/NXCOMPAT',
- '/DYNAMICBASE:NO',
- '/FIXED',
- ],
- },
- },
- },
- },
'rules': [
{
- 'rule_name': 'mini_installer_version',
- 'extension': 'version',
+ 'rule_name': 'installer_archive',
+ 'extension': 'release',
'variables': {
- 'template_input_path': 'mini_installer/mini_installer_exe_version.rc.version',
+ 'create_installer_archive_py_path':
+ '../tools/build/win/create_installer_archive.py',
},
'inputs': [
- '<(template_input_path)',
- '<(version_path)',
- '<(lastchange_path)',
- '<(branding_dir)/BRANDING',
+ '<(create_installer_archive_py_path)',
+ '<(PRODUCT_DIR)/chrome.exe',
+ '<(PRODUCT_DIR)/chrome.dll',
+ '<(PRODUCT_DIR)/locales/en-US.dll',
+ '<(PRODUCT_DIR)/icudt42.dll',
],
'outputs': [
- '<(INTERMEDIATE_DIR)/mini_installer_exe_version.rc',
+ 'xxx.out',
+ '<(PRODUCT_DIR)/<(RULE_INPUT_NAME).7z',
+ '<(PRODUCT_DIR)/<(RULE_INPUT_NAME).packed.7z',
+ '<(PRODUCT_DIR)/setup.ex_',
+ '<(PRODUCT_DIR)/packed_files.txt',
],
'action': [
- 'python', '<(version_py)',
- '-f', '<(version_path)',
- '-f', '<(lastchange_path)',
- '-f', '<(branding_dir)/BRANDING',
- '<(template_input_path)',
- '<@(_outputs)',
+ 'python',
+ '<(create_installer_archive_py_path)',
+ '--output_dir=<(PRODUCT_DIR)',
+ '--input_file=<(RULE_INPUT_PATH)',
+ # TODO(sgk): may just use environment variables
+ #'--distribution=$(CHROMIUM_BUILD)',
+ '--distribution=_google_chrome',
+ # Optional arguments to generate diff installer
+ #'--last_chrome_installer=C:/Temp/base',
+ #'--setup_exe_format=DIFF',
+ #'--diff_algorithm=COURGETTE',
],
- 'process_outputs_as_sources': 1,
- 'message': 'Generating version information'
+ 'message': 'Create installer archive'
},
+ ],
+ },
+ {
+ 'target_name': 'chrome_frame_mini_installer',
+ 'type': 'executable',
+ 'msvs_guid': '2F3651F5-4662-4565-A4F6-AD15B0E893AA',
+ 'sources': [
+ 'mini_installer/chrome_frame.release',
+ 'mini_installer/chrome_frame_appid.cc',
+ ],
+ 'dependencies': [
+ # Artificially make this depend on the other to avoid
+ # problems with parallel packaging scripts being run.
+ 'mini_installer',
+ ],
+ 'rules': [
{
'rule_name': 'installer_archive',
'extension': 'release',
@@ -161,32 +239,15 @@
# TODO(sgk): may just use environment variables
#'--distribution=$(CHROMIUM_BUILD)',
'--distribution=_google_chrome',
- # Optional arguments to generate diff installer
+ '--archive_prefix=cf',
+ # Optional arguments to generate diff installer
#'--last_chrome_installer=C:/Temp/base',
#'--setup_exe_format=DIFF',
#'--diff_algorithm=COURGETTE',
],
- 'message': 'Create installer archive'
+ 'message': 'Create Chrome Frame installer archive'
},
],
- # TODO(mark): <(branding_dir) should be defined by the
- # global condition block at the bottom of the file, but
- # this doesn't work due to the following issue:
- #
- # http://code.google.com/p/gyp/issues/detail?id=22
- #
- # Remove this block once the above issue is fixed.
- 'conditions': [
- [ 'branding == "Chrome"', {
- 'variables': {
- 'branding_dir': '../app/theme/google_chrome',
- },
- }, { # else branding!="Chrome"
- 'variables': {
- 'branding_dir': '../app/theme/chromium',
- },
- }],
- ],
},
],
}],
diff --git a/chrome/installer/mini_installer/appid.h b/chrome/installer/mini_installer/appid.h
new file mode 100644
index 0000000..552c5e6
--- /dev/null
+++ b/chrome/installer/mini_installer/appid.h
@@ -0,0 +1,13 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef CHROME_INSTALLER_MINI_INSTALLER_APPID_H_
+#define CHROME_INSTALLER_MINI_INSTALLER_APPID_H_
+
+// The appid included by the mini_installer.
+namespace google_update {
+extern const wchar_t kAppGuid[];
+}
+
+#endif // CHROME_INSTALLER_MINI_INSTALLER_APPID_H_
diff --git a/chrome/installer/mini_installer/chrome.release b/chrome/installer/mini_installer/chrome.release
index 8237c65..1a46d06 100644
--- a/chrome/installer/mini_installer/chrome.release
+++ b/chrome/installer/mini_installer/chrome.release
@@ -38,8 +38,6 @@ Themes\default.dll: %(VersionDir)s\Themes
locales\*.dll: %(VersionDir)s\Locales
Resources\Inspector\*.*: %(VersionDir)s\Resources\Inspector
Resources\Inspector\Images\*.*: %(VersionDir)s\Resources\Inspector\Images
-servers\*.dll: %(VersionDir)s\
-servers\*.exe: %(VersionDir)s\
Extensions\*.*: %(VersionDir)s\Extensions\
av*.dll: %(VersionDir)s\
diff --git a/chrome/installer/mini_installer/chrome_appid.cc b/chrome/installer/mini_installer/chrome_appid.cc
new file mode 100644
index 0000000..799aad1
--- /dev/null
+++ b/chrome/installer/mini_installer/chrome_appid.cc
@@ -0,0 +1,9 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/installer/mini_installer/appid.h"
+
+namespace google_update {
+const wchar_t kAppGuid[] = L"{8A69D345-D564-463c-AFF1-A69D9E530F96}";
+}
diff --git a/chrome/installer/mini_installer/chrome_frame.release b/chrome/installer/mini_installer/chrome_frame.release
new file mode 100644
index 0000000..8237c65
--- /dev/null
+++ b/chrome/installer/mini_installer/chrome_frame.release
@@ -0,0 +1,47 @@
+# Copyright 2008, Google Inc.
+# All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions are
+# met:
+#
+# * Redistributions of source code must retain the above copyright
+# notice, this list of conditions and the following disclaimer.
+# * Redistributions in binary form must reproduce the above
+# copyright notice, this list of conditions and the following disclaimer
+# in the documentation and/or other materials provided with the
+# distribution.
+# * Neither the name of Google Inc. nor the names of its
+# contributors may be used to endorse or promote products derived from
+# this software without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+[GENERAL]
+chrome.exe: %(ChromeDir)s\
+wow_helper.exe: %(ChromeDir)s\
+Dictionaries\en-US.bdic: %(ChromeDir)s\Dictionaries
+chrome.dll: %(VersionDir)s\
+icudt42.dll: %(VersionDir)s\
+gears.dll: %(VersionDir)s\
+Themes\default.dll: %(VersionDir)s\Themes
+locales\*.dll: %(VersionDir)s\Locales
+Resources\Inspector\*.*: %(VersionDir)s\Resources\Inspector
+Resources\Inspector\Images\*.*: %(VersionDir)s\Resources\Inspector\Images
+servers\*.dll: %(VersionDir)s\
+servers\*.exe: %(VersionDir)s\
+Extensions\*.*: %(VersionDir)s\Extensions\
+av*.dll: %(VersionDir)s\
+
+[GOOGLE_CHROME]
+rlz.dll: %(VersionDir)s\
diff --git a/chrome/installer/mini_installer/chrome_frame_appid.cc b/chrome/installer/mini_installer/chrome_frame_appid.cc
new file mode 100644
index 0000000..1462292
--- /dev/null
+++ b/chrome/installer/mini_installer/chrome_frame_appid.cc
@@ -0,0 +1,9 @@
+// Copyright (c) 2010 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "chrome/installer/mini_installer/appid.h"
+
+namespace google_update {
+const wchar_t kAppGuid[] = L"{8BA986DA-5100-405E-AA35-86F34A02ACBF}";
+}
diff --git a/chrome/installer/mini_installer/mini_installer.cc b/chrome/installer/mini_installer/mini_installer.cc
index 488afde..3bee0d6 100644
--- a/chrome/installer/mini_installer/mini_installer.cc
+++ b/chrome/installer/mini_installer/mini_installer.cc
@@ -32,12 +32,10 @@
#include <Shellapi.h>
#include <shlwapi.h>
+#include "chrome/installer/mini_installer/appid.h"
#include "chrome/installer/mini_installer/mini_installer.h"
#include "chrome/installer/mini_installer/pe_resource.h"
-// Generated header that includes the Google Update id.
-#include "appid.h"
-
// Required linker symbol. See remarks above.
extern "C" unsigned int __sse2_available = 0;
@@ -155,7 +153,7 @@ void SetFullInstallerFlag(HKEY root_key) {
if (!SafeStrCopy(ap_registry_key, _countof(ap_registry_key),
kApRegistryKeyBase) ||
!SafeStrCat(ap_registry_key, _countof(ap_registry_key),
- google_update::kChromeGuid)) {
+ google_update::kAppGuid)) {
return;
}
if (::RegOpenKeyEx(root_key, ap_registry_key, NULL,
diff --git a/chrome/installer/setup/install.cc b/chrome/installer/setup/install.cc
index 088ba65..145b7ce 100644
--- a/chrome/installer/setup/install.cc
+++ b/chrome/installer/setup/install.cc
@@ -30,11 +30,6 @@
#include "installer_util_strings.h"
#include "registered_dlls.h"
-#if defined(CHROME_FRAME_BUILD)
-COMPILE_ASSERT(kNumDllsToRegister > 0,
- Chrome_Frame_DLL_must_be_built_before_setup);
-#endif
-
namespace {
std::wstring AppendPath(const std::wstring& parent_path,
@@ -372,30 +367,39 @@ bool DoPostInstallTasks(HKEY reg_root,
}
}
- // Now we need to register any self registering components and unregister
- // any that were left from the old version that is being upgraded:
- if (!current_version.empty()) {
- std::wstring old_dll_path(install_path);
- file_util::AppendToPath(&old_dll_path, current_version);
- scoped_ptr<WorkItemList> old_dll_list(WorkItem::CreateWorkItemList());
- if (InstallUtil::BuildDLLRegistrationList(old_dll_path, kDllsToRegister,
- kNumDllsToRegister, false,
- old_dll_list.get())) {
- // Don't abort the install as a result of a failure to unregister old
- // DLLs.
- old_dll_list->Do();
+ if (InstallUtil::IsChromeFrameProcess()) {
+ // Chrome Frame instances of setup.exe should always have at least
+ // one DLL to register. Enforce that this is so.
+ if (kNumDllsToRegister <= 0) {
+ NOTREACHED();
+ return false;
}
- }
- std::wstring dll_path(install_path);
- file_util::AppendToPath(&dll_path, new_version.GetString());
- scoped_ptr<WorkItemList> dll_list(WorkItem::CreateWorkItemList());
- if (InstallUtil::BuildDLLRegistrationList(dll_path, kDllsToRegister,
- kNumDllsToRegister, true,
- dll_list.get())) {
- if (!dll_list->Do()) {
- dll_list->Rollback();
- return false;
+ // Now we need to register any self registering components and unregister
+ // any that were left from the old version that is being upgraded:
+ if (!current_version.empty()) {
+ std::wstring old_dll_path(install_path);
+ file_util::AppendToPath(&old_dll_path, current_version);
+ scoped_ptr<WorkItemList> old_dll_list(WorkItem::CreateWorkItemList());
+ if (InstallUtil::BuildDLLRegistrationList(old_dll_path, kDllsToRegister,
+ kNumDllsToRegister, false,
+ old_dll_list.get())) {
+ // Don't abort the install as a result of a failure to unregister old
+ // DLLs.
+ old_dll_list->Do();
+ }
+ }
+
+ std::wstring dll_path(install_path);
+ file_util::AppendToPath(&dll_path, new_version.GetString());
+ scoped_ptr<WorkItemList> dll_list(WorkItem::CreateWorkItemList());
+ if (InstallUtil::BuildDLLRegistrationList(dll_path, kDllsToRegister,
+ kNumDllsToRegister, true,
+ dll_list.get())) {
+ if (!dll_list->Do()) {
+ dll_list->Rollback();
+ return false;
+ }
}
}
diff --git a/chrome/tools/build/win/create_installer_archive.py b/chrome/tools/build/win/create_installer_archive.py
index 35b5437..eeb0c01 100755
--- a/chrome/tools/build/win/create_installer_archive.py
+++ b/chrome/tools/build/win/create_installer_archive.py
@@ -147,12 +147,14 @@ def MakeStagingDirectories(output_dir):
"""Creates a staging path for installer archive. If directory exists already,
deletes the existing directory.
"""
- file_path = os.path.join(output_dir, ARCHIVE_DIR)
+ prefixed_archive_dir = (options.archive_prefix or "") + ARCHIVE_DIR
+ file_path = os.path.join(output_dir, prefixed_archive_dir)
if os.path.exists(file_path):
shutil.rmtree(file_path)
os.makedirs(file_path)
- temp_file_path = os.path.join(output_dir, TEMP_ARCHIVE_DIR)
+ prefixed_temp_archive_dir = (options.archive_prefix or "") + TEMP_ARCHIVE_DIR
+ temp_file_path = os.path.join(output_dir, prefixed_temp_archive_dir)
if os.path.exists(temp_file_path):
shutil.rmtree(temp_file_path)
os.makedirs(temp_file_path)
@@ -313,6 +315,9 @@ if '__main__' == __name__:
'specifies the directory that contains base versions of ' +
'setup.exe, courgette.exe (if --diff_algorithm is COURGETTE) ' +
'& chrome.7z.')
+ option_parser.add_option('-p', '--archive_prefix',
+ help='Specifies a prefix to the archive path. Useful if building ' +
+ 'multiple installer archives.')
option_parser.add_option('-f', '--setup_exe_format', default='COMPRESSED',
help='How setup.exe should be included {COMPRESSED|DIFF|FULL}.')
option_parser.add_option('-a', '--diff_algorithm', default='BSDIFF',
diff --git a/chrome_frame/chrome_frame.gyp b/chrome_frame/chrome_frame.gyp
index 75d0d42..de04bbd 100644
--- a/chrome_frame/chrome_frame.gyp
+++ b/chrome_frame/chrome_frame.gyp
@@ -304,7 +304,6 @@
'dependencies': [
'../base/base.gyp:test_support_base',
'../chrome/chrome.gyp:browser',
- '../chrome/chrome.gyp:chrome_dll_version',
'../chrome/chrome.gyp:chrome_resources',
'../chrome/chrome.gyp:debugger',
'../chrome/chrome.gyp:renderer',
@@ -343,11 +342,11 @@
'conditions': [
['OS=="win"', {
'dependencies': [
- '../chrome/chrome.gyp:automation',
'../breakpad/breakpad.gyp:breakpad_handler',
+ '../chrome/chrome.gyp:automation',
+ '../chrome/chrome.gyp:chrome_dll_version',
'../chrome/installer/installer.gyp:installer_util',
'../google_update/google_update.gyp:google_update',
- '../chrome/installer/installer.gyp:installer_util',
]
}],
],
diff --git a/chrome_frame/rename_me_to_supplement.gypi b/chrome_frame/rename_me_to_supplement.gypi
deleted file mode 100644
index bdc9ae9..0000000
--- a/chrome_frame/rename_me_to_supplement.gypi
+++ /dev/null
@@ -1,29 +0,0 @@
-# Copyright (c) 2009 The Chromium Authors. All rights reserved.
-# Use of this source code is governed by a BSD-style license that can be
-# found in the LICENSE file.
-
-# It is used to override the Chrome Frame appid, as well as
-# add extra required source files and defines. The file is checked in as
-# rename_me_to_supplement.gypi so as to not be active on the official builder.
-# This is required because with these fields present, Chrome will build in
-# Chrome Frame mode, which isn't what the Chrome official builder wants yet.
-#
-# Renaming this file to supplement.gypi will cause gyp to pick it up.
-# supplement.gypi is a magic gyp include file that gets pulled in before any
-# other includes.
-#
-# The official builder will define these extra vars and whatnot in the build
-# scripts themselves.
-{
- 'variables': {
- 'google_update_appid': '{8BA986DA-5100-405E-AA35-86F34A02ACBF}',
- 'extra_installer_util_sources': 0,
- 'chrome_frame_define': 1,
- },
-}
-
-# Local Variables:
-# tab-width:2
-# indent-tabs-mode:nil
-# End:
-# vim: set expandtab tabstop=2 shiftwidth=2: