bug: fix windows build (#46)

* chore: log build files.

* chore: update nwaku

* chore: use rln 0.9.0

* chore: fix file name

* chore: fix path

* chore: log the released file

* chore: test log

* chore: splite windows test ci

* chore: splite windows test

* chore: update nwaku

* chore: update nwaku

* chore: update windows ci deps

* chore: update ci

* chore: update ci

* chore: update ci

* chore: update ci

* chore: update ci
This commit is contained in:
kaichao 2025-12-21 10:53:49 +08:00 committed by GitHub
parent a1553b74d7
commit 9fd5daa436
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 93 additions and 2 deletions

76
.github/workflows/test-windows.yml vendored Normal file
View File

@ -0,0 +1,76 @@
name: test-windows
on:
pull_request:
branches:
- main
paths-ignore:
- '**README.md'
- '.gitignore'
- 'LICENSE'
jobs:
tests-tasks:
runs-on: windows-latest
defaults:
run:
shell: msys2 {0}
env:
MSYSTEM: MINGW64
steps:
- name: Checkout
uses: actions/checkout@v6
- name: Setup MSYS2
uses: msys2/setup-msys2@v2
with:
update: true
install: >-
git
base-devel
mingw-w64-x86_64-toolchain
make
cmake
upx
mingw-w64-x86_64-rust
mingw-w64-x86_64-postgresql
mingw-w64-x86_64-gcc
mingw-w64-x86_64-gcc-libs
mingw-w64-x86_64-libwinpthread-git
mingw-w64-x86_64-zlib
mingw-w64-x86_64-openssl
mingw-w64-x86_64-python
mingw-w64-x86_64-cmake
mingw-w64-x86_64-llvm
mingw-w64-x86_64-clang
- name: Add UPX to PATH
run: |
echo "/usr/bin:$PATH" >> $GITHUB_PATH
echo "/mingw64/bin:$PATH" >> $GITHUB_PATH
echo "/usr/lib:$PATH" >> $GITHUB_PATH
echo "/mingw64/lib:$PATH" >> $GITHUB_PATH
- name: Verify dependencies
run: |
which upx gcc g++ make cmake cargo rustc python make mingw32-make
- name: Update
run: make update
- name: Building miniupnpc
run: |
cd vendor/nwaku/vendor/nim-nat-traversal/vendor/miniupnp/miniupnpc
make -f Makefile.mingw CC=gcc CXX=g++ libminiupnpc.a V=1
cd ../../../../../../..
- name: Building libnatpmp
run: |
cd vendor/nwaku/vendor/nim-nat-traversal/vendor/libnatpmp-upstream
make CC="gcc -fPIC -D_WIN32_WINNT=0x0600 -DNATPMP_STATICLIB" libnatpmp.a V=1
cd ../../../../../../
- name: Tests
run: make tests

View File

@ -12,7 +12,7 @@ jobs:
tests-tasks:
strategy:
matrix:
os: [ubuntu-latest, macOS-latest, windows-latest]
os: [ubuntu-latest, macOS-latest]
runs-on: ${{ matrix.os }}
steps:
- name: Checkout

View File

@ -22,6 +22,12 @@ GIT_SUBMODULE_UPDATE := git submodule update --init --recursive
else # "variables.mk" was included. Business as usual until the end of this file.
# Determine the OS
detected_OS := $(shell uname -s)
ifneq (,$(findstring MINGW,$(detected_OS)))
detected_OS := Windows
endif
##########
## Main ##
##########
@ -61,10 +67,19 @@ NIM_PARAMS := $(NIM_PARAMS) -d:git_version=\"$(GIT_VERSION)\"
##################
.PHONY: build-waku-librln
LIBRLN_VERSION := v0.7.0
ifeq ($(detected_OS),Windows)
LIBRLN_FILE := rln.lib
else
LIBRLN_FILE := librln_$(LIBRLN_VERSION).a
endif
build-waku-librln:
@echo "Start building waku librln"
$(MAKE) -C vendor/nwaku librln
$(eval NIM_PARAMS += --passL:./vendor/nwaku/librln_v0.7.0.a --passL:-lm)
$(eval NIM_PARAMS += --passL:./vendor/nwaku/${LIBRLN_FILE} --passL:-lm)
@echo "Completed building librln"
build-waku-nat: