Index: chrome/tools/build/win/create_installer_archive.py |
diff --git a/chrome/tools/build/win/create_installer_archive.py b/chrome/tools/build/win/create_installer_archive.py |
index 2b59fa034af1b9a66c1f939eb13c5ba28ecdbcdf..c45964e24cfcd24a6ce477be799a7b5c32ecf65a 100755 |
--- a/chrome/tools/build/win/create_installer_archive.py |
+++ b/chrome/tools/build/win/create_installer_archive.py |
@@ -115,7 +115,9 @@ def CopySectionFilesToStagingDir(config, section, staging_dir, build_dir): |
if not os.path.exists(dst): |
os.makedirs(dst) |
for file in glob.glob(os.path.join(build_dir, option)): |
- shutil.copy(file, dst) |
+ dst_file = os.path.join(dst, os.path.basename(file)) |
+ if not os.path.exists(dst_file): |
+ shutil.copy(file, dst) |
def GenerateDiffPatch(options, orig_file, new_file, patch_file): |
if (options.diff_algorithm == "COURGETTE"): |
@@ -186,7 +188,7 @@ def CreateArchiveFile(options, staging_dir, current_version, prev_version): |
""" |
# First create an uncompressed archive file for the current build (chrome.7z) |
lzma_exec = GetLZMAExec(options.build_dir) |
- archive_file = os.path.join(options.build_dir, |
+ archive_file = os.path.join(options.output_dir, |
options.output_name + ARCHIVE_SUFFIX) |
cmd = [lzma_exec, |
'a', |
@@ -220,7 +222,7 @@ def CreateArchiveFile(options, staging_dir, current_version, prev_version): |
compressed_archive_file = options.output_name + COMPRESSED_ARCHIVE_SUFFIX |
orig_file = archive_file |
- compressed_archive_file_path = os.path.join(options.build_dir, |
+ compressed_archive_file_path = os.path.join(options.output_dir, |
compressed_archive_file) |
CompressUsingLZMA(options.build_dir, compressed_archive_file_path, orig_file) |
@@ -248,7 +250,7 @@ def PrepareSetupExec(options, staging_dir, current_version, prev_version): |
cmd = ['makecab.exe', |
'/D', 'CompressionType=LZX', |
'/V1', |
- '/L', options.build_dir, |
+ '/L', options.output_dir, |
os.path.join(options.build_dir, SETUP_EXEC),] |
RunSystemCommand(cmd) |
setup_file = SETUP_EXEC[:-1] + "_" |
@@ -316,6 +318,14 @@ def main(options): |
prev_version = GetPrevVersion(options.build_dir, temp_dir, |
options.last_chrome_installer) |
+ # Preferentially copy the files we can find from the output_dir, as |
+ # this is where we'll find the Syzygy-optimized executables when |
+ # building the optimized mini_installer. |
+ if options.build_dir != options.output_dir: |
+ CopyAllFilesToStagingDir(config, options.distribution, |
+ staging_dir, options.output_dir) |
+ |
+ # Now copy the remainder of the files from the build dir. |
CopyAllFilesToStagingDir(config, options.distribution, |
staging_dir, options.build_dir) |
@@ -341,11 +351,14 @@ def _ParseOptions(): |
parser = optparse.OptionParser() |
parser.add_option('-i', '--input_file', |
help='Input file describing which files to archive.') |
- parser.add_option('-o', '--build_dir', |
+ parser.add_option('-b', '--build_dir', |
help='Build directory. The paths in input_file are relative to this.') |
parser.add_option('--staging_dir', |
help='Staging directory where intermediate files and directories ' |
'will be created'), |
+ parser.add_option('-o', '--output_dir', |
+ help='The output directory where the archives will be written. ' |
+ 'Defaults to the build_dir.') |
parser.add_option('--resource_file_path', |
help='The path where the resource file will be output. ' |
'Defaults to %s in the build directory.' % |
@@ -368,20 +381,22 @@ def _ParseOptions(): |
help='Name used to prefix names of generated archives.') |
options, args = parser.parse_args() |
- |
if not options.build_dir: |
parser.error('You must provide a build dir.') |
if not options.staging_dir: |
parser.error('You must provide a staging dir.') |
+ if not options.output_dir: |
+ options.output_dir = options.build_dir |
+ |
if not options.resource_file_path: |
options.options.resource_file_path = os.path.join(options.build_dir, |
MINI_INSTALLER_INPUT_FILE) |
- print sys.argv |
return options |
if '__main__' == __name__: |
+ print sys.argv |
sys.exit(main(_ParseOptions())) |