diff codeOptimizer.py @ 4:3a56cd936c59

Cleanup some code. Add code for breaking loops in the dependency tree.
author Tom Fredrik Blenning Klaussen <bfg@blenning.no>
date Mon, 24 Sep 2012 01:16:43 +0200
parents f65c2d63ab66
children 94b1959b0108
line wrap: on
line diff
--- a/codeOptimizer.py	Sun Sep 16 21:31:41 2012 +0200
+++ b/codeOptimizer.py	Mon Sep 24 01:16:43 2012 +0200
@@ -7,30 +7,29 @@
 from Config import Config
 
 
+def usage(name):
+    print "Usage is:\n\t%s <xml configuration file> [files for analysis]" % name
 
-def isHppfile(name):
-    if name.endswith(".hpp"):
-        return True
-    if name.endswith(".h"):
-        return True
-    return False
-
-def isCppfile(name):
-    if name.endswith(".cpp"):
-        return True
-    return False
+if len(sys.argv) < 2:
+    usage(sys.argv[0])
+    sys.exit(1)
 
 try:
     options = Config(sys.argv[1])
 except:
     print sys.argv[1] + ' is not a valid xml file'
+    sys.exit(1)
+
 infiles = sys.argv[2:]
 
+if not infiles:
+    infiles = options.getFiles()
+
 files = {}
 unknown = []
 
 for file in infiles:
-    if isHppfile(file) or isCppfile(file):
+    if Compilable.acceptsFile(file):
         c = Compilable(file)
         c.setFlags(options.getCxxflags(file))
         files[file] = c
@@ -47,13 +46,16 @@
     depgraph.add(files[file])
 
 for file in files:
-    depgraph.addDependency(files[file], files[file].dependencies())
+    depgraph.addDependency(files[file],
+                           list(files[dep]
+                                for dep in files[file].dependencies()))
 
 files = depgraph.directedGraph()
+print files
 
 for file in files:
     if not file.worksWithoutModifications():
-        print file.path
+        print files[file].path
         raise SystemExit(file.path  + " does not compile at all")
 
 for file in files: