Anonymous avatar Anonymous committed 99a5e3b

Fix script launcher creation on 64-bit Windows, patch by Jason R. Coombs (http://bugs.python.org/setuptools/issue2)

Comments (0)

Files changed (9)

 
 #include <stdlib.h>
 #include <stdio.h>
-#include <unistd.h>
+#include <process.h>
 #include <fcntl.h>
+#include "tchar.h"
 #include "windows.h"
 
 int fail(char *format, char *data) {
     }
 
     /* We *do* need to wait for a CLI to finish, so use spawn */
-    return spawnv(P_WAIT, ptr, (const char * const *)(newargs));
+    return _spawnv(_P_WAIT, ptr, (const char * const *)(newargs));
 }
 
-
+/*
 int WINAPI WinMain(HINSTANCE hI, HINSTANCE hP, LPSTR lpCmd, int nShow) {
     return run(__argc, __argv, GUI);
 }
 
+*/
+
+int _tmain(int argc, _TCHAR* argv[])
+{
+	return run(argc, argv, GUI);
+}
+

msvc-build-launcher.cmd

+@echo off
+
+REM VCVARSALL may be in Program Files or Program Files (x86)
+PATH=C:\Program Files\Microsoft Visual Studio 9.0\VC;%PATH%
+PATH=C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC;%PATH%
+
+REM set up the environment to compile to x86
+call VCVARSALL x86
+cl /D "GUI=0" /D "WIN32_LEAN_AND_MEAN" launcher.c /O2 /link /MACHINE:x86 /out:setuptools/cli-32.exe
+cl /D "GUI=1" /D "WIN32_LEAN_AND_MEAN" launcher.c /O2 /link /MACHINE:x86 /out:setuptools/gui-32.exe
+
+REM now for 64-bit
+call VCVARSALL x86_amd64
+cl /D "GUI=0" /D "WIN32_LEAN_AND_MEAN" launcher.c /O2 /link /MACHINE:x64 /out:setuptools/cli-64.exe
+cl /D "GUI=1" /D "WIN32_LEAN_AND_MEAN" launcher.c /O2 /link /MACHINE:x64 /out:setuptools/gui-64.exe

Binary file added.

Binary file added.

Add a comment to this file

setuptools/cli.exe

Binary file removed.

setuptools/command/easy_install.py

                 ")\n"
             ) % locals()
             if sys.platform=='win32' or wininst:
+                word_size = [32, 64]['amd64' in sys.version.lower()]
                 # On Windows/wininst, add a .py extension and an .exe launcher
                 if group=='gui_scripts':
-                    ext, launcher = '-script.pyw', 'gui.exe'
+                    ext, launcher = '-script.pyw', 'gui-%d.exe' % word_size
                     old = ['.pyw']
                     new_header = re.sub('(?i)python.exe','pythonw.exe',header)
                 else:
-                    ext, launcher = '-script.py', 'cli.exe'
+                    ext, launcher = '-script.py', 'cli-%d.exe' % word_size
                     old = ['.py','.pyc','.pyo']
                     new_header = re.sub('(?i)pythonw.exe','python.exe',header)
 

Binary file added.

Binary file added.

Add a comment to this file

setuptools/gui.exe

Binary file removed.

Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.