diff options
author | Pearu Peterson <pearu.peterson@gmail.com> | 2006-01-27 12:21:07 +0000 |
---|---|---|
committer | Pearu Peterson <pearu.peterson@gmail.com> | 2006-01-27 12:21:07 +0000 |
commit | 6bf1820ba23583a96331dedc07338dc2ee78564b (patch) | |
tree | d4793bf8f81721644d0e0ebeddaba208bf85e954 /numpy/distutils/command/build_src.py | |
parent | b7cc1f63d4bd51ea8df16305d8213a10d7493f3a (diff) | |
download | numpy-6bf1820ba23583a96331dedc07338dc2ee78564b.tar.gz |
Added data_files generator support - removed a piece of core.setup function.
Diffstat (limited to 'numpy/distutils/command/build_src.py')
-rw-r--r-- | numpy/distutils/command/build_src.py | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/numpy/distutils/command/build_src.py b/numpy/distutils/command/build_src.py index 368cfdf77..13548452f 100644 --- a/numpy/distutils/command/build_src.py +++ b/numpy/distutils/command/build_src.py @@ -61,6 +61,7 @@ class build_src(build_ext.build_ext): self.extensions = self.distribution.ext_modules self.libraries = self.distribution.libraries or [] self.py_modules = self.distribution.py_modules or [] + self.data_files = self.distribution.data_files or [] if self.build_src is None: self.build_src = os.path.join(self.build_base, 'src') @@ -102,9 +103,46 @@ class build_src(build_ext.build_ext): for ext in self.extensions: self.build_extension_sources(ext) + self.build_data_files_sources() + + return + + def build_data_files_sources(self): + if not self.data_files: + return + log.info('building data_files sources') + from numpy.distutils.misc_util import get_data_files + new_data_files = [] + for data in self.data_files: + if isinstance(data,str): + new_data_files.append(data) + elif isinstance(data,tuple): + d,files = data + 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)) + else: + s = f() + if s is not None: + if isinstance(s,list): + files.extend(s) + elif isinstance(s,str): + files.append(s) + else: + raise TypeError,`s` + filenames = get_data_files((d,files)) + new_data_files.append((d, filenames)) + else: + raise + self.data_files[:] = new_data_files return def build_py_modules_sources(self): + if not self.py_modules: + return + log.info('building py_modules sources') new_py_modules = [] for source in self.py_modules: if type(source) is type(()) and len(source)==3: |