some adaptations for n-b-s

This commit is contained in:
Ivan Folgueira Bande 2025-09-26 15:45:03 +02:00 committed by Jazz Turner-Baggs
parent 0743ea467f
commit 59c9c920be
10 changed files with 125 additions and 36 deletions

2
.gitignore vendored
View File

@ -2,3 +2,5 @@
/waku_vibe_template.dSYM
/nim_chat_poc
*.dSYM
nimble.develop
nimble.paths

20
.gitmodules vendored
View File

@ -6,3 +6,23 @@
url = https://github.com/waku-org/nwaku.git
ignore = untracked
branch = master
[submodule "vendor/nim-chronos"]
path = vendor/nim-chronos
url = https://github.com/status-im/nim-chronos.git
ignore = untracked
branch = master
[submodule "vendor/nim-chronicles"]
path = vendor/nim-chronicles
url = https://github.com/status-im/nim-chronicles.git
ignore = untracked
branch = master
[submodule "vendor/nim-metrics"]
path = vendor/nim-metrics
url = https://github.com/status-im/nim-metrics.git
ignore = untracked
branch = master
[submodule "vendor/nim-libp2p"]
path = vendor/nim-libp2p
url = https://github.com/status-im/nim-libp2p.git
ignore = untracked
branch = master

77
Makefile Normal file
View File

@ -0,0 +1,77 @@
export BUILD_SYSTEM_DIR := vendor/nimbus-build-system
export EXCLUDED_NIM_PACKAGES := vendor/nim-dnsdisc/vendor
LINK_PCRE := 0
FORMAT_MSG := "\\x1B[95mFormatting:\\x1B[39m"
# we don't want an error here, so we can handle things later, in the ".DEFAULT" target
-include $(BUILD_SYSTEM_DIR)/makefiles/variables.mk
ifeq ($(NIM_PARAMS),)
# "variables.mk" was not included, so we update the submodules.
GIT_SUBMODULE_UPDATE := git submodule update --init --recursive
.DEFAULT:
+@ echo -e "Git submodules not found. Running '$(GIT_SUBMODULE_UPDATE)'.\n"; \
$(GIT_SUBMODULE_UPDATE); \
echo
# Now that the included *.mk files appeared, and are newer than this file, Make will restart itself:
# https://www.gnu.org/software/make/manual/make.html#Remaking-Makefiles
#
# After restarting, it will execute its original goal, so we don't have to start a child Make here
# with "$(MAKE) $(MAKECMDGOALS)". Isn't hidden control flow great?
else # "variables.mk" was included. Business as usual until the end of this file.
##########
## Main ##
##########
.PHONY: all update clean
# default target, because it's the first one that doesn't start with '.'
all: | waku_example
test_file := $(word 2,$(MAKECMDGOALS))
define test_name
$(shell echo '$(MAKECMDGOALS)' | cut -d' ' -f3-)
endef
nim_chat_poc.nims:
ln -s nim_chat_poc.nimble $@
update: | update-common
rm -rf nim_chat_poc.nims && \
$(MAKE) nim_chat_poc.nims $(HANDLE_OUTPUT)
clean:
rm -rf build
# must be included after the default target
-include $(BUILD_SYSTEM_DIR)/makefiles/targets.mk
## Possible values: prod; debug
TARGET ?= prod
## Git version
GIT_VERSION ?= $(shell git describe --abbrev=6 --always --tags)
## Compilation parameters. If defined in the CLI the assignments won't be executed
NIM_PARAMS := $(NIM_PARAMS) -d:git_version=\"$(GIT_VERSION)\"
##################
## Dependencies ##
##################
.PHONY: build-waku-librln
build-waku-librln:
make -C vendor/nwaku librln
##########
## Example ##
##########
.PHONY: waku_example
waku_example: | build-waku-librln nim_chat_poc.nims
echo -e $(BUILD_MSG) "build/$@" && \
\
$(ENV_SCRIPT) nim waku_example $(NIM_PARAMS) nim_chat_poc.nims
endif

View File

@ -1,8 +0,0 @@
#!/bin/bash
echo "Running setup task..."
echo "Init Submodules..."
git submodule update --init --recursive
echo "Building Waku..."
( cd vendor/waku && make -j14 librln)

16
nim.cfg
View File

@ -1,16 +0,0 @@
# Add custom paths to import modules
--path: "vendor/waku"
# Compile with debug symbols
--debuginfo
# Enable warnings
--warning[UnusedImport]: on
# Enable experimental features
--experimental
--passL: "./vendor/waku/librln_v0.7.0.a"
--define: chronicles_runtime_filtering

View File

@ -1,17 +1,11 @@
# Package
version = "0.1.0"
author = "jazzz"
description = "An example of the chat sdk in Nim"
license = "MIT"
srcDir = "src"
bin = @["nim_chat_poc"]
# Basic build task
task initialize, "Initialize the project after cloning":
exec "./initialize.sh"
version = "0.1.0"
author = "jazzz"
description = "An example of the chat sdk in Nim"
license = "MIT"
srcDir = "src"
bin = @["nim_chat_poc"]
# Dependencies
@ -28,3 +22,19 @@ requires "eth"
requires "regex"
requires "web3"
requires "https://github.com/jazzz/nim-sds#exports"
requires "naawaku"
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"
task waku_example, "Build Waku based simple example":
let name = "waku_example"
buildBinary name, "examples/", " -d:chronicles_log_level='TRACE' "

1
vendor/nim-chronicles vendored Submodule

@ -0,0 +1 @@
Subproject commit 67da11265f8defa5b2c7d2f17ab5b1637c6a1d41

1
vendor/nim-chronos vendored Submodule

@ -0,0 +1 @@
Subproject commit bb0a8f07bcff3fb79b20720e4bb286fccedae93a

1
vendor/nim-libp2p vendored Submodule

@ -0,0 +1 @@
Subproject commit 3103db25cce2c5553b2b8b83b8e442168b4a3f88

1
vendor/nim-metrics vendored Submodule

@ -0,0 +1 @@
Subproject commit ecf64c6078d1276d3b7d9b3d931fbdb70004db11