From 159eb92239c20198e9318acbe142ab3e168aae4b Mon Sep 17 00:00:00 2001 From: Greg Ward Date: Wed, 2 Aug 2000 00:00:30 +0000 Subject: [PATCH] Patch from Rene Liebscher: generate an /IMPLIB: option to ensure that the linker leaves the (temporary) .lib file in the temporary dir. (Moved from 'msvc_prelink_hack()' method in build_ext.py.) --- Lib/distutils/msvccompiler.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/Lib/distutils/msvccompiler.py b/Lib/distutils/msvccompiler.py index e58e6c10c81..b86e0b30231 100644 --- a/Lib/distutils/msvccompiler.py +++ b/Lib/distutils/msvccompiler.py @@ -380,10 +380,22 @@ def link_shared_object (self, ld_args = (ldflags + lib_opts + export_opts + objects + ['/OUT:' + output_filename]) + # The MSVC linker generates .lib and .exp files, which cannot be + # suppressed by any linker switches. The .lib files may even be + # needed! Make sure they are generated in the temporary build + # directory. Since they have different names for debug and release + # builds, they can go into the same directory. + (dll_name, dll_ext) = os.path.splitext( + os.path.basename(output_filename)) + implib_file = os.path.join( + os.path.dirname(objects[0]), + self.library_filename(dll_name)) + ld_args.append ('/IMPLIB:' + implib_file) + if extra_preargs: ld_args[:0] = extra_preargs if extra_postargs: - ld_args.extend (extra_postargs) + ld_args.extend(extra_postargs) print "link_shared_object():" print " output_filename =", output_filename