nim-chat-sdk/chat_sdk.nimble
2025-09-10 12:18:31 +08:00

39 lines
1.3 KiB
Nim

# Package
version = "0.0.1"
author = "Waku Chat Team"
description = "Chat features over Waku"
license = "MIT"
srcDir = "src"
### Dependencies
requires "nim >= 2.2.4", "chronicles", "chronos", "db_connector", "flatty", "waku#799793dba7ef78eba41582ed55db01a2d5d7500a"
proc ensureRln(libFile: string = "build/librln.a", version = "v0.7.0") =
if not fileExists(libFile):
echo "Building RLN library..."
let buildDir = getCurrentDir()
let outFile = libFile
exec "bash ./scripts/build_rln.sh " & buildDir & " " & version & " " & outFile
else:
echo "RLN library already exists: " & libFile
task buildSharedLib, "Build shared library for C bindings":
exec "nim c --mm:refc --app:lib --out:../library/c-bindings/libchatsdk.so chat_sdk/chat_sdk.nim"
task buildStaticLib, "Build static library for C bindings":
exec "nim c --mm:refc --app:staticLib --out:../library/c-bindings/libchatsdk.a chat_sdk/chat_sdk.nim"
task migrate, "Run database migrations":
exec "nim c -r apps/run_migration.nim"
task segment, "Run segmentation":
exec "nim c -r chat_sdk/segmentation.nim"
task subscribe, "Run waku subscription service":
ensureRln()
exec "nim c --passL:build/librln.a --passL:-lm -r apps/waku_subscriber.nim"
task publishing, "Run waku publishing service":
exec "nim c --passL:build/librln.a --passL:-lm -r apps/waku_publisher.nim"