aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--nimgen.nim12
1 files changed, 9 insertions, 3 deletions
diff --git a/nimgen.nim b/nimgen.nim
index acf94da..7137dcd 100644
--- a/nimgen.nim
+++ b/nimgen.nim
@@ -488,13 +488,14 @@ proc c2nim(fl, outfile: string, c2nimConfig: c2nimConfigObj) =
outpragma = ""
passC = "import strutils\n"
- for inc in gIncludes:
- passC &= ("""{.passC: "-I\"" & gorge("nimble path $#").strip() & "/$#\"".}""" % [gOutput, inc]) & "\n"
+ passC &= "import ospaths\n"
for prag in c2nimConfig.pragma:
outpragma &= "{." & prag & ".}\n"
let fname = file.splitFile().name.replace(re"[\.\-]", "_")
+ let fincl = file.replace(gOutput, "")
+
if c2nimConfig.dynlib.len() != 0:
let
win = "when defined(Windows):\n"
@@ -524,7 +525,12 @@ proc c2nim(fl, outfile: string, c2nimConfig: c2nimConfigObj) =
if outlib != "":
extflags &= " --dynlib:dynlib$#" % fname
else:
- passC &= "const header$# = \"$#\"\n" % [fname, fl]
+ if file.isAbsolute():
+ passC &= "const header$# = \"$#\"\n" % [fname, fincl]
+ else:
+ # based on the current source directory, get the include path
+ # works for nimble installations and local repo clones
+ passC &= "const header$# = currentSourcePath().splitPath().head & \"/$#\"\n" % [fname, fincl]
extflags = "--header:header$#" % fname
# Run c2nim on generated file