]> jfr.im git - irc/quakenet/newserv.git/blobdiff - configure
BUILD: improve workspace mechanism
[irc/quakenet/newserv.git] / configure
index 358fd4c334ec279406ca69e6dd95c24fad8fb5c1..d1f2868eaf333268565e2bd10a2494b50cef7e3b 100755 (executable)
--- a/configure
+++ b/configure
@@ -138,6 +138,10 @@ class MultiConfigureIniParser(ConfigureIniParser):
       if c2.has_key("options"):
         self.options.update(c2["options"])
 
+      if c2.has_key("osvars"):
+        for k, v in c2.keys("osvars"):
+          self.osflags.setdefault(k, []).append(v)
+
 def librarycheck(libraries, includes, libs):
   def findlibrarypaths(library, x, includes, libs):
     if x["alwayspresent"]:
@@ -338,24 +342,23 @@ def usage():
   print "    -m [additional module]"
   print "    -v: verbose"
 
-def main(workspacesfile):
+def main():
   global LOG, VERBOSE
 
-  workspacesconfig = IniParser(open(workspacesfile, "r"))
+  files, workspaces = [], []
+  for root, _, file_list in os.walk("."):
+    if "configure.ini" not in file_list:
+      continue
 
-  files = []
-  workspaces = []
+    print "found workspace: %s" % root
+    workspaces.append(root)
 
-  for workspace in ["."] + workspacesconfig["workspaces"].keys():
-    path = workspace + "/configure.ini"
-    if os.path.exists(path):
-      print "found workspace: %s" % workspace
-      workspaces.append(workspace)
-      files.append( (workspace, open(path, "r")) )
+    path = os.path.join(root, "configure.ini")
+    files.append( (root, open(path, "r")) )
 
-      local_path = workspace + "/configure.ini.local"
-      if os.path.exists(local_path):
-        files.append( (workspace, open(local_path, "r")) )
+    local_path = os.path.join(root, "configure.ini.local")
+    if os.path.exists(local_path):
+      files.append( (root, open(local_path, "r")) )
 
   config = MultiConfigureIniParser(files)
 
@@ -408,4 +411,4 @@ def main(workspacesfile):
   configure(config, overrides, workspaces)
 
 if __name__ == "__main__":
-  main("workspaces.ini")
+  main()