Fix from Lyle Johnson: add the '--compiler' option.
Also added creation of 'implib_dir', a temporary directory specific to
MSVC++ -- but I checked in two ways of fixing it (Lyle's and mine),
because I'm not sure which is right.
diff --git a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py
index b234b91..2142d05 100644
--- a/Lib/distutils/command/build_ext.py
+++ b/Lib/distutils/command/build_ext.py
@@ -67,7 +67,9 @@
('debug', 'g',
"compile/link with debugging information"),
('force', 'f',
- "forcibly build everything (ignore file timestamps"),
+ "forcibly build everything (ignore file timestamps)"),
+ ('compiler=', 'c',
+ "specify the compiler type"),
]
@@ -87,6 +89,7 @@
self.link_objects = None
self.debug = None
self.force = None
+ self.compiler = None
def finalize_options (self):
@@ -95,6 +98,7 @@
self.set_undefined_options ('build',
('build_lib', 'build_lib'),
('build_temp', 'build_temp'),
+ ('compiler', 'compiler'),
('debug', 'debug'),
('force', 'force'))
@@ -169,7 +173,8 @@
# Setup the CCompiler object that we'll use to do all the
# compiling and linking
- self.compiler = new_compiler (verbose=self.verbose,
+ self.compiler = new_compiler (compiler=self.compiler,
+ verbose=self.verbose,
dry_run=self.dry_run,
force=self.force)
@@ -340,6 +345,10 @@
implib_dir = os.path.join(self.build_temp,\
self.get_ext_libname(extension_name))
extra_args.append ('/IMPLIB:' + implib_dir)
+
+ # XXX arg, which of these is correct?
+ self.mkpath(implib_dir)
+ self.mkpath(os.path.dirname(implib_dir))
# if MSVC
fullname = self.get_ext_fullname (extension_name)