summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Lib/distutils/ccompiler.py10
-rw-r--r--Lib/distutils/msvccompiler.py12
-rw-r--r--Lib/distutils/unixccompiler.py3
3 files changed, 22 insertions, 3 deletions
diff --git a/Lib/distutils/ccompiler.py b/Lib/distutils/ccompiler.py
index ffad294..51f5ae0 100644
--- a/Lib/distutils/ccompiler.py
+++ b/Lib/distutils/ccompiler.py
@@ -493,6 +493,7 @@ class CCompiler:
libraries=None,
library_dirs=None,
runtime_library_dirs=None,
+ export_symbols=None,
debug=0,
extra_preargs=None,
extra_postargs=None):
@@ -515,7 +516,13 @@ class CCompiler:
search for libraries that were specified as bare library names
(ie. no directory component). These are on top of the system
default and those supplied to 'add_library_dir()' and/or
- 'set_library_dirs()'.
+ 'set_library_dirs()'. 'runtime_library_dirs' is a list of
+ directories that will be embedded into the shared library and
+ used to search for other shared libraries that *it* depends on
+ at run-time. (This may only be relevant on Unix.)
+
+ 'export_symbols' is a list of symbols that the shared library
+ will export. (This appears to be relevant only on Windows.)
'debug' is as for 'compile()' and 'create_static_lib()', with the
slight distinction that it actually matters on most platforms
@@ -536,6 +543,7 @@ class CCompiler:
libraries=None,
library_dirs=None,
runtime_library_dirs=None,
+ export_symbols=None,
debug=0,
extra_preargs=None,
extra_postargs=None):
diff --git a/Lib/distutils/msvccompiler.py b/Lib/distutils/msvccompiler.py
index 3667afc..b6ff432 100644
--- a/Lib/distutils/msvccompiler.py
+++ b/Lib/distutils/msvccompiler.py
@@ -304,6 +304,7 @@ class MSVCCompiler (CCompiler) :
libraries=None,
library_dirs=None,
runtime_library_dirs=None,
+ export_symbols=None,
debug=0,
extra_preargs=None,
extra_postargs=None):
@@ -313,6 +314,8 @@ class MSVCCompiler (CCompiler) :
output_dir=output_dir,
libraries=libraries,
library_dirs=library_dirs,
+ runtime_library_dirs=runtime_library_dirs,
+ export_symbols=export_symbols,
debug=debug,
extra_preargs=extra_preargs,
extra_postargs=extra_postargs)
@@ -325,6 +328,7 @@ class MSVCCompiler (CCompiler) :
libraries=None,
library_dirs=None,
runtime_library_dirs=None,
+ export_symbols=None,
debug=0,
extra_preargs=None,
extra_postargs=None):
@@ -350,8 +354,12 @@ class MSVCCompiler (CCompiler) :
else:
ldflags = self.ldflags_shared
- ld_args = ldflags + lib_opts + \
- objects + ['/OUT:' + output_filename]
+ export_opts = []
+ for sym in (export_symbols or []):
+ export_opts.append("/EXPORT:" + sym)
+
+ ld_args = (ldflags + lib_opts + export_opts +
+ objects + ['/OUT:' + output_filename])
if extra_preargs:
ld_args[:0] = extra_preargs
diff --git a/Lib/distutils/unixccompiler.py b/Lib/distutils/unixccompiler.py
index 5e1524c..40f564a 100644
--- a/Lib/distutils/unixccompiler.py
+++ b/Lib/distutils/unixccompiler.py
@@ -178,6 +178,7 @@ class UnixCCompiler (CCompiler):
libraries=None,
library_dirs=None,
runtime_library_dirs=None,
+ export_symbols=None,
debug=0,
extra_preargs=None,
extra_postargs=None):
@@ -188,6 +189,7 @@ class UnixCCompiler (CCompiler):
libraries,
library_dirs,
runtime_library_dirs,
+ export_symbols,
debug,
extra_preargs,
extra_postargs)
@@ -200,6 +202,7 @@ class UnixCCompiler (CCompiler):
libraries=None,
library_dirs=None,
runtime_library_dirs=None,
+ export_symbols=None,
debug=0,
extra_preargs=None,
extra_postargs=None):