fix_: pr comments

This commit is contained in:
pablo 2025-06-10 15:48:29 +03:00
parent c3199624cf
commit 8d08ce34b9
No known key found for this signature in database
GPG Key ID: 78F35FCC60FDC63A
14 changed files with 34 additions and 19 deletions

13
.gitignore vendored Normal file
View File

@ -0,0 +1,13 @@
# Nim
nimcache/
*.exe
*.dll
*.so
*.dylib
# Build artifacts
*.o
*.a
# OS
.DS_Store

View File

@ -20,35 +20,37 @@ help:
@echo " help - Show this help message" @echo " help - Show this help message"
# Build Nim library # Build Nim library
build-nim: libchatsdk
libchatsdk: libchatsdk:
@echo "Building Nim library..." @echo "Building Nim library..."
cd src && nim c --app:lib --opt:speed --mm:arc --out:../bindings/c-bindings/libchatsdk.so chat_sdk.nim cd chat_sdk && nim c --app:lib --opt:speed --mm:refc --out:../library/c-bindings/libchatsdk.so chat_sdk.nim
# Build C bindings # Build C bindings
build-c: build-nim build-c: libchatsdk
@echo "C bindings ready (built with Nim)" @echo "C bindings ready (built with Nim)"
# Build Go bindings (just verify they compile) # Build Go bindings (just verify they compile)
build-go: build-c build-go: build-c
@echo "Building Go bindings..." @echo "Building Go bindings..."
cd bindings/go-bindings && go build . cd library/go-bindings && go build .
# Run Go example # Run Go example
run-go-example: build-go run-go-example: build-go
@echo "Running Go example..." @echo "Running Go example..."
cd examples/go-app && \ cd examples/go-app && \
LD_LIBRARY_PATH=../../bindings/c-bindings:$$LD_LIBRARY_PATH \ LD_LIBRARY_PATH=../../library/c-bindings:$$LD_LIBRARY_PATH \
go run main.go go run main.go
# Clean all build artifacts # Clean all build artifacts
clean: clean:
@echo "Cleaning build artifacts..." @echo "Cleaning build artifacts..."
rm -f bindings/c-bindings/*.so bindings/c-bindings/*.a rm -f library/c-bindings/*.so library/c-bindings/*.a
rm -rf src/nimcache bindings/c-bindings/nimcache rm -rf chat_sdk/nimcache library/c-bindings/nimcache
cd bindings/go-bindings && go clean cd library/go-bindings && go clean
cd examples/go-app && go clean cd examples/go-app && go clean
# Test the Nim library directly # Test the Nim library directly
test-nim: test-nim:
@echo "Testing Nim library directly..." @echo "Testing Nim library directly..."
cd src && nim r chat_sdk.nim cd chat_sdk && nim r chat_sdk.nim

Binary file not shown.

View File

@ -1,3 +0,0 @@
module github.com/waku-org/nim-chat-sdk/bindings/go-bindings
go 1.24

View File

@ -12,7 +12,7 @@ srcDir = "src"
requires "nim >= 2.0.0" requires "nim >= 2.0.0"
task buildSharedLib, "Build shared library for C bindings": task buildSharedLib, "Build shared library for C bindings":
exec "nim c --app:lib --out:../bindings/c-bindings/libchatsdk.so src/chat_sdk.nim" exec "nim c --app:lib --out:../library/c-bindings/libchatsdk.so chat_sdk/chat_sdk.nim"
task buildStaticLib, "Build static library for C bindings": task buildStaticLib, "Build static library for C bindings":
exec "nim c --app:staticLib --out:../bindings/c-bindings/libchatsdk.a src/chat_sdk.nim" exec "nim c --app:staticLib --out:../library/c-bindings/libchatsdk.a chat_sdk/chat_sdk.nim"

View File

@ -1,7 +1,7 @@
module go-app module go-app
replace github.com/waku-org/nim-chat-sdk/bindings/go-bindings => ../../bindings/go-bindings replace github.com/waku-org/nim-chat-sdk/library/go-bindings => ../../library/go-bindings
require github.com/waku-org/nim-chat-sdk/bindings/go-bindings v0.0.0-00010101000000-000000000000 require github.com/waku-org/nim-chat-sdk/library/go-bindings v0.0.0-00010101000000-000000000000
go 1.24 go 1.24

View File

@ -5,7 +5,7 @@ import (
"log" "log"
"sync" "sync"
chatsdk "github.com/waku-org/nim-chat-sdk/bindings/go-bindings" chatsdk "github.com/waku-org/nim-chat-sdk/library/go-bindings"
) )
// SimpleStore implements the chatsdk.Store interface with in-memory storage // SimpleStore implements the chatsdk.Store interface with in-memory storage

View File

@ -1,6 +1,6 @@
CC = gcc CC = gcc
CFLAGS = -Wall -Wextra -fPIC CFLAGS = -Wall -Wextra -fPIC
NIMFLAGS = --app:lib --threads:on --gc:orc NIMFLAGS = --app:lib
# Directories # Directories
SRC_DIR = ../../src SRC_DIR = ../../src
@ -20,10 +20,10 @@ shared: $(SHARED_LIB)
static: $(STATIC_LIB) static: $(STATIC_LIB)
$(SHARED_LIB): $(SRC_DIR)/chat_sdk.nim $(HEADER) $(SHARED_LIB): $(SRC_DIR)/chat_sdk.nim $(HEADER)
cd $(SRC_DIR) && nim c $(NIMFLAGS) --out:../bindings/c-bindings/$(SHARED_LIB) chat_sdk.nim cd $(SRC_DIR) && nim c $(NIMFLAGS) --out:../library/c-bindings/$(SHARED_LIB) chat_sdk.nim
$(STATIC_LIB): $(SRC_DIR)/chat_sdk.nim $(HEADER) $(STATIC_LIB): $(SRC_DIR)/chat_sdk.nim $(HEADER)
cd $(SRC_DIR) && nim c $(NIMFLAGS) --app:staticLib --out:../bindings/c-bindings/$(STATIC_LIB) chat_sdk.nim cd $(SRC_DIR) && nim c $(NIMFLAGS) --app:staticLib --out:../library/c-bindings/$(STATIC_LIB) chat_sdk.nim
clean: clean:
rm -f $(SHARED_LIB) $(STATIC_LIB) *.o *.so *.a rm -f $(SHARED_LIB) $(STATIC_LIB) *.o *.so *.a

View File

@ -0,0 +1,3 @@
module github.com/waku-org/nim-chat-sdk/library/go-bindings
go 1.24