]> granicus.if.org Git - python/commitdiff
Use the right wininstXX.exe, depending on
authorThomas Heller <theller@ctypes.org>
Fri, 20 Feb 2004 19:38:50 +0000 (19:38 +0000)
committerThomas Heller <theller@ctypes.org>
Fri, 20 Feb 2004 19:38:50 +0000 (19:38 +0000)
msvccompiler.get_build_version().

Distributions without a pre-install-script didn't work any longer, we
must at least provide the terminating NUL character.

Lib/distutils/command/bdist_wininst.py

index 76b1762edefb63818f31e9b757f5dc06fa851494..324ce31a912e6dcf00ae67a50dba9e34ab57dd72 100644 (file)
@@ -249,6 +249,9 @@ class bdist_wininst (Command):
         if self.pre_install_script:
             script_data = open(self.pre_install_script, "r").read()
             cfgdata = cfgdata + script_data + "\n\0"
+        else:
+            # empty pre-install script
+            cfgdata = cfgdata + "\0"
         file.write(cfgdata)
         header = struct.pack("<iii",
                              0x1234567A,       # tag
@@ -261,8 +264,11 @@ class bdist_wininst (Command):
     # create_exe()
 
     def get_exe_bytes (self):
-        # wininst.exe is in the same directory as this file
+        from distutils.msvccompiler import get_build_version
+        # wininst-x.y.exe is in the same directory as this file
         directory = os.path.dirname(__file__)
-        filename = os.path.join(directory, "wininst.exe")
+        # we must use a wininst-x.y.exe built with the same C compiler
+        # used for python.  XXX What about mingw, borland, and so on?
+        filename = os.path.join(directory, "wininst-%s.exe" % get_build_version())
         return open(filename, "rb").read()
 # class bdist_wininst