summaryrefslogtreecommitdiff
path: root/numpy/distutils/command/build_ext.py
diff options
context:
space:
mode:
authorTim D. Smith <git@tim-smith.us>2015-05-10 16:39:01 -0700
committerTim D. Smith <git@tim-smith.us>2015-06-05 00:49:48 -0700
commitb08f369554e6d6b231c941740f6c852a45edcc12 (patch)
tree6465d3f72821e6a1b0673f7c4c0dfbc1eb82c824 /numpy/distutils/command/build_ext.py
parentc65fc9e36b287461040615a452e0268bbca9f3ca (diff)
downloadnumpy-b08f369554e6d6b231c941740f6c852a45edcc12.tar.gz
BLD: find Python.h when build_ext --include-dirs is set
Ensure that build_ext.include_dirs is the same physical list as build_ext.distribution.include_dirs.
Diffstat (limited to 'numpy/distutils/command/build_ext.py')
-rw-r--r--numpy/distutils/command/build_ext.py20
1 files changed, 17 insertions, 3 deletions
diff --git a/numpy/distutils/command/build_ext.py b/numpy/distutils/command/build_ext.py
index 59c453607..c588204e5 100644
--- a/numpy/distutils/command/build_ext.py
+++ b/numpy/distutils/command/build_ext.py
@@ -54,10 +54,24 @@ class build_ext (old_build_ext):
self.jobs = int(self.jobs)
except ValueError:
raise ValueError("--jobs/-j argument must be an integer")
- incl_dirs = self.include_dirs
+
+ # Ensure that self.include_dirs and self.distribution.include_dirs
+ # refer to the same list object. finalize_options will modify
+ # self.include_dirs, but self.distribution.include_dirs is used
+ # during the actual build.
+ # self.include_dirs is None unless paths are specified with
+ # --include-dirs.
+ # The include paths will be passed to the compiler in the order:
+ # numpy paths, --include-dirs paths, Python include path.
+ if isinstance(self.include_dirs, str):
+ self.include_dirs = self.include_dirs.split(os.pathsep)
+ incl_dirs = self.include_dirs or []
+ if self.distribution.include_dirs is None:
+ self.distribution.include_dirs = []
+ self.include_dirs = self.distribution.include_dirs
+ self.include_dirs.extend(incl_dirs)
+
old_build_ext.finalize_options(self)
- if incl_dirs is not None:
- self.include_dirs.extend(self.distribution.include_dirs or [])
self.set_undefined_options('build', ('jobs', 'jobs'))
def run(self):