Patch from Perry Stoll:
- fix some broken abstract methods
- kludge: add 'build_info' parameter to link methods
- add 'object_name()' and 'shared_library_name()'
- support for MSVCCompiler class on NT/Win95
diff --git a/Lib/distutils/ccompiler.py b/Lib/distutils/ccompiler.py
index d5519ca..5f27ebc 100644
--- a/Lib/distutils/ccompiler.py
+++ b/Lib/distutils/ccompiler.py
@@ -294,7 +294,8 @@
objects,
output_libname,
libraries=None,
- library_dirs=None):
+ library_dirs=None,
+ build_info=None):
"""Link a bunch of stuff together to create a shared library
file. Has the same effect as 'link_static_lib()' except
that the filename inferred from 'output_libname' will most
@@ -306,7 +307,8 @@
objects,
output_filename,
libraries=None,
- library_dirs=None):
+ library_dirs=None,
+ build_info=None):
"""Link a bunch of stuff together to create a shared object
file. Much like 'link_shared_lib()', except the output
filename is explicitly supplied as 'output_filename'."""
@@ -315,27 +317,35 @@
# -- Filename mangling methods -------------------------------------
- def object_filenames (source_filenames):
+ def object_filenames (self, source_filenames):
"""Return the list of object filenames corresponding to each
specified source filename."""
pass
- def shared_object_filename (source_filename):
+ def shared_object_filename (self, source_filename):
"""Return the shared object filename corresponding to a
specified source filename."""
pass
- def library_filename (libname):
+ def library_filename (self, libname):
"""Return the static library filename corresponding to the
specified library name."""
pass
- def shared_library_filename (libname):
+ def shared_library_filename (self, libname):
"""Return the shared library filename corresponding to the
specified library name."""
pass
+
+ def object_name (self, inname):
+ """Given a name with no extension, return the name + object extension"""
+ return inname + self._obj_ext
+
+ def shared_library_name (self, inname):
+ """Given a name with no extension, return the name + shared object extension"""
+ return inname + self._shared_lib_ext
# -- Utility methods -----------------------------------------------
@@ -357,6 +367,9 @@
if plat == 'posix':
from unixccompiler import UnixCCompiler
return UnixCCompiler (verbose, dry_run)
+ elif plat in ['nt', 'win95' ]:
+ from msvccompiler import MSVCCompiler
+ return MSVCCompiler ( verbose, dry_run )
else:
raise DistutilsPlatformError, \
"don't know how to compile C/C++ code on platform %s" % plat