Remove SDL2 #760
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| name: Build | |
| on: [push, pull_request] | |
| jobs: | |
| version: | |
| name: Extract Version | |
| runs-on: ubuntu-latest | |
| outputs: | |
| version: ${{ steps.extract-version.outputs.result }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: CMake Configure | |
| id: extract-version | |
| run: | | |
| cmake -S . -B build -G Ninja -DBUILD_CLIENT=NO | |
| VERSION=$(cat build/version.txt) | |
| echo "VERSION: ${VERSION}" | |
| echo "result=${VERSION}" >> $GITHUB_OUTPUT | |
| linux: | |
| name: Linux | |
| runs-on: ubuntu-22.04 | |
| needs: version | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Dependencies | |
| run: | | |
| curl -LO https://github.com/libsdl-org/SDL/releases/download/release-3.2.20/SDL3-3.2.20.tar.gz | |
| tar zxf SDL3-3.2.20.tar.gz | |
| cd SDL3-3.2.20 | |
| cmake -S . -B build | |
| cmake --build build | |
| sudo cmake --install build | |
| - name: Compile | |
| run: | | |
| cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release | |
| cmake --build build | |
| cpack --config build/CPackConfig.cmake -B build/installer --verbose | |
| mv build/installer/*.deb build/Release | |
| - name: Upload | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ github.event.repository.name }}-linux-${{ needs.version.outputs.version }} | |
| path: | | |
| build/Release/**/* | |
| windows-msvc: | |
| name: Windows MSVC | |
| runs-on: windows-2022 | |
| needs: version | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Compile | |
| run: | | |
| cmake -S . -B build -G "Visual Studio 17 2022" | |
| cmake --build build --config Release | |
| cpack --config build/CPackConfig.cmake -B build/installer --verbose | |
| Move-Item -Path "build/installer/*.exe" -Destination "build/Release" | |
| - name: Upload | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ github.event.repository.name }}-windows-msvc-${{ needs.version.outputs.version }} | |
| path: | | |
| build/Release/**/*.dll | |
| build/Release/**/*.exe | |
| build/Release/**/*.qvm | |
| windows-mingw: | |
| name: Windows MinGW | |
| runs-on: windows-2022 | |
| needs: version | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Compile | |
| run: | | |
| cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release | |
| cmake --build build | |
| cpack --config build/CPackConfig.cmake -B build/installer --verbose | |
| Move-Item -Path "build/installer/*.exe" -Destination "build/Release" | |
| - name: Upload | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ github.event.repository.name }}-windows-mingw-${{ needs.version.outputs.version }} | |
| path: | | |
| build/Release/**/*.dll | |
| build/Release/**/*.exe | |
| build/Release/**/*.qvm | |
| macos: | |
| name: macOS | |
| runs-on: macos-15 | |
| needs: version | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Import Code Signing Certificate | |
| if: github.ref_name == 'main' | |
| run: | | |
| misc/macos/ci-macos-import-codesign-cert.sh | |
| echo "APPLE_CERTIFICATE_ID=${{ secrets.APPLE_CERTIFICATE_ID }}" >> $GITHUB_ENV | |
| env: | |
| APPLE_CERTIFICATE_P12_BASE64: ${{ secrets.APPLE_CERTIFICATE_P12_BASE64 }} | |
| APPLE_CERTIFICATE_PASSWORD: ${{ secrets.APPLE_CERTIFICATE_PASSWORD }} | |
| - name: Compile | |
| run: | | |
| cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release | |
| cmake --build build | |
| # DMG creation on macOS occasionally fails, so try multiple times | |
| # https://gitlab.kitware.com/cmake/cmake/-/issues/25671 | |
| success=0 | |
| max_tries=10 | |
| for i in $(seq $max_tries); do | |
| cpack --config build/CPackConfig.cmake -B build/installer --verbose && success=1 | |
| if test $success = 1; then | |
| break | |
| fi | |
| echo "Package creation failed. Sleep 1 second and try again." | |
| sleep 1 | |
| done | |
| if test $success = 0; then | |
| echo "Package creation failed after $max_tries attempts." | |
| exit 1 | |
| fi | |
| mv build/installer/*.dmg build/Release | |
| - name: Notarize | |
| if: github.ref_name == 'main' | |
| run: | | |
| misc/macos/ci-macos-notarize.sh build/Release/*.dmg | |
| env: | |
| APPLE_NOTARIZATION_USERNAME: ${{ secrets.APPLE_NOTARIZATION_USERNAME }} | |
| APPLE_NOTARIZATION_PASSWORD: ${{ secrets.APPLE_NOTARIZATION_PASSWORD }} | |
| APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }} | |
| - name: Upload | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ github.event.repository.name }}-macOS-${{ needs.version.outputs.version }} | |
| path: | | |
| build/Release/**/* | |
| emscripten: | |
| name: Emscripten | |
| runs-on: ubuntu-22.04 | |
| needs: version | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install emsdk | |
| uses: mymindstorm/setup-emsdk@v13 | |
| with: | |
| version: 4.0.11 | |
| - name: Install Dependencies | |
| run: | | |
| curl -LO https://github.com/libsdl-org/SDL/releases/download/release-3.2.20/SDL3-3.2.20.tar.gz | |
| tar zxf SDL3-3.2.20.tar.gz | |
| cd SDL3-3.2.20 | |
| emcmake cmake -S . -B build -DCMAKE_INSTALL_PREFIX=$HOME/sdl3-emscripten-install | |
| cmake --build build | |
| sudo cmake --install build | |
| - name: Compile | |
| run: | | |
| emcmake cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DSDL3_DIR="$HOME/sdl3-emscripten-install/lib/cmake/SDL3" | |
| cmake --build build | |
| - name: Upload | |
| uses: actions/upload-artifact@v4 | |
| with: | |
| name: ${{ github.event.repository.name }}-emscripten-${{ needs.version.outputs.version }} | |
| path: | | |
| build/Release/**/* | |
| linux-external-libraries: | |
| name: Linux (USE_INTERNAL_LIBS OFF) | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install SDL | |
| run: | | |
| curl -LO https://github.com/libsdl-org/SDL/releases/download/release-3.2.20/SDL3-3.2.20.tar.gz | |
| tar zxf SDL3-3.2.20.tar.gz | |
| cd SDL3-3.2.20 | |
| cmake -S . -B build | |
| cmake --build build | |
| sudo cmake --install build | |
| - name: Install Dependencies | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install libsdl2-dev zlib1g-dev libjpeg-dev libopenal-dev \ | |
| libogg-dev libvorbis-dev libopus-dev libopusfile-dev libcurl4-openssl-dev | |
| - name: Compile | |
| run: | | |
| cmake -S . -B build -G Ninja -DUSE_INTERNAL_LIBS=OFF -DCMAKE_BUILD_TYPE=Release | |
| cmake --build build | |
| linux-32bit: | |
| name: Linux 32-bit | |
| runs-on: ubuntu-22.04 | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Install Dependencies | |
| run: | | |
| sudo dpkg --add-architecture i386 | |
| sudo apt-get update | |
| sudo apt-get install gcc-multilib libsdl2-dev:i386 | |
| - name: Install SDL | |
| run: | | |
| curl -LO https://github.com/libsdl-org/SDL/releases/download/release-3.2.20/SDL3-3.2.20.tar.gz | |
| tar zxf SDL3-3.2.20.tar.gz | |
| cd SDL3-3.2.20 | |
| cmake -S . -B build -DCMAKE_C_FLAGS="-m32" | |
| cmake --build build | |
| sudo cmake --install build | |
| - name: Compile | |
| run: | | |
| cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release -DCMAKE_C_FLAGS="-m32 -msse -msse2" | |
| cmake --build build | |
| freebsd: | |
| name: FreeBSD | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Compile | |
| uses: vmactions/freebsd-vm@v1 | |
| with: | |
| prepare: | | |
| pkg install -y cmake ninja | |
| pkg install -y curl xorgproto libX11 libXext libXrandr libXcursor libXinerama libXi | |
| curl -LO https://github.com/libsdl-org/SDL/releases/download/release-3.2.20/SDL3-3.2.20.tar.gz | |
| tar zxf SDL3-3.2.20.tar.gz | |
| cd SDL3-3.2.20 | |
| cmake -S . -B build | |
| cmake --build build | |
| cmake --install build | |
| run: | | |
| cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release | |
| cmake --build build | |
| openbsd: | |
| name: OpenBSD | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Compile | |
| uses: vmactions/openbsd-vm@v1 | |
| with: | |
| prepare: | | |
| pkg_add cmake ninja | |
| pkg_add curl | |
| curl -LO https://github.com/libsdl-org/SDL/releases/download/release-3.2.20/SDL3-3.2.20.tar.gz | |
| tar zxf SDL3-3.2.20.tar.gz | |
| cd SDL3-3.2.20 | |
| cmake -S . -B build | |
| cmake --build build | |
| cmake --install build | |
| run: | | |
| cmake -S . -B build -G Ninja -DCMAKE_BUILD_TYPE=Release | |
| cmake --build build | |
| check-is-release: | |
| if: github.event_name != 'pull_request' | |
| name: Check For Release Tag | |
| runs-on: ubuntu-latest | |
| needs: version | |
| outputs: | |
| is-release: ${{ steps.is-release-test.outputs.result }} | |
| steps: | |
| - uses: actions/checkout@v4 | |
| - name: Check Release Tag | |
| id: is-release-test | |
| run: | | |
| GIT_TAG=$(git describe --exact-match --tags || true) | |
| if [[ -z "${GIT_TAG}" || "${{ github.ref_type }}" != 'tag' ]] | |
| then | |
| echo "Not tagged" | |
| echo "result=false" >> $GITHUB_OUTPUT | |
| else | |
| echo "GIT_TAG: ${GIT_TAG}"" | |
| echo "needs.version.outputs.version: ${{ needs.version.outputs.version }}"" | |
| if [[ "${GIT_TAG}" = "${{ needs.version.outputs.version }}" ]] | |
| then | |
| echo "'${GIT_TAG}' is a release" | |
| echo "result=true" >> $GITHUB_OUTPUT | |
| else | |
| echo "'${GIT_TAG}' is not a release" | |
| echo "result=false" >> $GITHUB_OUTPUT | |
| fi | |
| fi | |
| release: | |
| name: Release | |
| if: github.event_name != 'pull_request' && needs.check-is-release.outputs.is-release == 'true' | |
| runs-on: ubuntu-latest | |
| needs: | |
| - version | |
| - check-is-release | |
| - windows-msvc | |
| - macos | |
| - linux | |
| - emscripten | |
| steps: | |
| - uses: actions/download-artifact@v4 | |
| - name: Prepare Release Artifacts | |
| run: | | |
| mkdir release-artifacts | |
| mv ${{ github.event.repository.name }}-linux-${{ needs.version.outputs.version }}/${{ github.event.repository.name }}-${{ needs.version.outputs.version }}.deb \ | |
| release-artifacts | |
| zip -r9 release-artifacts/${{ github.event.repository.name }}-linux-${{ needs.version.outputs.version }}.zip \ | |
| ${{ github.event.repository.name }}-linux-${{ needs.version.outputs.version }} | |
| mv ${{ github.event.repository.name }}-windows-msvc-${{ needs.version.outputs.version }}/${{ github.event.repository.name }}-${{ needs.version.outputs.version }}.exe \ | |
| release-artifacts | |
| mv ${{ github.event.repository.name }}-macOS-${{ needs.version.outputs.version }}/${{ github.event.repository.name }}-${{ needs.version.outputs.version }}.dmg \ | |
| release-artifacts | |
| zip -r9 release-artifacts/${{ github.event.repository.name }}-emscripten-${{ needs.version.outputs.version }}.zip \ | |
| ${{ github.event.repository.name }}-emscripten-${{ needs.version.outputs.version }} | |
| - name: Publish Release Artifacts | |
| uses: softprops/action-gh-release@v1 | |
| with: | |
| tag_name: ${{ github.ref }} | |
| name: Release ${{ needs.version.outputs.version }} | |
| files: release-artifacts/* | |
| env: | |
| GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} |