aboutsummaryrefslogtreecommitdiff
path: root/3rdparty/link_gumbo_parser.nim
diff options
context:
space:
mode:
Diffstat (limited to '3rdparty/link_gumbo_parser.nim')
-rw-r--r--3rdparty/link_gumbo_parser.nim25
1 files changed, 25 insertions, 0 deletions
diff --git a/3rdparty/link_gumbo_parser.nim b/3rdparty/link_gumbo_parser.nim
new file mode 100644
index 0000000..1cd69bc
--- /dev/null
+++ b/3rdparty/link_gumbo_parser.nim
@@ -0,0 +1,25 @@
+import json
+import os
+import osproc
+import strutils
+import sequtils
+
+# TODO: Does not support spaces in paths yet!
+
+let
+ jsonFilename = joinPath(getAppDir(), "nimcache", "compile_gumbo_parser.json")
+ jsonNode = parseJson(readFile(jsonFilename))
+ linkCmdOrig = getStr(jsonNode["linkcmd"])
+ linkCmdPartsOrig = splitWhitespace(linkCmdOrig)
+ linkCmdParts = filter(linkCmdPartsOrig) do (x: string) -> bool:
+ let (_, base, ext) = splitFile(x)
+ not(ext == ".o" and (startsWith(base, "stdlib_") or
+ endsWith(base, "compile_gumbo_parser")))
+ command = linkCmdParts[0]
+ args = linkCmdParts[1..^1]
+
+removeFile("libcompile_gumbo_parser.a")
+
+discard execProcess(command, args, nil, {poEchoCmd, poUsePath})
+
+moveFile("libcompile_gumbo_parser.a", "libgumbo_parser.a")