diff options
author | Martin v. Löwis <martin@v.loewis.de> | 2008-04-07 16:34:04 (GMT) |
---|---|---|
committer | Martin v. Löwis <martin@v.loewis.de> | 2008-04-07 16:34:04 (GMT) |
commit | 1e72feced3731fc4995878d8ef9b86c29fb31ac6 (patch) | |
tree | e9315f8472c4e170b3102c88681222ad9cf3f870 /Tools | |
parent | 46a8be7a3583c212bba1989db6837d0093bc6343 (diff) | |
download | cpython-1e72feced3731fc4995878d8ef9b86c29fb31ac6.zip cpython-1e72feced3731fc4995878d8ef9b86c29fb31ac6.tar.gz cpython-1e72feced3731fc4995878d8ef9b86c29fb31ac6.tar.bz2 |
Make the "private CRT" case work, by editing the
manifest in DLLs to refer to the root copy of the CRT.
Diffstat (limited to 'Tools')
-rw-r--r-- | Tools/msi/msi.py | 22 |
1 files changed, 17 insertions, 5 deletions
diff --git a/Tools/msi/msi.py b/Tools/msi/msi.py index b06c2a1..c12e43b 100644 --- a/Tools/msi/msi.py +++ b/Tools/msi/msi.py @@ -105,7 +105,6 @@ extensions = [ # Using the same UUID is fine since these files are versioned, # so Installer will always keep the newest version. # NOTE: All uuids are self generated. -msvcr90_uuid = "{9C28CD84-397C-4045-855C-28B02291A272}" pythondll_uuid = { "24":"{9B81E618-2301-4035-AC77-75D9ABEB7301}", "25":"{2e41b118-38bd-4c1b-a840-6977efd1b911}", @@ -879,11 +878,24 @@ def add_files(db): version=pyversion, language=installer.FileVersion(pydllsrc, 1)) DLLs = PyDirectory(db, cab, root, srcdir + "/" + PCBUILD, "DLLs", "DLLS|DLLs") + + # msvcr90.dll: Need to place the DLL and the manifest into the root directory, + # plus another copy of the manifest in the DLLs directory, with the manifest + # pointing to the root directory root.start_component("msvcr90", feature=private_crt) - for file, kw in extract_msvcr90(): - root.add_file(file, **kw) - if file.endswith("manifest"): - DLLs.add_file(file, **kw) + # Results are ID,keyword pairs + manifest, crtdll = extract_msvcr90() + root.add_file(manifest[0], **manifest[1]) + root.add_file(crtdll[0], **crtdll[1]) + # Copy the manifest + manifest_dlls = manifest[0]+".root" + open(manifest_dlls, "w").write(open(manifest[1]['src']).read().replace("msvcr","../msvcr")) + DLLs.start_component("msvcr90_dlls", feature=private_crt) + DLLs.add_file(manifest[0], src=os.path.abspath(manifest_dlls)) + + # Now start the main component for the DLLs directory; + # no regular files have been added to the directory yet. + DLLs.start_component() # Check if _ctypes.pyd exists have_ctypes = os.path.exists(srcdir+"/%s/_ctypes.pyd" % PCBUILD) |