Commit e6e0e5ad authored by agronholm's avatar agronholm

Reversing patch for 64-bit Windows script launcher, applied PJE's simpler solution instead

--HG--
branch : distribute
extra : rebase_source : 320927dbc962a262853cae7d8b3734794bb9f21d
parent 748696a7
...@@ -25,9 +25,8 @@ ...@@ -25,9 +25,8 @@
#include <stdlib.h> #include <stdlib.h>
#include <stdio.h> #include <stdio.h>
#include <process.h> #include <unistd.h>
#include <fcntl.h> #include <fcntl.h>
#include "tchar.h"
#include "windows.h" #include "windows.h"
int fail(char *format, char *data) { int fail(char *format, char *data) {
...@@ -82,17 +81,18 @@ char *quoted(char *data) { ...@@ -82,17 +81,18 @@ char *quoted(char *data) {
char *loadable_exe(char *exename) { char *loadable_exe(char *exename) {
HINSTANCE hPython; /* DLL handle for python executable */ /* HINSTANCE hPython; DLL handle for python executable */
char *result; char *result;
hPython = LoadLibraryEx(exename, NULL, LOAD_WITH_ALTERED_SEARCH_PATH); /* hPython = LoadLibraryEx(exename, NULL, LOAD_WITH_ALTERED_SEARCH_PATH);
if (!hPython) return NULL; if (!hPython) return NULL; */
/* Return the absolute filename for spawnv */ /* Return the absolute filename for spawnv */
result = calloc(MAX_PATH, sizeof(char)); result = calloc(MAX_PATH, sizeof(char));
if (result) GetModuleFileName(hPython, result, MAX_PATH); strncpy(result, exename, MAX_PATH);
/*if (result) GetModuleFileName(hPython, result, MAX_PATH);
FreeLibrary(hPython); FreeLibrary(hPython); */
return result; return result;
} }
...@@ -237,18 +237,11 @@ int run(int argc, char **argv, int is_gui) { ...@@ -237,18 +237,11 @@ int run(int argc, char **argv, int is_gui) {
} }
/* We *do* need to wait for a CLI to finish, so use spawn */ /* 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) { int WINAPI WinMain(HINSTANCE hI, HINSTANCE hP, LPSTR lpCmd, int nShow) {
return run(__argc, __argv, GUI); return run(__argc, __argv, GUI);
} }
*/
int _tmain(int argc, _TCHAR* argv[])
{
return run(argc, argv, GUI);
}
...@@ -2,7 +2,6 @@ ...@@ -2,7 +2,6 @@
"""Distutils setup file, used to install or test 'setuptools'""" """Distutils setup file, used to install or test 'setuptools'"""
import sys import sys
import os import os
import platform
src_root = None src_root = None
if sys.version_info >= (3,): if sys.version_info >= (3,):
...@@ -40,36 +39,8 @@ SETUP_COMMANDS = d['__all__'] ...@@ -40,36 +39,8 @@ SETUP_COMMANDS = d['__all__']
VERSION = "0.6.6" VERSION = "0.6.6"
from setuptools import setup, find_packages from setuptools import setup, find_packages
from setuptools.command.build_py import build_py as _build_py
scripts = [] scripts = []
# specific command that is used to generate windows .exe files
class build_py(_build_py):
def build_package_data(self):
"""Copy data files into build directory"""
lastdir = None
is_64 = platform.architecture()[0] == '64bit'
for package, src_dir, build_dir, filenames in self.data_files:
for filename in filenames:
target = os.path.join(build_dir, filename)
self.mkpath(os.path.dirname(target))
srcfile = os.path.join(src_dir, filename)
outf, copied = self.copy_file(srcfile, target)
# creating cli.exe and gui.exe
if filename in ('gui-32.exe', 'cli-32.exe') and not is_64:
exe_target = os.path.join(build_dir, filename.replace('-32.exe', '.exe'))
self.copy_file(srcfile, exe_target)
if filename in ('gui-64.exe', 'cli-64.exe') and is_64:
exe_target = os.path.join(build_dir, filename.replace('-64.exe', '.exe'))
self.copy_file(srcfile, exe_target)
srcfile = os.path.abspath(srcfile)
if copied and srcfile in self.distribution.convert_2to3_doctests:
self.__doctests_2to3.append(outf)
# if we are installing Distribute using "python setup.py install" # if we are installing Distribute using "python setup.py install"
# we need to get setuptools out of the way # we need to get setuptools out of the way
def _easy_install_marker(): def _easy_install_marker():
...@@ -176,7 +147,6 @@ dist = setup( ...@@ -176,7 +147,6 @@ dist = setup(
Topic :: System :: Systems Administration Topic :: System :: Systems Administration
Topic :: Utilities""".splitlines() if f.strip()], Topic :: Utilities""".splitlines() if f.strip()],
scripts = scripts, scripts = scripts,
cmdclass = {'build_py': build_py}
) )
if _being_installed(): if _being_installed():
......
...@@ -1603,14 +1603,13 @@ def get_script_args(dist, executable=sys_executable, wininst=False): ...@@ -1603,14 +1603,13 @@ def get_script_args(dist, executable=sys_executable, wininst=False):
")\n" ")\n"
) % locals() ) % locals()
if sys.platform=='win32' or wininst: 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 # On Windows/wininst, add a .py extension and an .exe launcher
if group=='gui_scripts': if group=='gui_scripts':
ext, launcher = '-script.pyw', 'gui-%d.exe' % word_size ext, launcher = '-script.pyw', 'gui.exe'
old = ['.pyw'] old = ['.pyw']
new_header = re.sub('(?i)python.exe','pythonw.exe',header) new_header = re.sub('(?i)python.exe','pythonw.exe',header)
else: else:
ext, launcher = '-script.py', 'cli-%d.exe' % word_size ext, launcher = '-script.py', 'cli.exe'
old = ['.py','.pyc','.pyo'] old = ['.py','.pyc','.pyo']
new_header = re.sub('(?i)pythonw.exe','python.exe',header) new_header = re.sub('(?i)pythonw.exe','python.exe',header)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment