diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 859e3463a..9a54bb99e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -54,6 +54,54 @@ jobs: name: FAudio-SDL2-lib64 path: release/libFAudio.so.0 + linux-mingw: + name: Rocky Linux MinGW + runs-on: ubuntu-latest + container: + image: rockylinux/rockylinux:8 + steps: + - name: Are we really on Rocky Linux? + run: cat /etc/os-release + + - name: Install dependencies + run: | + dnf update -y + dnf install -y epel-release + dnf --enablerepo=powertools install -y git xz cmake ninja-build mingw32-gcc-c++ mingw64-gcc-c++ + + - uses: actions/checkout@v4 + with: + submodules: true + + - name: Download SDL + run: | + curl -LO https://github.com/libsdl-org/SDL/releases/download/release-$SDL2_VERSION/SDL2-devel-$SDL2_VERSION-mingw.tar.gz + tar -xvf SDL2-devel-$SDL2_VERSION-mingw.tar.gz -C ${GITHUB_WORKSPACE} + + - name: CMake configure 32-bit (Release) + run: cmake -B release-x86 -G Ninja . -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=.github/mingw-w64-i686.cmake -DSDL2_LIBRARIES=${GITHUB_WORKSPACE}/SDL2-$SDL2_VERSION/i686-w64-mingw32/bin/SDL2.dll -DSDL2_INCLUDE_DIRS=${GITHUB_WORKSPACE}/SDL2-$SDL2_VERSION/i686-w64-mingw32/include/SDL2 + + - name: Build 32-bit (Release) + run: ninja -C release-x86 + + - name: CMake configure 64-bit (Release) + run: cmake -B release-x64 -G Ninja . -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=.github/mingw-w64-x86_64.cmake -DSDL2_LIBRARIES=${GITHUB_WORKSPACE}/SDL2-$SDL2_VERSION/x86_64-w64-mingw32/bin/SDL2.dll -DSDL2_INCLUDE_DIRS=${GITHUB_WORKSPACE}/SDL2-$SDL2_VERSION/x86_64-w64-mingw32/include/SDL2 + + - name: Build 64-bit (Release) + run: ninja -C release-x64 + + - name: Archive build result 32-bit + uses: actions/upload-artifact@v4 + with: + name: FAudio-SDL2-x86 + path: release-x86/FAudio.dll + + - name: Archive build result 64-bit + uses: actions/upload-artifact@v4 + with: + name: FAudio-SDL2-x64 + path: release-x64/FAudio.dll + macos: name: macOS (CMake) runs-on: macos-latest @@ -150,54 +198,6 @@ jobs: cmake -B build -G Ninja . cmake --build build --verbose -- -j`sysctl -n hw.ncpu` - linux-mingw: - name: Rocky Linux MinGW - runs-on: ubuntu-latest - container: - image: rockylinux/rockylinux:8 - steps: - - name: Are we really on Rocky Linux? - run: cat /etc/os-release - - - name: Install dependencies - run: | - dnf update -y - dnf install -y epel-release - dnf --enablerepo=powertools install -y git xz cmake ninja-build mingw32-gcc-c++ mingw64-gcc-c++ - - - uses: actions/checkout@v4 - with: - submodules: true - - - name: Download SDL - run: | - curl -LO https://github.com/libsdl-org/SDL/releases/download/release-$SDL2_VERSION/SDL2-devel-$SDL2_VERSION-mingw.tar.gz - tar -xvf SDL2-devel-$SDL2_VERSION-mingw.tar.gz -C ${GITHUB_WORKSPACE} - - - name: CMake configure 32-bit (Release) - run: cmake -B release-x86 -G Ninja . -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=.github/mingw-w64-i686.cmake -DSDL2_LIBRARIES=${GITHUB_WORKSPACE}/SDL2-$SDL2_VERSION/i686-w64-mingw32/bin/SDL2.dll -DSDL2_INCLUDE_DIRS=${GITHUB_WORKSPACE}/SDL2-$SDL2_VERSION/i686-w64-mingw32/include/SDL2 - - - name: Build 32-bit (Release) - run: ninja -C release-x86 - - - name: CMake configure 64-bit (Release) - run: cmake -B release-x64 -G Ninja . -DCMAKE_BUILD_TYPE=Release -DCMAKE_TOOLCHAIN_FILE=.github/mingw-w64-x86_64.cmake -DSDL2_LIBRARIES=${GITHUB_WORKSPACE}/SDL2-$SDL2_VERSION/x86_64-w64-mingw32/bin/SDL2.dll -DSDL2_INCLUDE_DIRS=${GITHUB_WORKSPACE}/SDL2-$SDL2_VERSION/x86_64-w64-mingw32/include/SDL2 - - - name: Build 64-bit (Release) - run: ninja -C release-x64 - - - name: Archive build result 32-bit - uses: actions/upload-artifact@v4 - with: - name: FAudio-SDL2-x86 - path: release-x86/FAudio.dll - - - name: Archive build result 64-bit - uses: actions/upload-artifact@v4 - with: - name: FAudio-SDL2-x64 - path: release-x64/FAudio.dll - linux-SDL3: name: Rocky Linux SDL3 runs-on: ubuntu-latest @@ -245,46 +245,6 @@ jobs: name: FAudio-SDL3-lib64 path: release/libFAudio.so.0 - macos-SDL3: - name: macOS (CMake) SDL3 - runs-on: macos-latest - steps: - - uses: actions/checkout@v4 - with: - submodules: true - - # This can be replaced by installing once brew ships SDL3 - - name: Clone SDL3 - run: git clone --depth 1 --branch preview-$SDL3_VERSION https://github.com/libsdl-org/SDL.git - - - name: Install dependencies - run: brew install ninja - - - name: Build SDL3 (Release) - run: | - cd SDL - cmake -B release -G Ninja . -DCMAKE_BUILD_TYPE=Release - ninja -C release - cd .. - - - name: CMake configure (Debug) - run: cmake -B debug -G Ninja . -DCMAKE_BUILD_TYPE=Debug -DBUILD_SDL3=ON -DSDL3_INCLUDE_DIRS=${GITHUB_WORKSPACE}/SDL/include -DSDL3_LIBRARIES=${GITHUB_WORKSPACE}/SDL/release/libSDL3.dylib - - - name: Build (Debug) - run: ninja -C debug - - - name: CMake configure (Release) - run: cmake -B release -G Ninja . -DCMAKE_BUILD_TYPE=Release -DBUILD_SDL3=ON -DSDL3_INCLUDE_DIRS=${GITHUB_WORKSPACE}/SDL/include -DSDL3_LIBRARIES=${GITHUB_WORKSPACE}/SDL/release/libSDL3.dylib - - - name: Build (Release) - run: ninja -C release - - - name: Archive build result - uses: actions/upload-artifact@v4 - with: - name: FAudio-SDL3-osx - path: release/libFAudio.0.dylib - linux-mingw-SDL3: name: Rocky Linux MinGW SDL3 runs-on: ubuntu-latest @@ -332,3 +292,43 @@ jobs: with: name: FAudio-SDL3-x64 path: release-x64/FAudio.dll + + macos-SDL3: + name: macOS (CMake) SDL3 + runs-on: macos-latest + steps: + - uses: actions/checkout@v4 + with: + submodules: true + + # This can be replaced by installing once brew ships SDL3 + - name: Clone SDL3 + run: git clone --depth 1 --branch preview-$SDL3_VERSION https://github.com/libsdl-org/SDL.git + + - name: Install dependencies + run: brew install ninja + + - name: Build SDL3 (Release) + run: | + cd SDL + cmake -B release -G Ninja . -DCMAKE_BUILD_TYPE=Release + ninja -C release + cd .. + + - name: CMake configure (Debug) + run: cmake -B debug -G Ninja . -DCMAKE_BUILD_TYPE=Debug -DBUILD_SDL3=ON -DSDL3_INCLUDE_DIRS=${GITHUB_WORKSPACE}/SDL/include -DSDL3_LIBRARIES=${GITHUB_WORKSPACE}/SDL/release/libSDL3.dylib + + - name: Build (Debug) + run: ninja -C debug + + - name: CMake configure (Release) + run: cmake -B release -G Ninja . -DCMAKE_BUILD_TYPE=Release -DBUILD_SDL3=ON -DSDL3_INCLUDE_DIRS=${GITHUB_WORKSPACE}/SDL/include -DSDL3_LIBRARIES=${GITHUB_WORKSPACE}/SDL/release/libSDL3.dylib + + - name: Build (Release) + run: ninja -C release + + - name: Archive build result + uses: actions/upload-artifact@v4 + with: + name: FAudio-SDL3-osx + path: release/libFAudio.0.dylib