Fix Doxygen.py builder on hardy
[senf.git] / site_scons / senfutil.py
index bda8b3c..5468463 100644 (file)
@@ -31,6 +31,13 @@ class BuildTypeOptions:
         type = env['final'] and "final" or env['debug'] and "debug" or "normal"
         return env[self._var + "_" + type]
 
+def loadTools(env):
+    global senfutildir
+    tooldir = os.path.join(senfutildir, 'site_tools')
+    for tool in os.listdir(tooldir):
+        name, ext = os.path.splitext(tool)
+        if ext == '.py' and name != "__init__" : env.Tool(name, [ tooldir ])
+
 def parseArguments(env, *defs):
     vars = Variables(args=ARGUMENTS)
     for d in defs : vars.Add(d)
@@ -64,13 +71,8 @@ Special command line parameters:
 def SetupForSENF(env, senf_path = []):
     global senfutildir
     senf_path.extend(('senf', os.path.dirname(senfutildir), '/usr/local', '/usr'))
-    tooldir = os.path.join(senfutildir, 'site_tools')
 
-    env.Tool('Boost',       [ tooldir ])
-    env.Tool('PhonyTarget', [ tooldir ])
-    env.Tool('Yaptu',       [ tooldir ])
-    env.Tool('CopyToDir',   [ tooldir ])
-    env.Tool('Doxygen',     [ tooldir ])
+    loadTools(env)
 
     env.Append(
         LIBS              = [ 'senf', 'rt', '$BOOSTREGEXLIB',
@@ -178,9 +180,9 @@ def Glob(env, exclude=[], subdirs=[]):
                 for x in env.Glob("*.cc", strings=True) 
                 if x not in testSources and x not in exclude ]
     for subdir in subdirs:
-        testSources += glob.glob(os.path.join(subdir,"*.test.cc"))
+        testSources += env.Glob(os.path.join(subdir,"*.test.cc"), strings=True)
         sources += [ x 
-                     for x in env.Glob(os.path.join(subdir,"*.cc"))
+                     for x in env.Glob(os.path.join(subdir,"*.cc"), strings=True)
                      if x not in testSources and x not in exclude ]
     sources.sort()
     testSources.sort()
@@ -213,7 +215,9 @@ def Doxygen(env, doxyheader=None, doxyfooter=None, doxycss=None, mydoxyfile=Fals
         else:
             for dir, dirs, files in os.walk(senfdocdir):
                 tagfiles.extend([ os.path.join(dir,f) for f in files if f.endswith('.tag') ])
-                if dir.endswith('/doc') : dirs.remove('html')
+                if dir.endswith('/doc') : 
+                    try: dirs.remove('html')
+                    except ValueError: pass
                 for d in dirs: 
                     if d.startswith('.') : dirs.remove(d)