From e3daca37aa134a6885c8ae5c508c3d7f7bfc600a Mon Sep 17 00:00:00 2001 From: skal Date: Sat, 31 Jan 2026 13:57:51 +0100 Subject: Add Windows cross-compilation support (MinGW) and emulation (Wine) --- scripts/build_win.sh | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100755 scripts/build_win.sh (limited to 'scripts/build_win.sh') diff --git a/scripts/build_win.sh b/scripts/build_win.sh new file mode 100755 index 0000000..493e322 --- /dev/null +++ b/scripts/build_win.sh @@ -0,0 +1,34 @@ +#!/bin/bash +set -e + +# 1. Build native tools (asset_packer) +echo "Building native tools..." +cmake -S . -B build_native -DDEMO_BUILD_TOOLS=OFF -DDEMO_BUILD_TESTS=OFF +cmake --build build_native --target asset_packer + +# 2. Cross-compile for Windows +echo "Cross-compiling for Windows..." +cmake -S . -B build_win \ + -DCMAKE_TOOLCHAIN_FILE=cmake/Toolchain-MinGW-w64.cmake \ + -DCMAKE_BUILD_TYPE=Release \ + -DASSET_PACKER_PATH=$(pwd)/build_native/asset_packer \ + -DDEMO_BUILD_TOOLS=OFF \ + -DDEMO_BUILD_TESTS=OFF + +cmake --build build_win + +# 3. Copy runtime DLLs to build_win so we can run it +cp third_party/windows/lib/wgpu_native.dll build_win/ + +# Copy MinGW DLLs (pthread, etc.) +echo "Copying MinGW DLLs..." +MINGW_BIN=$(dirname $(find /opt/homebrew -name "libwinpthread-1.dll" | grep x86_64 | head -n 1)) +if [ -d "$MINGW_BIN" ]; then + cp "$MINGW_BIN/libwinpthread-1.dll" build_win/ + cp "$MINGW_BIN/libgcc_s_seh-1.dll" build_win/ 2>/dev/null || true + cp "$MINGW_BIN/libstdc++-6.dll" build_win/ 2>/dev/null || true +else + echo "Warning: Could not find MinGW DLLs. You might need them to run the exe." +fi + +echo "Build complete. Output: build_win/demo64k.exe" -- cgit v1.2.3