From d3132e0731ec2e08e47b6a62eac96bfbb98a3124 Mon Sep 17 00:00:00 2001 From: sfan5 Date: Fri, 4 Feb 2022 21:08:37 +0100 Subject: [PATCH] Update MinGW CI setup to match MT's --- .github/workflows/build.yml | 32 ++++++++++++++++++++++---------- scripts/ci-build-mingw.sh | 20 ++++++++++++++++---- 2 files changed, 38 insertions(+), 14 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index a1ba3806..09d25a5e 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -58,37 +58,49 @@ jobs: LIBGL_ALWAYS_SOFTWARE=true xvfb-run ./AutomatedTest win32: - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - - name: Install deps + - name: Install compiler run: | - sudo apt-get update - sudo apt-get install cmake g++-mingw-w64-i686 -qyy + sudo apt-get update && sudo apt-get install cmake -qyy + wget http://minetest.kitsunemimi.pw/mingw-w64-i686_11.2.0_ubuntu20.04.tar.xz -O mingw.tar.xz + sudo tar -xaf mingw.tar.xz -C /usr - name: Build run: | - ./scripts/ci-build-mingw.sh + ./scripts/ci-build-mingw.sh package env: CC: i686-w64-mingw32-gcc CXX: i686-w64-mingw32-g++ + - uses: actions/upload-artifact@v2 + with: + name: irrlicht-win32 + path: ./irrlicht-windows.zip + win64: - runs-on: ubuntu-18.04 + runs-on: ubuntu-20.04 steps: - uses: actions/checkout@v2 - - name: Install deps + - name: Install compiler run: | - sudo apt-get update - sudo apt-get install cmake g++-mingw-w64-x86-64 -qyy + sudo apt-get update && sudo apt-get install cmake -qyy + wget http://minetest.kitsunemimi.pw/mingw-w64-x86_64_11.2.0_ubuntu20.04.tar.xz -O mingw.tar.xz + sudo tar -xaf mingw.tar.xz -C /usr - name: Build run: | - ./scripts/ci-build-mingw.sh + ./scripts/ci-build-mingw.sh package env: CC: x86_64-w64-mingw32-gcc CXX: x86_64-w64-mingw32-g++ + - uses: actions/upload-artifact@v2 + with: + name: irrlicht-win64 + path: ./irrlicht-windows.zip + macos: runs-on: macos-10.15 steps: diff --git a/scripts/ci-build-mingw.sh b/scripts/ci-build-mingw.sh index 1814942b..e925c394 100755 --- a/scripts/ci-build-mingw.sh +++ b/scripts/ci-build-mingw.sh @@ -5,25 +5,27 @@ variant=win32 [[ "$(basename "$CXX")" == "x86_64-"* ]] && variant=win64 -libjpeg_version=2.0.6 +libjpeg_version=2.1.2 libpng_version=1.6.37 zlib_version=1.2.11 mkdir -p libs pushd libs libs=$PWD +tmp= +[ "$variant" = win32 ] && tmp=dw2/ [ -e libjpeg.zip ] || \ wget "http://minetest.kitsunemimi.pw/libjpeg-$libjpeg_version-$variant.zip" -O libjpeg.zip [ -e libpng.zip ] || \ - wget "http://minetest.kitsunemimi.pw/libpng-$libpng_version-$variant.zip" -O libpng.zip + wget "http://minetest.kitsunemimi.pw/${tmp}libpng-$libpng_version-$variant.zip" -O libpng.zip [ -e zlib.zip ] || \ - wget "http://minetest.kitsunemimi.pw/zlib-$zlib_version-$variant.zip" -O zlib.zip + wget "http://minetest.kitsunemimi.pw/${tmp}zlib-$zlib_version-$variant.zip" -O zlib.zip [ -d libjpeg ] || unzip -o libjpeg.zip -d libjpeg [ -d libpng ] || unzip -o libpng.zip -d libpng [ -d zlib ] || unzip -o zlib.zip -d zlib popd -cmake . \ +tmp=( -DCMAKE_SYSTEM_NAME=Windows \ -DPNG_LIBRARY=$libs/libpng/lib/libpng.dll.a \ -DPNG_PNG_INCLUDE_DIR=$libs/libpng/include \ @@ -31,6 +33,16 @@ cmake . \ -DJPEG_INCLUDE_DIR=$libs/libjpeg/include \ -DZLIB_LIBRARY=$libs/zlib/lib/libz.dll.a \ -DZLIB_INCLUDE_DIR=$libs/zlib/include +) +[ "$1" = "package" ] && tmp+=(-DCMAKE_EXE_LINKER_FLAGS="-s") +cmake . "${tmp[@]}" make -j$(nproc) + +if [ "$1" = "package" ]; then + make DESTDIR=$PWD/_install install + # bundle the DLLs that are specific to Irrlicht (kind of a hack) + cp -p $libs/*/bin/lib{jpeg,png}*.dll _install/usr/local/lib/ + (cd _install/usr/local; zip -9r "$OLDPWD"/irrlicht-windows.zip -- *) +fi exit 0