44 lines
1.2 KiB
Plaintext
Raw Normal View History

2025-06-02 11:06:18 +02:00
mode = ScriptMode.Verbose
import std/os except commandLineParams
### Helper functions
proc buildBinary(name: string, srcDir = "./", params = "", lang = "c") =
if not dirExists "build":
mkDir "build"
# allow something like "nim nimbus --verbosity:0 --hints:off nimbus.nims"
var extra_params = params
when compiles(commandLineParams):
for param in commandLineParams():
extra_params &= " " & param
else:
for i in 2 ..< paramCount():
extra_params &= " " & paramStr(i)
let
# Place build output in 'build' folder, even if name includes a longer path.
outName = os.lastPathPart(name)
cmd =
"nim " & lang & " --out:build/" & outName & " " & extra_params & " " & srcDir &
name & ".nim"
exec(cmd)
proc test(name: string, srcDir = "tests/", params = "", lang = "c") =
buildBinary name, srcDir, params
exec "build/" & name
2025-06-02 11:22:26 +02:00
task codexcrawler, "build codexcrawler binary":
buildBinary "codexcrawler",
2025-06-02 11:06:18 +02:00
params = "-d:chronicles_runtime_filtering -d:chronicles_log_level=TRACE"
2025-06-02 11:22:26 +02:00
task testCodexcrawler, "Build & run Codex Crawler tests":
2025-06-02 15:30:12 +02:00
test "testCodexCrawler"
2025-06-02 11:06:18 +02:00
2025-06-02 15:30:12 +02:00
task build, "build codex crawler binary":
2025-06-02 11:22:26 +02:00
codexCrawlerTask()
2025-06-02 11:06:18 +02:00
task test, "Run tests":
2025-06-02 11:22:26 +02:00
testCodexCrawlerTask()