diff options
-rw-r--r-- | scipy_distutils/command/build_clib.py | 29 | ||||
-rw-r--r-- | scipy_distutils/command/build_ext.py | 3 |
2 files changed, 24 insertions, 8 deletions
diff --git a/scipy_distutils/command/build_clib.py b/scipy_distutils/command/build_clib.py index 2ddbfc315..cbeebfdf2 100644 --- a/scipy_distutils/command/build_clib.py +++ b/scipy_distutils/command/build_clib.py @@ -30,7 +30,6 @@ def get_directories(list_of_sources): dir = os.path.split(file) if dir[0] != '' and not dir[0] in direcs: direcs.append(dir[0]) - return direcs class build_clib(old_build_clib): @@ -110,12 +109,28 @@ class build_clib(old_build_clib): return def get_source_files(self): - if sys.version[:3]>='2.2': - filenames = old_build_clib.get_source_files(self) - else: - for (lib_name, build_info) in self.libraries: - filenames.extend(build_info.get('sources',[])) - filenames.extend(get_headers(get_directories(filenames))) + from build_ext import is_local_src_dir + self.check_library_list(self.libraries) + filenames = [] + def visit_func(filenames,dirname,names): + if os.path.basename(dirname) in ['CVS','.svn']: + names[:] = [] + return + for name in names: + fullname = os.path.join(dirname,name) + if os.path.isfile(fullname): + filenames.append(fullname) + for (lib_name, build_info) in self.libraries: + sources = build_info.get('sources',[]) + sources = filter(lambda s:type(s) is StringType,sources) + filenames.extend(sources) + filenames.extend(get_headers(get_directories(sources))) + depends = build_info.get('depends',[]) + for d in depends: + if is_local_src_dir(d): + os.path.walk(d,visit_func,filenames) + elif os.path.isfile(d): + filenames.append(d) return filenames def build_libraries(self, libraries): diff --git a/scipy_distutils/command/build_ext.py b/scipy_distutils/command/build_ext.py index c989acc1c..261df3d23 100644 --- a/scipy_distutils/command/build_ext.py +++ b/scipy_distutils/command/build_ext.py @@ -281,7 +281,8 @@ class build_ext (old_build_ext): self.check_extensions_list(self.extensions) filenames = [] def visit_func(filenames,dirname,names): - if os.path.basename(dirname)=='CVS': + if os.path.basename(dirname) in ['CVS','.svn']: + names[:] = [] return for name in names: fullname = os.path.join(dirname,name) |