diff options
-rw-r--r-- | compiler/cgen.nim | 3 | ||||
-rw-r--r-- | compiler/jsgen.nim | 3 |
2 files changed, 6 insertions, 0 deletions
diff --git a/compiler/cgen.nim b/compiler/cgen.nim index 250044601..918bec0f9 100644 --- a/compiler/cgen.nim +++ b/compiler/cgen.nim @@ -1635,6 +1635,9 @@ proc cgenWriteModules*(backend: RootRef, config: ConfigRef) = # deps are allowed (and the system module is processed in the wrong # order anyway) g.config = config + let (outDir, _, _) = splitFile(config.outfile) + if not outDir.isEmpty: + createDir(outDir) if g.generatedHeader != nil: finishModule(g.generatedHeader) while g.forwardedProcsCounter > 0: for m in cgenModules(g): diff --git a/compiler/jsgen.nim b/compiler/jsgen.nim index f91bfda8c..1be8629b9 100644 --- a/compiler/jsgen.nim +++ b/compiler/jsgen.nim @@ -2345,6 +2345,9 @@ proc myClose(graph: ModuleGraph; b: PPassContext, n: PNode): PNode = else: AbsoluteFile(getCurrentDir() / m.config.outFile.string) else: changeFileExt(completeCFilePath(m.config, AbsoluteFile f), ext) + let (outDir, _, _) = splitFile(outfile) + if not outDir.isEmpty: + createDir(outDir) discard writeRopeIfNotEqual(genHeader() & code, outfile) for obj, content in items(globals.classes): genClass(m.config, obj, content, ext) |