mirror of
https://github.com/logos-messaging/logos-messaging-go-bindings.git
synced 2026-01-02 14:03:10 +00:00
feat: nwaku download script
This commit is contained in:
parent
8360dbaa6b
commit
c03874e35a
37
scripts/download_nwaku.sh
Executable file
37
scripts/download_nwaku.sh
Executable file
@ -0,0 +1,37 @@
|
||||
#!/usr/bin/env bash
|
||||
set -euo pipefail
|
||||
|
||||
VERSION="${VERSION:-v0.36.0}"
|
||||
NWAKU_DIR="../third_party/nwaku"
|
||||
OS="$(uname | tr '[:upper:]' '[:lower:]')"
|
||||
ARCH="$(uname -m)"
|
||||
EXT="so"
|
||||
|
||||
if [ ! -d "$NWAKU_DIR" ]; then
|
||||
echo "Error: Directory $NWAKU_DIR does not exist. Please create it first."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
case "$OS" in
|
||||
darwin) OS="darwin" ;;
|
||||
linux) OS="linux" ;;
|
||||
*) echo "Unsupported OS: $OS"; exit 1 ;;
|
||||
esac
|
||||
|
||||
case "$ARCH" in
|
||||
x86_64|amd64) ARCH="x86_64" ;;
|
||||
arm64|aarch64) ARCH="arm64" ;;
|
||||
*) echo "Unsupported ARCH: $ARCH"; exit 1 ;;
|
||||
esac
|
||||
|
||||
URL_BASE="https://github.com/waku-org/nwaku/releases/download"
|
||||
URL="${URL_BASE}/${VERSION}/libwaku-${VERSION}-${OS}-${ARCH}.${EXT}"
|
||||
HEADER_URL="${URL_BASE}/${VERSION}/libwaku.h"
|
||||
|
||||
echo "Downloading nwaku $VERSION for $OS-$ARCH..."
|
||||
|
||||
echo "Downloading library header from $HEADER_URL"
|
||||
curl -sfL -o "$NWAKU_DIR/libwaku.h" "$HEADER_URL"
|
||||
|
||||
echo "Downloading library binary from $URL"
|
||||
curl -sfL -o "$NWAKU_DIR/libwaku.${EXT}" "$URL"
|
||||
@ -1,15 +1,36 @@
|
||||
# Makefile for Waku Go Bindings
|
||||
|
||||
# Directories
|
||||
# Determine OS and set library extension
|
||||
UNAME_S := $(shell uname -s)
|
||||
ifeq ($(UNAME_S),Linux)
|
||||
EXT := so
|
||||
else ifeq ($(UNAME_S),Darwin)
|
||||
EXT := so
|
||||
else ifeq ($(OS),Windows_NT)
|
||||
EXT := dll
|
||||
else
|
||||
$(error Unsupported OS: $(UNAME_S))
|
||||
endif
|
||||
|
||||
THIRD_PARTY_DIR := $(shell pwd)/../third_party
|
||||
NWAKU_REPO := https://github.com/waku-org/nwaku
|
||||
NWAKU_DIR := $(THIRD_PARTY_DIR)/nwaku
|
||||
LIBWAKU_HEADER := $(NWAKU_DIR)/libwaku.h
|
||||
LIBWAKU := $(NWAKU_DIR)/libwaku.${EXT}
|
||||
|
||||
.PHONY: all clean build-libwaku build
|
||||
.PHONY: all clean build libwaku
|
||||
|
||||
# Default target
|
||||
all: build
|
||||
|
||||
# Prepare third_party directory and clone nwaku
|
||||
# NOTE: Currently we download a library release.
|
||||
# In the future we should get nwaku from Nimble package manager.
|
||||
$(LIBWAKU) $(LIBWAKU_HEADER):
|
||||
@../scripts/download_nwaku.sh
|
||||
|
||||
libwaku: $(LIBWAKU) $(LIBWAKU_HEADER)
|
||||
|
||||
# Build libwaku
|
||||
build-libwaku:
|
||||
@echo "Building libwaku..."
|
||||
@ -17,14 +38,14 @@ build-libwaku:
|
||||
|
||||
# Build Waku Go Bindings
|
||||
|
||||
build: export CGO_CFLAGS = "-I${NWAKU_DIR}/library/"
|
||||
build: export CGO_LDFLAGS = "-L${NWAKU_DIR}/build/ -lwaku -L${NWAKU_DIR} -Wl,-rpath,${NWAKU_DIR}/build/"
|
||||
build:
|
||||
build: export CGO_CFLAGS = "-I${NWAKU_DIR}"
|
||||
build: export CGO_LDFLAGS = "-L${NWAKU_DIR} -lwaku -L${NWAKU_DIR} -Wl,-rpath,${NWAKU_DIR}"
|
||||
build: libwaku
|
||||
@echo "Building Waku Go Bindings..."
|
||||
go build ./...
|
||||
|
||||
# Clean up generated files
|
||||
clean:
|
||||
@echo "Cleaning up..."
|
||||
@rm -rf $(THIRD_PARTY_DIR)
|
||||
@rm -f $(LIBWAKU_HEADER) $(LIBWAKU)
|
||||
@rm -f waku-go-bindings
|
||||
Loading…
x
Reference in New Issue
Block a user