chore: build and link libwaku

This commit is contained in:
Richard Ramos 2024-10-10 13:57:03 -04:00
parent 0a16238c82
commit f1a4dd71e2
No known key found for this signature in database
GPG Key ID: 1CE87DB518195760
2 changed files with 59 additions and 9 deletions

View File

@ -13,6 +13,48 @@ BUILD_SYSTEM_DIR := vendor/nimbus-build-system
# we don't want an error here, so we can handle things later, in the ".DEFAULT" target
-include $(BUILD_SYSTEM_DIR)/makefiles/variables.mk
EXCLUDED_NIM_PACKAGES := vendor/status-go/third_party/nwaku/vendor/nim-bearssl \
vendor/status-go/third_party/nwaku/vendor/nim-dnsdisc/vendor/nim-bearssl \
vendor/status-go/third_party/nwaku/vendor/nim-chronicles \
vendor/status-go/third_party/nwaku/vendor/nim-dnsdisc/vendor/nim-chronicles \
vendor/status-go/third_party/nwaku/vendor/nim-chronos \
vendor/status-go/third_party/nwaku/vendor/nim-dnsdisc/vendor/nim-chronos \
vendor/status-go/third_party/nwaku/vendor/nim-confutils \
vendor/status-go/third_party/nwaku/vendor/nim-dnsdisc/vendor/nim-confutils \
vendor/status-go/third_party/nwaku/vendor/nim-dnsdisc/vendor/nim-eth \
vendor/status-go/third_party/nwaku/vendor/nim-dnsdisc/vendor/nim-faststreams \
vendor/status-go/third_party/nwaku/vendor/nim-dnsdisc/vendor/nim-http-utils \
vendor/status-go/third_party/nwaku/vendor/nim-dnsdisc/vendor/nim-json-rpc \
vendor/status-go/third_party/nwaku/vendor/nim-dnsdisc/vendor/nim-json-serialization \
vendor/status-go/third_party/nwaku/vendor/nim-dnsdisc/vendor/nim-secp256k1 \
vendor/status-go/third_party/nwaku/vendor/nim-dnsdisc/vendor/nim-serialization \
vendor/status-go/third_party/nwaku/vendor/nim-dnsdisc/vendor/nim-stew \
vendor/status-go/third_party/nwaku/vendor/nim-dnsdisc/vendor/nim-websock \
vendor/status-go/third_party/nwaku/vendor/nim-dnsdisc/vendor/nim-zlib \
vendor/status-go/third_party/nwaku/vendor/nim-dnsdisc/vendor/nimbus-build-system/vendor/Nim \
vendor/status-go/third_party/nwaku/vendor/nim-dnsdisc/vendor/nimbus-build-system/vendor/nimble \
vendor/status-go/third_party/nwaku/vendor/nim-dnsdisc/vendor/nimcrypto \
vendor/status-go/third_party/nwaku/vendor/nim-eth \
vendor/status-go/third_party/nwaku/vendor/nim-faststreams \
vendor/status-go/third_party/nwaku/vendor/nim-http-utils \
vendor/status-go/third_party/nwaku/vendor/nim-json-rpc \
vendor/status-go/third_party/nwaku/vendor/nim-json-serialization \
vendor/status-go/third_party/nwaku/vendor/nim-libp2p \
vendor/status-go/third_party/nwaku/vendor/nim-metrics \
vendor/status-go/third_party/nwaku/vendor/nim-results \
vendor/status-go/third_party/nwaku/vendor/nim-secp256k1 \
vendor/status-go/third_party/nwaku/vendor/nim-serialization \
vendor/status-go/third_party/nwaku/vendor/nim-stew \
vendor/status-go/third_party/nwaku/vendor/nim-stint \
vendor/status-go/third_party/nwaku/vendor/nim-taskpools \
vendor/status-go/third_party/nwaku/vendor/nim-testutils \
vendor/status-go/third_party/nwaku/vendor/nim-unittest2 \
vendor/status-go/third_party/nwaku/vendor/nim-web3 \
vendor/status-go/third_party/nwaku/vendor/nim-websock \
vendor/status-go/third_party/nwaku/vendor/nim-zlib \
vendor/status-go/third_party/nwaku/vendor/nimbus-build-system/vendor/Nim \
vendor/status-go/third_party/nwaku/vendor/nimcrypto
.PHONY: \
all \
nix-shell \
@ -83,7 +125,7 @@ ifeq ($(detected_OS),Darwin)
export CFLAGS
CGO_CFLAGS := -mmacosx-version-min=12.0
export CGO_CFLAGS
LIBSTATUS_EXT := dylib
LIB_EXT := dylib
# keep in sync with BOTTLE_MACOS_VERSION
MACOSX_DEPLOYMENT_TARGET := 12.0
export MACOSX_DEPLOYMENT_TARGET
@ -92,14 +134,14 @@ ifeq ($(detected_OS),Darwin)
QMAKE_PATH := $(shell which qmake);
QT_ARCH := $(shell lipo -archs $(QMAKE_PATH))
else ifeq ($(detected_OS),Windows)
LIBSTATUS_EXT := dll
LIB_EXT := dll
PKG_TARGET := pkg-windows
QRCODEGEN_MAKE_PARAMS := CC=gcc
RUN_TARGET := run-windows
VCINSTALLDIR ?= C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\BuildTools\\VC\\
export VCINSTALLDIR
else
LIBSTATUS_EXT := so
LIB_EXT := so
PKG_TARGET := pkg-linux
RUN_TARGET := run-linux
endif
@ -217,6 +259,14 @@ ifeq ($(detected_OS),Darwin)
endif
endif
ifeq ($(USE_NWAKU), true)
STATUSGO_MAKE_PARAMS += USE_NWAKU=true
NEGENTROPY := vendor/status-go/third_party/nwaku/vendor/negentropy/cpp/libnegentropy.a
LIBWAKU := vendor/status-go/third_party/nwaku/build/libwaku.$(LIB_EXT)
LIBWAKU_LIBDIR := $(shell pwd)/$(shell dirname "$(LIBWAKU)")
NIM_EXTRA_PARAMS += --passL:"-L$(LIBWAKU_LIBDIR)" --passL:"-lwaku" --passL:"$(NEGENTROPY)"
endif
INCLUDE_DEBUG_SYMBOLS ?= false
ifeq ($(INCLUDE_DEBUG_SYMBOLS),true)
# We need `-d:debug` to get Nim's default stack traces
@ -430,14 +480,14 @@ dotherside: | dotherside-build
## status-go
##
STATUSGO := vendor/status-go/build/bin/libstatus.$(LIBSTATUS_EXT)
STATUSGO := vendor/status-go/build/bin/libstatus.$(LIB_EXT)
STATUSGO_LIBDIR := $(shell pwd)/$(shell dirname "$(STATUSGO)")
export STATUSGO_LIBDIR
$(STATUSGO): | deps
echo -e $(BUILD_MSG) "status-go"
# FIXME: Nix shell usage breaks builds due to Glibc mismatch.
$(MAKE) -C vendor/status-go statusgo-shared-library SHELL=/bin/sh \
$(MAKE) -C vendor/status-go statusgo-shared-library SHELL=/bin/bash \
$(STATUSGO_MAKE_PARAMS) $(HANDLE_OUTPUT)
status-go: $(STATUSGO)
@ -446,7 +496,7 @@ status-go-clean:
echo -e "\033[92mCleaning:\033[39m status-go"
rm -f $(STATUSGO)
export STATUSKEYCARDGO := vendor/status-keycard-go/build/libkeycard/libkeycard.$(LIBSTATUS_EXT)
export STATUSKEYCARDGO := vendor/status-keycard-go/build/libkeycard/libkeycard.$(LIB_EXT)
export STATUSKEYCARDGO_LIBDIR := "$(shell pwd)/$(shell dirname "$(STATUSKEYCARDGO)")"
status-keycard-go: $(STATUSKEYCARDGO)
@ -822,12 +872,12 @@ ICON_TOOL := node_modules/.bin/fileicon
run-linux: nim_status_client
echo -e "\033[92mRunning:\033[39m bin/nim_status_client"
LD_LIBRARY_PATH="$(QT5_LIBDIR)":"$(STATUSGO_LIBDIR)":"$(STATUSKEYCARDGO_LIBDIR):$(LD_LIBRARY_PATH)" \
LD_LIBRARY_PATH="$(QT5_LIBDIR)":"$(LIBWAKU_LIBDIR)":"$(STATUSGO_LIBDIR)":"$(STATUSKEYCARDGO_LIBDIR):$(LD_LIBRARY_PATH)" \
./bin/nim_status_client $(ARGS)
run-linux-gdb: nim_status_client
echo -e "\033[92mRunning:\033[39m bin/nim_status_client"
LD_LIBRARY_PATH="$(QT5_LIBDIR)":"$(STATUSGO_LIBDIR)":"$(STATUSKEYCARDGO_LIBDIR):$(LD_LIBRARY_PATH)" \
LD_LIBRARY_PATH="$(QT5_LIBDIR)":"$(LIBWAKU_LIBDIR)":"$(STATUSGO_LIBDIR)":"$(STATUSKEYCARDGO_LIBDIR):$(LD_LIBRARY_PATH)" \
gdb -ex=r ./bin/nim_status_client $(ARGS)
run-macos: nim_status_client

2
vendor/status-go vendored

@ -1 +1 @@
Subproject commit d7d23a04e1c01f731bb42c2358ddd81e95643ee6
Subproject commit c1ee89cd69bdb502a4b3c184aca58d0c81c88879