Skip to content

Commit

Permalink
Add new custom built and test target to make in order to enable easy …
Browse files Browse the repository at this point in the history
…build or test single nim modules
  • Loading branch information
NagyZoltanPeter committed Jul 16, 2024
1 parent ba418ab commit 13531c1
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 7 deletions.
9 changes: 8 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -179,7 +179,7 @@ testcommon: | build deps
##########
## Waku ##
##########
.PHONY: testwaku wakunode2 testwakunode2 example2 chat2 chat2bridge
.PHONY: testwaku wakunode2 testwakunode2 example2 chat2 chat2bridge liteprotocoltester

# install anvil only for the testwaku target
testwaku: | build deps anvil librln
Expand Down Expand Up @@ -218,6 +218,13 @@ liteprotocoltester: | build deps librln
echo -e $(BUILD_MSG) "build/$@" && \
$(ENV_SCRIPT) nim liteprotocoltester $(NIM_PARAMS) waku.nims

build/%: | build deps librln
echo -e $(BUILD_MSG) "build/$*" && \
$(ENV_SCRIPT) nim buildone $(NIM_PARAMS) waku.nims $*

test/%: | build deps librln
echo -e $(BUILD_MSG) "test/$*" && \
$(ENV_SCRIPT) nim testone $(NIM_PARAMS) waku.nims $*

################
## Waku tools ##
Expand Down
36 changes: 30 additions & 6 deletions waku.nimble
Original file line number Diff line number Diff line change
Expand Up @@ -26,15 +26,30 @@ requires "nim >= 2.0.8",
"db_connector"

### Helper functions
proc buildModule(filePath, params = "", lang = "c") =
if not dirExists "build":
mkDir "build"
# allow something like "nim nimbus --verbosity:0 --hints:off nimbus.nims"
var extra_params = params
for i in 2 ..< paramCount() - 1:
extra_params &= " " & paramStr(i)

if not fileExists(filePath):
echo "File to build not found: " & filePath
return

exec "nim " & lang & " --out:build/" & filepath & ".bin --mm:refc " & extra_params &
" " & filePath

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
for i in 2 ..< paramCount():
extra_params &= " " & paramStr(i)
exec "nim " & lang & " --out:build/" & name & " --mm:refc " & extra_params & " " & srcDir & name &
".nim"
exec "nim " & lang & " --out:build/" & name & " --mm:refc " & extra_params & " " &
srcDir & name & ".nim"

proc buildLibrary(name: string, srcDir = "./", params = "", `type` = "static") =
if not dirExists "build":
Expand All @@ -45,12 +60,12 @@ proc buildLibrary(name: string, srcDir = "./", params = "", `type` = "static") =
extra_params &= " " & paramStr(i)
if `type` == "static":
exec "nim c" & " --out:build/" & name &
".a --threads:on --app:staticlib --opt:size --noMain --mm:refc --header " & extra_params &
" " & srcDir & name & ".nim"
".a --threads:on --app:staticlib --opt:size --noMain --mm:refc --header " &
extra_params & " " & srcDir & name & ".nim"
else:
exec "nim c" & " --out:build/" & name &
".so --threads:on --app:lib --opt:size --noMain --mm:refc --header " & extra_params & " " &
srcDir & name & ".nim"
".so --threads:on --app:lib --opt:size --noMain --mm:refc --header " & extra_params &
" " & srcDir & name & ".nim"

proc buildMobileAndroid(srcDir = ".", params = "") =
let cpu = getEnv("CPU")
Expand Down Expand Up @@ -129,6 +144,15 @@ task liteprotocoltester, "Build liteprotocoltester":
let name = "liteprotocoltester"
buildBinary name, "apps/liteprotocoltester/"

task buildone, "Build custom target":
let filepath = paramStr(paramCount())
buildModule filepath

task testone, "Test custom target":
let filepath = paramStr(paramCount())
buildModule filepath
exec "build/" & filepath & ".bin"

### C Bindings
task libwakuStatic, "Build the cbindings waku node library":
let name = "libwaku"
Expand Down

0 comments on commit 13531c1

Please sign in to comment.