/ dnsdisc.nimble
dnsdisc.nimble
 1  # Package
 2  
 3  packageName   = "dnsdisc"
 4  version       = "0.1.0"
 5  author        = "Status Research & Development GmbH"
 6  description   = "Nim discovery library supporting EIP-1459"
 7  license       = "MIT or Apache License 2.0"
 8  
 9  # Dependencies
10  
11  requires "nim >= 1.6.0",
12    "bearssl",
13    "chronicles",
14    "chronos",
15    "eth",
16    "secp256k1",
17    "stew",
18    "testutils",
19    "unittest2",
20    "nimcrypto",
21    "results"
22  
23  # Helper functions
24  proc buildBinary(name: string, srcDir = "./", params = "", lang = "c") =
25    if not dirExists "build":
26      mkDir "build"
27    # allow something like "nim nimbus --verbosity:0 --hints:off nimbus.nims"
28    var extra_params = params
29    for i in 2..<paramCount():
30      extra_params &= " " & paramStr(i)
31    exec "nim " & lang & " --mm:refc --out:build/" & name & " " & extra_params & " " & srcDir & name & ".nim"
32    if NimMajor >= 2:
33      exec "nim " & lang & " --mm:orc --out:build/" & name & " " & extra_params & " " & srcDir & name & ".nim"
34  
35  proc test(name: string, params = "-d:chronicles_log_level=DEBUG", lang = "c") =
36    # XXX: When running `> NIM_PARAMS="-d:chronicles_log_level=INFO" make test2`
37    # I expect compiler flag to be overridden, however it stays with whatever is
38    # specified here.
39    exec "nim " & lang & " --mm:refc -r " & params & " tests/" & name & ".nim"
40    if NimMajor >= 2:
41      exec "nim " & lang & " --mm:orc -r " & params & " tests/" & name & ".nim"
42  
43  task creator, "Build DNS discovery tree creator":
44    buildBinary "tree_creator", "dnsdisc/creator/", "-d:chronicles_log_level=DEBUG -d:chronosStrictException"
45  
46  task test, "Build & run all DNS discovery tests":
47    test "all_tests"