Fixed tuple-concat error in site_init._recursive_glob_dir
authorW. Trevor King <wking@drexel.edu>
Fri, 30 Apr 2010 12:24:41 +0000 (08:24 -0400)
committerW. Trevor King <wking@drexel.edu>
Fri, 30 Apr 2010 12:28:05 +0000 (08:28 -0400)
Also:
  * Added first option to site_init.include_child_SConscripts()

tex/site_cons/site_init.py

index d72a79dc857b26f129903c6729c340f1dfa7ef48..43377b15e83537c4930086f653a06ee3dc949ed4 100644 (file)
@@ -7,12 +7,17 @@ def subdirs(env, *args, **kwargs):
         if isinstance(subdir, SCons.Node.FS.Dir):
             yield subdir
 
-def include_child_SConscripts(env, SConscript):
+def include_child_SConscripts(env, SConscript, first=[]):
     """Get all the nested SConscripts in that may alter and pass back
     the environment.  They may also add thesis subdependencies to that
     environment.
     """
-    for subdir in subdirs(env, '*'):
+    sdirs = list(subdirs(env, '*'))
+    for subdir in reversed(first): # move first subdirs to the front
+        if subdir in sdirs:
+            sdirs.remove(subdir)
+            sdirs.insert(0, subdir)
+    for subdir in sdirs:
         var_sconscript_path = os.path.join(subdir.abspath,
                                            'SConscript')
         src_sconscript_path = os.path.join(subdir.srcnode().abspath,
@@ -44,7 +49,7 @@ def check_exec(context, executible):
 def _recursive_glob_dir(env, *args, **kwargs):
     assert len(args) > 0
     glob_results = env.fs.Glob(env.subst(args[0]), *args[1:], **kwargs)
-    sds = list(subdirs(env, ['*']+args[1:], **kwargs))
+    sds = list(subdirs(env, *(['*']+list(args[1:])), **kwargs))
     return (sds, glob_results)
 
 def recursive_glob(env, *args, **kwargs):