summaryrefslogtreecommitdiffstats
path: root/Lib/distutils
diff options
context:
space:
mode:
authorVinay Sajip <vinay_sajip@yahoo.co.uk>2012-10-23 19:26:14 (GMT)
committerVinay Sajip <vinay_sajip@yahoo.co.uk>2012-10-23 19:26:14 (GMT)
commite87acc1f38652f90b4b63b9e79d17a4e5f2f74eb (patch)
tree9baef0b01f30595c1e5f58ae8817ffb39e0beb3c /Lib/distutils
parente6e96eea5157650be77306b15b28bc815e14c2f3 (diff)
downloadcpython-e87acc1f38652f90b4b63b9e79d17a4e5f2f74eb.zip
cpython-e87acc1f38652f90b4b63b9e79d17a4e5f2f74eb.tar.gz
cpython-e87acc1f38652f90b4b63b9e79d17a4e5f2f74eb.tar.bz2
Issue #16116: Now uses corrected include and library paths when building C extensions in a venv.
Diffstat (limited to 'Lib/distutils')
-rw-r--r--Lib/distutils/command/build_ext.py7
1 files changed, 7 insertions, 0 deletions
diff --git a/Lib/distutils/command/build_ext.py b/Lib/distutils/command/build_ext.py
index f16e2f1..b1d951e 100644
--- a/Lib/distutils/command/build_ext.py
+++ b/Lib/distutils/command/build_ext.py
@@ -160,6 +160,11 @@ class build_ext(Command):
if isinstance(self.include_dirs, str):
self.include_dirs = self.include_dirs.split(os.pathsep)
+ # If in a virtualenv, add its include directory
+ # Issue 16116
+ if sys.exec_prefix != sys.base_exec_prefix:
+ self.include_dirs.append(os.path.join(sys.exec_prefix, 'include'))
+
# Put the Python "system" include dir at the end, so that
# any local include dirs take precedence.
self.include_dirs.append(py_include)
@@ -190,6 +195,8 @@ class build_ext(Command):
# must be the *native* platform. But we don't really support
# cross-compiling via a binary install anyway, so we let it go.
self.library_dirs.append(os.path.join(sys.exec_prefix, 'libs'))
+ if sys.base_exec_prefix != sys.prefix: # Issue 16116
+ self.library_dirs.append(os.path.join(sys.base_exec_prefix, 'libs'))
if self.debug:
self.build_temp = os.path.join(self.build_temp, "Debug")
else: