summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scipy_distutils/command/build_clib.py29
-rw-r--r--scipy_distutils/command/build_ext.py3
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)