summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorAraq <rumpf_a@web.de>2017-01-06 13:09:39 +0100
committerAraq <rumpf_a@web.de>2017-01-06 13:11:17 +0100
commit4910a87c6f8ceded56750bd2dc4cd3fe4db55966 (patch)
treea3d921b8ccea76ee450fbb60e00b1096f7bb6283
parentd54539a6481133ab071445e558d5664e6e45dc6a (diff)
downloadNim-4910a87c6f8ceded56750bd2dc4cd3fe4db55966.tar.gz
gendepend improvements; refs #5144
-rw-r--r--compiler/depends.nim2
-rw-r--r--compiler/main.nim8
2 files changed, 9 insertions, 1 deletions
diff --git a/compiler/depends.nim b/compiler/depends.nim
index 9087f89f2..e8c295a34 100644
--- a/compiler/depends.nim
+++ b/compiler/depends.nim
@@ -24,7 +24,7 @@ type
 var gDotGraph: Rope # the generated DOT file; we need a global variable
 
 proc addDependencyAux(importing, imported: string) =
-  addf(gDotGraph, "$1 -> $2;$n", [rope(importing), rope(imported)])
+  addf(gDotGraph, "$1 -> \"$2\";$n", [rope(importing), rope(imported)])
   # s1 -> s2_4[label="[0-9]"];
 
 proc addDotDependency(c: PPassContext, n: PNode): PNode =
diff --git a/compiler/main.nim b/compiler/main.nim
index f13375948..e6563f281 100644
--- a/compiler/main.nim
+++ b/compiler/main.nim
@@ -31,11 +31,19 @@ proc semanticPasses =
   registerPass verbosePass
   registerPass semPass
 
+proc writeDepsFile(g: ModuleGraph; project: string) =
+  let f = open(changeFileExt(project, "deps"), fmWrite)
+  for m in g.modules:
+    if m != nil:
+      f.writeLine(toFullPath(m.position.int32))
+  f.close()
+
 proc commandGenDepend(graph: ModuleGraph; cache: IdentCache) =
   semanticPasses()
   registerPass(gendependPass)
   #registerPass(cleanupPass)
   compileProject(graph, cache)
+  writeDepsFile(graph, gProjectFull)
   generateDot(gProjectFull)
   execExternalProgram("dot -Tpng -o" & changeFileExt(gProjectFull, "png") &
       ' ' & changeFileExt(gProjectFull, "dot"))