aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGanesh Viswanathan <dev@genotrance.com>2019-05-04 13:35:44 -0500
committerGanesh Viswanathan <dev@genotrance.com>2019-05-04 13:35:44 -0500
commitec4e7aa5ba637ddfc5a60fa3ebe96ad7c2f70fc6 (patch)
treea8796adf8e8b4b73c52037779c112dd4aeca8ec5
parentad90b586c4ecc2d99ce32bd70f458d9f41810293 (diff)
downloadnimterop-ec4e7aa5ba637ddfc5a60fa3ebe96ad7c2f70fc6.tar.gz
nimterop-ec4e7aa5ba637ddfc5a60fa3ebe96ad7c2f70fc6.zip
Fix for mingw cross-compilation
-rw-r--r--nimterop/cimport.nim28
-rw-r--r--nimterop/git.nim10
2 files changed, 21 insertions, 17 deletions
diff --git a/nimterop/cimport.nim b/nimterop/cimport.nim
index 1f82b6f..58d0629 100644
--- a/nimterop/cimport.nim
+++ b/nimterop/cimport.nim
@@ -42,7 +42,7 @@ proc walkDirImpl(indir, inext: string, file=true): seq[string] =
dir = joinPathIfRel(getProjectPath(), indir)
ext =
if inext.len != 0:
- when not defined(Windows):
+ if hostOS != "windows":
"-name " & inext
else:
"\\" & inext
@@ -51,7 +51,7 @@ proc walkDirImpl(indir, inext: string, file=true): seq[string] =
let
cmd =
- when defined(Windows):
+ if hostOS == "windows":
if file:
"cmd /c dir /s/b/a-d " & dir.replace("/", "\\") & ext
else:
@@ -70,13 +70,17 @@ proc walkDirImpl(indir, inext: string, file=true): seq[string] =
proc getFileDate(fullpath: string): string =
var
ret = 0
- cmd =
- when defined(Windows):
- &"cmd /c for %a in ({fullpath.quoteShell}) do echo %~ta"
- elif defined(Linux):
- &"stat -c %y {fullpath.quoteShell}"
- elif defined(OSX):
- &"stat -f %m {fullpath.quoteShell}"
+ cmd = ""
+
+ case hostOS
+ of "windows":
+ cmd = &"cmd /c for %a in ({fullpath.quoteShell}) do echo %~ta"
+ of "linux":
+ cmd = &"stat -c %y {fullpath.quoteShell}"
+ of "macosx":
+ cmd = &"stat -f %m {fullpath.quoteShell}"
+ else:
+ doAssert false
(result, ret) = gorgeEx(cmd)
@@ -115,7 +119,7 @@ proc getNimCheckError(output: string): tuple[tmpFile, errors: string] =
proc getToast(fullpath: string, recurse: bool = false): string =
var
ret = 0
- cmd = when defined(Windows): "cmd /c " else: ""
+ cmd = if hostOS == "windows": "cmd /c " else: ""
let toastExe = toastExePath()
doAssert fileExists(toastExe), "toast not compiled: " & toastExe.quoteShell &
@@ -146,7 +150,7 @@ proc getToast(fullpath: string, recurse: bool = false): string =
proc getGccPaths(mode = "c"): string =
var
ret = 0
- nul = when defined(Windows): "nul" else: "/dev/null"
+ nul = if hostOS == "windows": "nul" else: "/dev/null"
mmode = if mode == "cpp": "c++" else: mode
(result, ret) = gorgeEx("gcc -Wp,-v -x" & mmode & " " & nul)
@@ -452,7 +456,7 @@ macro cCompile*(path: static string, mode = "c", exclude = ""): untyped =
if mode.strVal().contains("cpp"):
for i in @["*.cpp", "*.c++", "*.cc", "*.cxx"]:
stmt &= dcompile(fpath, exclude.strVal(), i)
- when not defined(Windows):
+ if hostOS != "windows":
stmt &= dcompile(fpath, exclude.strVal(), "*.C")
else:
stmt &= dcompile(fpath, exclude.strVal(), "*.c")
diff --git a/nimterop/git.nim b/nimterop/git.nim
index b0380c2..7ad2b23 100644
--- a/nimterop/git.nim
+++ b/nimterop/git.nim
@@ -6,7 +6,7 @@ proc execAction*(cmd: string, nostderr=false): string =
var
ccmd = ""
ret = 0
- when defined(Windows):
+ when hostOS == "windows":
ccmd = "cmd /c " & cmd
elif defined(posix):
ccmd = cmd
@@ -23,7 +23,7 @@ proc execAction*(cmd: string, nostderr=false): string =
proc mkDir*(dir: string) =
if not dirExists(dir):
let
- flag = when not defined(Windows): "-p" else: ""
+ flag = if hostOS != "windows": "-p" else: ""
discard execAction(&"mkdir {flag} {dir.quoteShell}")
proc cpFile*(source, dest: string, move=false) =
@@ -31,7 +31,7 @@ proc cpFile*(source, dest: string, move=false) =
source = source.replace("/", $DirSep)
dest = dest.replace("/", $DirSep)
cmd =
- when defined(Windows):
+ if hostOS == "windows":
if move:
"move /y"
else:
@@ -49,7 +49,7 @@ proc mvFile*(source, dest: string) =
proc extractZip*(zipfile, outdir: string) =
var cmd = "unzip -o $#"
- if defined(Windows):
+ if hostOS == "windows":
cmd = "powershell -nologo -noprofile -command \"& { Add-Type -A " &
"'System.IO.Compression.FileSystem'; " &
"[IO.Compression.ZipFile]::ExtractToDirectory('$#', '.'); }\""
@@ -65,7 +65,7 @@ proc downloadUrl*(url, outdir: string) =
if not (ext == ".zip" and fileExists(outdir/file)):
echo "Downloading " & file
mkDir(outdir)
- var cmd = if defined(Windows):
+ var cmd = if hostOS == "windows":
"powershell [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12; wget $# -OutFile $#"
else:
"curl $# -o $#"