aboutsummaryrefslogtreecommitdiffstats
path: root/setuptools/extension.py
diff options
context:
space:
mode:
authorlsinger <none@none>2014-03-01 18:02:23 -0800
committerlsinger <none@none>2014-03-01 18:02:23 -0800
commita0c7e67a26b11e3458424112bc78be90d52b2fc5 (patch)
tree4e6e0bdb5b55f02dd1bbf125226f1d1c58e41127 /setuptools/extension.py
parent3ca95bfdfe8b4e68338f43de462e6b57e3fdf1a0 (diff)
downloadexternal_python_setuptools-a0c7e67a26b11e3458424112bc78be90d52b2fc5.tar.gz
external_python_setuptools-a0c7e67a26b11e3458424112bc78be90d52b2fc5.tar.bz2
external_python_setuptools-a0c7e67a26b11e3458424112bc78be90d52b2fc5.zip
Map .pyx sources to .c or .cpp depending on language
Diffstat (limited to 'setuptools/extension.py')
-rw-r--r--setuptools/extension.py13
1 files changed, 12 insertions, 1 deletions
diff --git a/setuptools/extension.py b/setuptools/extension.py
index d7892d3d..b72f6e2a 100644
--- a/setuptools/extension.py
+++ b/setuptools/extension.py
@@ -27,7 +27,18 @@ class Extension(_Extension):
def __init__(self, *args, **kw):
_Extension.__init__(self, *args, **kw)
if not have_pyrex():
- self._convert_pyx_sources_to_c()
+ if self.language.lower() == 'c++':
+ self._convert_pyx_sources_to_cpp()
+ else:
+ self._convert_pyx_sources_to_c()
+
+ def _convert_pyx_sources_to_cpp(self):
+ "convert .pyx extensions to .cpp"
+ def pyx_to_c(source):
+ if source.endswith('.pyx'):
+ source = source[:-4] + '.cpp'
+ return source
+ self.sources = list(map(pyx_to_c, self.sources))
def _convert_pyx_sources_to_c(self):
"convert .pyx extensions to .c"