From: Thomas H. <th...@us...> - 2005-04-21 19:41:15
|
Update of /cvsroot/py2exe/py2exe In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv20654 Modified Files: setup.py Log Message: Single file executables work (in principle). Still a lot of cleanup to do. All py2exe run stubs now use runtime dynamic loading of the Python dll. Index: setup.py =================================================================== RCS file: /cvsroot/py2exe/py2exe/setup.py,v retrieving revision 1.43 retrieving revision 1.44 diff -C2 -d -r1.43 -r1.44 *** setup.py 18 Nov 2004 15:44:58 -0000 1.43 --- setup.py 21 Apr 2005 19:41:05 -0000 1.44 *************** *** 102,108 **** exe_filename = os.path.join(self.build_lib, self.get_exe_filename(fullname)) if not (self.force or \ ! newer_group(sources, exe_filename + '.exe', 'newer')): self.announce("skipping '%s' interpreter (up-to-date)" % inter.name) --- 102,112 ---- exe_filename = os.path.join(self.build_lib, self.get_exe_filename(fullname)) + if inter.target_desc == "executable": + exe_filename += ".exe" + else: + exe_filename += ".dll" if not (self.force or \ ! newer_group(sources + inter.depends, exe_filename, 'newer')): self.announce("skipping '%s' interpreter (up-to-date)" % inter.name) *************** *** 127,131 **** include_dirs=inter.include_dirs, debug=self.debug, ! extra_postargs=extra_args) if inter.extra_objects: --- 131,136 ---- include_dirs=inter.include_dirs, debug=self.debug, ! extra_postargs=extra_args, ! depends=inter.depends) if inter.extra_objects: *************** *** 148,170 **** # XXX - is msvccompiler.link broken? From what I can see, the # following should work, instead of us checking the param: ! # self.compiler.link(inter.target_desc, ! if inter.target_desc == 'executable': ! self.compiler.link_executable( ! objects, exe_filename, ! libraries=self.get_libraries(inter), ! library_dirs=inter.library_dirs, ! runtime_library_dirs=inter.runtime_library_dirs, ! extra_postargs=extra_args, ! debug=self.debug) ! else: ! self.compiler.link_shared_lib( ! objects, exe_filename, ! libraries=self.get_libraries(inter), ! library_dirs=inter.library_dirs, ! runtime_library_dirs=inter.runtime_library_dirs, ! export_symbols=inter.export_symbols, ! extra_postargs=extra_args, ! debug=self.debug) ! # build_extensions () --- 153,164 ---- # XXX - is msvccompiler.link broken? From what I can see, the # following should work, instead of us checking the param: ! self.compiler.link(inter.target_desc, ! objects, exe_filename, ! libraries=self.get_libraries(inter), ! library_dirs=inter.library_dirs, ! runtime_library_dirs=inter.runtime_library_dirs, ! export_symbols=inter.export_symbols, ! extra_postargs=extra_args, ! debug=self.debug) # build_extensions () *************** *** 300,314 **** ############################################################################ run = Interpreter("py2exe.run", ! ["source/run.c", "source/start.c", "source/icon.rc"], ) run_w = Interpreter("py2exe.run_w", ! ["source/run_w.c", "source/start.c", "source/icon.rc"], libraries=["user32"], ) run_dll = Interpreter("py2exe.run_dll", ! ["source/run_dll.c", "source/start.c", "source/icon.rc"], libraries=["user32"], export_symbols=["DllCanUnloadNow,PRIVATE", --- 294,328 ---- ############################################################################ + macros = [("PYTHONDLL", '\\"PYTHON%d%d.DLL\\"' % sys.version_info[:2]), + ("PYTHONCOM", '\\"pythoncom%d%d.dll\\"' % sys.version_info[:2])] + depends = ["source/import-tab.c", "source/import-tab.h"] + run = Interpreter("py2exe.run", ! ["source/run.c", "source/start.c", "source/icon.rc", ! "source/Python-dynload.c", ! "hacks/memimp/MemoryModule.c", ! "hacks/memimp/_memimporter.c", ! ], ! depends=depends, ! define_macros=macros, ) run_w = Interpreter("py2exe.run_w", ! ["source/run_w.c", "source/start.c", "source/icon.rc", ! "source/Python-dynload.c", ! "hacks/memimp/MemoryModule.c", ! "hacks/memimp/_memimporter.c", ! ], libraries=["user32"], + depends=depends, + define_macros=macros, ) run_dll = Interpreter("py2exe.run_dll", ! ["source/run_dll.c", "source/start.c", "source/icon.rc", ! "source/Python-dynload.c", ! "hacks/memimp/MemoryModule.c", ! "hacks/memimp/_memimporter.c", ! ], libraries=["user32"], export_symbols=["DllCanUnloadNow,PRIVATE", *************** *** 318,325 **** ], target_desc = "shared_library", ) run_ctypes_dll = Interpreter("py2exe.run_ctypes_dll", ! ["source/run_ctypes_dll.c", "source/start.c", "source/icon.rc"], libraries=["user32"], export_symbols=["DllCanUnloadNow,PRIVATE", --- 332,345 ---- ], target_desc = "shared_library", + depends=depends, + define_macros=macros, ) run_ctypes_dll = Interpreter("py2exe.run_ctypes_dll", ! ["source/run_ctypes_dll.c", "source/start.c", "source/icon.rc", ! "source/Python-dynload.c", ! "hacks/memimp/MemoryModule.c", ! "hacks/memimp/_memimporter.c", ! ], libraries=["user32"], export_symbols=["DllCanUnloadNow,PRIVATE", *************** *** 329,345 **** ], target_desc = "shared_library", ) run_isapi = Interpreter("py2exe.run_isapi", ["source/run_isapi.c", "source/start.c", "source/icon.rc"], ! libraries=["user32"], ! export_symbols=["HttpExtensionProc", ! "GetExtensionVersion", ! "TerminateExtension", ! "GetFilterVersion", "HttpFilterProc", ! "TerminateFilter"], ! target_desc = "shared_library", ! ) interpreters = [run, run_w, run_dll, run_ctypes_dll, run_isapi] --- 349,372 ---- ], target_desc = "shared_library", + depends=depends, + define_macros=macros, ) run_isapi = Interpreter("py2exe.run_isapi", ["source/run_isapi.c", "source/start.c", + "source/Python-dynload.c", + "hacks/memimp/MemoryModule.c", + "hacks/memimp/_memimporter.c", "source/icon.rc"], ! libraries=["user32"], ! export_symbols=["HttpExtensionProc", ! "GetExtensionVersion", ! "TerminateExtension", ! "GetFilterVersion", "HttpFilterProc", ! "TerminateFilter"], ! target_desc = "shared_library", ! depends=depends, ! define_macros=macros, ! ) interpreters = [run, run_w, run_dll, run_ctypes_dll, run_isapi] |