diff options
Diffstat (limited to 'numpy/distutils/command/build_src.py')
-rw-r--r-- | numpy/distutils/command/build_src.py | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/numpy/distutils/command/build_src.py b/numpy/distutils/command/build_src.py index 13548452f..1450b4c3f 100644 --- a/numpy/distutils/command/build_src.py +++ b/numpy/distutils/command/build_src.py @@ -118,11 +118,15 @@ class build_src(build_ext.build_ext): new_data_files.append(data) elif isinstance(data,tuple): d,files = data + if self.inplace: + build_dir = d + else: + build_dir = os.path.join(self.build_src,d) funcs = filter(callable,files) files = filter(lambda f:not callable(f), files) for f in funcs: if f.func_code.co_argcount==1: - s = f(os.path.join(self.build_src,d)) + s = f(build_dir) else: s = f() if s is not None: @@ -144,13 +148,18 @@ class build_src(build_ext.build_ext): return log.info('building py_modules sources') new_py_modules = [] + if self.inplace: + get_package_dir = self.get_finalized_command('build_py').get_package_dir for source in self.py_modules: if type(source) is type(()) and len(source)==3: package, module_base, source = source + if self.inplace: + build_dir = get_package_dir(package) + else: + build_dir = os.path.join(self.build_src, + os.path.join(*package.split('.'))) if callable(source): - target = os.path.join(*([self.build_src]+\ - package.split('.')+\ - [module_base + '.py'])) + target = os.path.join(build_dir, module_base + '.py') source = source(target) if source is None: continue @@ -202,7 +211,6 @@ class build_src(build_ext.build_ext): build_py = self.get_finalized_command('build_py') self.ext_target_dir = build_py.get_package_dir(package) - sources = self.generate_sources(sources, ext) sources = self.template_sources(sources, ext) |