Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(207)

Side by Side Diff: chrome/tools/build/win/create_installer_archive.py

Issue 53793002: Initial implementation of Chrome Early Loading Framework (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Clean up Created 7 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
1 #!/usr/bin/env python 1 #!/usr/bin/env python
2 # Copyright (c) 2012 The Chromium Authors. All rights reserved. 2 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
3 # Use of this source code is governed by a BSD-style license that can be 3 # Use of this source code is governed by a BSD-style license that can be
4 # found in the LICENSE file. 4 # found in the LICENSE file.
5 5
6 """Script to create Chrome Installer archive. 6 """Script to create Chrome Installer archive.
7 7
8 This script is used to create an archive of all the files required for a 8 This script is used to create an archive of all the files required for a
9 Chrome install in appropriate directory structure. It reads chrome.release 9 Chrome install in appropriate directory structure. It reads chrome.release
10 file as input, creates chrome.7z archive, compresses setup.exe and 10 file as input, creates chrome.7z archive, compresses setup.exe and
(...skipping 330 matching lines...) Expand 10 before | Expand all | Expand 10 after
341 insert_before, ''.join(manifest_lines))) 341 insert_before, ''.join(manifest_lines)))
342 old = manifest_lines[insert_line] 342 old = manifest_lines[insert_line]
343 manifest_lines[insert_line] = (old[:insert_pos] + inserted_string + 343 manifest_lines[insert_line] = (old[:insert_pos] + inserted_string +
344 old[insert_pos:]) 344 old[insert_pos:])
345 345
346 modified_manifest_file = open( 346 modified_manifest_file = open(
347 os.path.join(output_dir, manifest_name), 'w') 347 os.path.join(output_dir, manifest_name), 'w')
348 modified_manifest_file.write(''.join(manifest_lines)) 348 modified_manifest_file.write(''.join(manifest_lines))
349 modified_manifest_file.close() 349 modified_manifest_file.close()
350 350
351 def AddVersionAssemblyManifest(staging_dir, current_version):
352 """Creates a manifest file, {current_version}.manifest, and places it in the
353 VersionDir, so that chrome.exe can find the chrome_elf dll.
354 """
355 # Get the required directories for the upcoming operations.
356 chrome_dir = os.path.join(staging_dir, CHROME_DIR)
357 version_dir = os.path.join(chrome_dir, current_version)
358
359 version_manifest = (
360 "<assembly\n"
361 " xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>\n"
362 " <assemblyIdentity name='{version}' version='{version}'\n"
363 " type='win32'/>\n"
364 " <file name='chrome_elf.dll'/>\n"
365 "</assembly>".format(version=current_version))
366
367 manifest_name = "%s.manifest" % current_version
368
369 with open(os.path.join(version_dir, manifest_name), 'w') as f:
gab 2013/11/05 16:43:20 I'm guessing this automatically closes |f| when it
grt (UTC plus 2) 2013/11/05 20:56:06 at the end of the scope opened by the "with", yes.
370 f.write(version_manifest)
371
351 372
352 def CopyIfChanged(src, target_dir): 373 def CopyIfChanged(src, target_dir):
353 """Copy specified |src| file to |target_dir|, but only write to target if 374 """Copy specified |src| file to |target_dir|, but only write to target if
354 the file has changed. This avoids a problem during packaging where parts of 375 the file has changed. This avoids a problem during packaging where parts of
355 the build have not completed and have the runtime DLL locked when we try to 376 the build have not completed and have the runtime DLL locked when we try to
356 copy over it. See http://crbug.com/305877 for details.""" 377 copy over it. See http://crbug.com/305877 for details."""
357 assert os.path.isdir(target_dir) 378 assert os.path.isdir(target_dir)
358 dest = os.path.join(target_dir, os.path.basename(src)) 379 dest = os.path.join(target_dir, os.path.basename(src))
359 if os.path.exists(dest): 380 if os.path.exists(dest):
360 # We assume the files are OK to buffer fully into memory since we know 381 # We assume the files are OK to buffer fully into memory since we know
(...skipping 189 matching lines...) Expand 10 before | Expand all | Expand 10 after
550 571
551 # Now copy the remainder of the files from the build dir. 572 # Now copy the remainder of the files from the build dir.
552 CopyAllFilesToStagingDir(config, options.distribution, 573 CopyAllFilesToStagingDir(config, options.distribution,
553 staging_dir, options.build_dir, 574 staging_dir, options.build_dir,
554 options.enable_hidpi, options.enable_touch_ui) 575 options.enable_hidpi, options.enable_touch_ui)
555 576
556 if options.component_build == '1': 577 if options.component_build == '1':
557 DoComponentBuildTasks(staging_dir, options.build_dir, 578 DoComponentBuildTasks(staging_dir, options.build_dir,
558 options.target_arch, current_version) 579 options.target_arch, current_version)
559 580
581 AddVersionAssemblyManifest(staging_dir, current_version)
582
560 version_numbers = current_version.split('.') 583 version_numbers = current_version.split('.')
561 current_build_number = version_numbers[2] + '.' + version_numbers[3] 584 current_build_number = version_numbers[2] + '.' + version_numbers[3]
562 prev_build_number = '' 585 prev_build_number = ''
563 if prev_version: 586 if prev_version:
564 version_numbers = prev_version.split('.') 587 version_numbers = prev_version.split('.')
565 prev_build_number = version_numbers[2] + '.' + version_numbers[3] 588 prev_build_number = version_numbers[2] + '.' + version_numbers[3]
566 589
567 # Name of the archive file built (for example - chrome.7z or 590 # Name of the archive file built (for example - chrome.7z or
568 # patch-<old_version>-<new_version>.7z or patch-<new_version>.7z 591 # patch-<old_version>-<new_version>.7z or patch-<new_version>.7z
569 archive_file = CreateArchiveFile(options, staging_dir, 592 archive_file = CreateArchiveFile(options, staging_dir,
(...skipping 69 matching lines...) Expand 10 before | Expand all | Expand 10 after
639 if not options.resource_file_path: 662 if not options.resource_file_path:
640 options.resource_file_path = os.path.join(options.build_dir, 663 options.resource_file_path = os.path.join(options.build_dir,
641 MINI_INSTALLER_INPUT_FILE) 664 MINI_INSTALLER_INPUT_FILE)
642 665
643 return options 666 return options
644 667
645 668
646 if '__main__' == __name__: 669 if '__main__' == __name__:
647 print sys.argv 670 print sys.argv
648 sys.exit(main(_ParseOptions())) 671 sys.exit(main(_ParseOptions()))
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698