
On 26 June 2000, Thomas Heller said:
but this is of course nonsense. Swig is used to build python-extensions, not exe-files. Sorry for that.
Yeah, but I'd still like to know if 'link_executable()' works on Windows! I think it'd be really cool if part of building Distutils on Windows was (optionally!) to compile your wininst stub, all using the Distutils compiler interface... Yes, it works. To illustrate: this is an excerpt of my setup.py for win32all (building wininst.exe inside Distutils is reserved for later):
class my_build_ext (build_ext): def run (self): build_ext.run (self) self.build_dlls() self.build_exes() def build_dlls (self): for target in dll_files: sources = target.sources ext_filename = os.path.join (self.build_lib, target.name + '.dll') if not (self.force or newer_group(sources, ext_filename, 'newer')): self.announce ("skipping '%s' (up-to-date)" % target.name) return else: self.announce ("building '%s'" % target.name) objects = self.compiler.compile (target.sources, output_dir=self.build_temp, include_dirs=target.include_dirs, debug=self.debug, extra_postargs=target.extra_compile_args) self.compiler.link_shared_object( objects, ext_filename, libraries=target.libraries, library_dirs=target.library_dirs, extra_postargs=target.extra_args, debug=self.debug) def build_exes (self): for target in exe_files: sources = target.sources ext_filename = os.path.join (self.build_lib, target.name) if not (self.force or newer_group(sources, ext_filename + '.exe', 'newer')): self.announce ("skipping '%s' (up-to-date)" % target.name) return else: self.announce ("building '%s'" % target.name) extra_args = target.extra_compile_args objects = self.compiler.compile (sources, output_dir=self.build_temp, include_dirs=target.include_dirs, debug=self.debug, extra_postargs=extra_args) extra_args = target.extra_link_args self.compiler.link_executable( objects, ext_filename, libraries=target.libraries, library_dirs=target.library_dirs, extra_postargs=extra_args, debug=self.debug)
[about the MSVC compiler patches] Hey, waitasec: you're referring to "build/lib.win32/Release" -- but the code in front me of says
self.implib_dir = self.build_temp
which to me eyes (scanning build_ext.py and build.py) resolves to "build/temp.win32", hence the Debug and Release directories are under build/temp.win32, not build/lib.win32.
Sorry, a simple typo. You are correct: What I meant is build/temp.win32. Thomas