OLD | NEW |
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 434 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
445 # chrome.exe and setup.exe. Some of these DLLs are not actually used by | 445 # chrome.exe and setup.exe. Some of these DLLs are not actually used by |
446 # either process, but listing them all as dependencies doesn't hurt as it | 446 # either process, but listing them all as dependencies doesn't hurt as it |
447 # only makes them visible to the exes, just like they already are in the | 447 # only makes them visible to the exes, just like they already are in the |
448 # build output directory. | 448 # build output directory. |
449 exe_manifest_dependencies_list = [] | 449 exe_manifest_dependencies_list = [] |
450 for name in dll_names: | 450 for name in dll_names: |
451 exe_manifest_dependencies_list.append( | 451 exe_manifest_dependencies_list.append( |
452 "<dependency>" | 452 "<dependency>" |
453 "<dependentAssembly>" | 453 "<dependentAssembly>" |
454 "<assemblyIdentity type='win32' name='chrome.{dll_name}' " | 454 "<assemblyIdentity type='win32' name='chrome.{dll_name}' " |
455 "version='0.0.0.0' processorArchitecture='x86' language='*'/>" | 455 "version='0.0.0.0' processorArchitecture='*' language='*'/>" |
456 "</dependentAssembly>" | 456 "</dependentAssembly>" |
457 "</dependency>".format(dll_name=name)) | 457 "</dependency>".format(dll_name=name)) |
458 | 458 |
459 exe_manifest_dependencies = ''.join(exe_manifest_dependencies_list) | 459 exe_manifest_dependencies = ''.join(exe_manifest_dependencies_list) |
460 | 460 |
461 # Write a modified chrome.exe.manifest beside chrome.exe. | 461 # Write a modified chrome.exe.manifest beside chrome.exe. |
462 CopyAndAugmentManifest(build_dir, chrome_dir, 'chrome.exe.manifest', | 462 CopyAndAugmentManifest(build_dir, chrome_dir, 'chrome.exe.manifest', |
463 exe_manifest_dependencies, '</assembly>') | 463 exe_manifest_dependencies, '</assembly>') |
464 | 464 |
465 # Write a modified setup.exe.manifest beside setup.exe in | 465 # Write a modified setup.exe.manifest beside setup.exe in |
466 # |version_dir|/Installer. | 466 # |version_dir|/Installer. |
467 CopyAndAugmentManifest(build_dir, installer_dir, 'setup.exe.manifest', | 467 CopyAndAugmentManifest(build_dir, installer_dir, 'setup.exe.manifest', |
468 exe_manifest_dependencies, '</assembly>') | 468 exe_manifest_dependencies, '</assembly>') |
469 | 469 |
470 # Generate assembly manifests for each DLL in |dlls|. These do not interfere | 470 # Generate assembly manifests for each DLL in |dlls|. These do not interfere |
471 # with the private manifests potentially embedded in each DLL. They simply | 471 # with the private manifests potentially embedded in each DLL. They simply |
472 # allow chrome.exe and setup.exe to see those DLLs although they are in a | 472 # allow chrome.exe and setup.exe to see those DLLs although they are in a |
473 # separate directory post-install. | 473 # separate directory post-install. |
474 for name in dll_names: | 474 for name in dll_names: |
475 dll_manifest = ( | 475 dll_manifest = ( |
476 "<assembly\n" | 476 "<assembly\n" |
477 " xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>\n" | 477 " xmlns='urn:schemas-microsoft-com:asm.v1' manifestVersion='1.0'>\n" |
478 " <assemblyIdentity name='chrome.{dll_name}' version='0.0.0.0'\n" | 478 " <assemblyIdentity name='chrome.{dll_name}' version='0.0.0.0'\n" |
479 " type='win32' processorArchitecture='x86'/>\n" | 479 " type='win32' processorArchitecture='*'/>\n" |
480 " <file name='{dll_name}.dll'/>\n" | 480 " <file name='{dll_name}.dll'/>\n" |
481 "</assembly>".format(dll_name=name)) | 481 "</assembly>".format(dll_name=name)) |
482 | 482 |
483 dll_manifest_file = open(os.path.join( | 483 dll_manifest_file = open(os.path.join( |
484 version_dir, "chrome.{dll_name}.manifest".format(dll_name=name)), 'w') | 484 version_dir, "chrome.{dll_name}.manifest".format(dll_name=name)), 'w') |
485 dll_manifest_file.write(dll_manifest) | 485 dll_manifest_file.write(dll_manifest) |
486 dll_manifest_file.close() | 486 dll_manifest_file.close() |
487 | 487 |
488 | 488 |
489 def main(options): | 489 def main(options): |
(...skipping 104 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
594 if not options.resource_file_path: | 594 if not options.resource_file_path: |
595 options.resource_file_path = os.path.join(options.build_dir, | 595 options.resource_file_path = os.path.join(options.build_dir, |
596 MINI_INSTALLER_INPUT_FILE) | 596 MINI_INSTALLER_INPUT_FILE) |
597 | 597 |
598 return options | 598 return options |
599 | 599 |
600 | 600 |
601 if '__main__' == __name__: | 601 if '__main__' == __name__: |
602 print sys.argv | 602 print sys.argv |
603 sys.exit(main(_ParseOptions())) | 603 sys.exit(main(_ParseOptions())) |
OLD | NEW |