From 01508aac264e6686e07b46008711b50dda243838 Mon Sep 17 00:00:00 2001 From: falkTX Date: Sat, 23 Dec 2023 14:53:10 +0100 Subject: [PATCH] Rework CI cmake setup Signed-off-by: falkTX --- .github/workflows/cmake.yml | 152 ++++++++++++++++++------------------ 1 file changed, 75 insertions(+), 77 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index 40fa0f9b93..5627569238 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -6,140 +6,138 @@ env: DESTDIR: ${{ github.workspace }}/build/tmp jobs: - macos-libs: - runs-on: macos-latest + linux: + strategy: + matrix: + include: + - container: debian:11 + - container: debian:12 + - container: ubuntu:20.04 + - container: ubuntu:22.04 + - container: ubuntu:23.10 + runs-on: ubuntu-latest + container: + image: ${{ matrix.container }} steps: - uses: actions/checkout@v3 - name: Set up dependencies run: | - brew install cmake fluid-synth liblo libmagic libsndfile pkg-config + apt-get update -qq + apt-get install -yqq cmake g++ libfluidsynth-dev liblo-dev libmagic-dev libsndfile1-dev libx11-dev lsb-release pkg-config + echo "PACK_NAME=$(lsb_release -cs 2>/dev/null)" >> "${GITHUB_ENV}" - name: configure - run: cmake -S cmake -B build -DCARLA_BUILD_FRAMEWORKS=OFF + run: cmake -S cmake -B build - name: build - run: cmake --build build -j $(sysctl -n hw.logicalcpu) + run: cmake --build build -j $(nproc) - name: install run: cmake --install build --verbose - uses: actions/upload-artifact@v3 with: - name: macos-libs + name: linux-${{ env.PACK_NAME }} path: ${{ env.DESTDIR }} - macos-frameworks: + macos: + strategy: + matrix: + include: + - frameworks: ON + - frameworks: OFF runs-on: macos-latest steps: - uses: actions/checkout@v3 - name: Set up dependencies run: | brew install cmake fluid-synth liblo libmagic libsndfile pkg-config + if [ "${{ matrix.frameworks }}" = "" ]; then + echo "PACK_NAME=frameworks" >> "${GITHUB_ENV}" + else + echo "PACK_NAME=libs" >> "${GITHUB_ENV}" + fi - name: configure - run: cmake -S cmake -B build -DCARLA_BUILD_FRAMEWORKS=ON + run: cmake -S cmake -B build -DCARLA_BUILD_FRAMEWORKS=${{ matrix.frameworks }} - name: build run: cmake --build build -j $(sysctl -n hw.logicalcpu) - name: install run: cmake --install build --verbose - uses: actions/upload-artifact@v3 with: - name: macos-frameworks + name: macos-${{ env.PACK_NAME }} path: ${{ env.DESTDIR }} mingw32-cross: - runs-on: ubuntu-22.04 + strategy: + matrix: + include: + #- container: debian:11 + - container: debian:12 + - container: ubuntu:20.04 + - container: ubuntu:22.04 + - container: ubuntu:23.10 + runs-on: ubuntu-latest + container: + image: ${{ matrix.container }} steps: - uses: actions/checkout@v3 - name: Set up dependencies run: | - sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list - sudo dpkg --add-architecture i386 - sudo apt-get update -qq - sudo apt-get install -yqq --allow-downgrades cmake libc6:i386 libgcc-s1:i386 libstdc++6:i386 binutils-mingw-w64-i686 g++-mingw-w64-i686 mingw-w64 wine-stable:i386 + dpkg --add-architecture i386 + apt-get update -qq + apt-get install -yqq cmake binutils-mingw-w64-i686 gcc g++-mingw-w64 lsb-release mingw-w64 pkg-config + if [ "$(lsb_release -si 2>/dev/null)" = "Debian" ]; then + apt-get install -yqq wine wine32 wine64 + else + apt-get install -yqq wine-stable + fi + echo "PACK_NAME=$(lsb_release -cs 2>/dev/null)" >> "${GITHUB_ENV}" - name: configure env: PKG_CONFIG: false - run: cmake -S cmake -B build \ - -DCMAKE_CROSSCOMPILING=ON \ - -DCMAKE_CROSSCOMPILING_EMULATOR=wine \ - -DCMAKE_SYSTEM_NAME=Windows \ - -DCMAKE_SYSTEM_PROCESSOR=i686 \ - -DCMAKE_C_COMPILER=i686-w64-mingw32-gcc \ - -DCMAKE_CXX_COMPILER=i686-w64-mingw32-g++ \ - -DCMAKE_RANLIB=i686-w64-mingw32-ranlib \ - -DCMAKE_AR=$(which i686-w64-mingw32-ar) + run: cmake -S cmake -B build -DCMAKE_CROSSCOMPILING=ON -DCMAKE_CROSSCOMPILING_EMULATOR=wine -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_SYSTEM_PROCESSOR=i686 -DCMAKE_C_COMPILER=i686-w64-mingw32-gcc -DCMAKE_CXX_COMPILER=i686-w64-mingw32-g++ -DCMAKE_AR=/usr/bin/i686-w64-mingw32-ar -DCMAKE_C_COMPILER_AR=/usr/bin/i686-w64-mingw32-ar -DCMAKE_CXX_COMPILER_AR=/usr/bin/i686-w64-mingw32-ar -DCMAKE_RANLIB=/usr/bin/i686-w64-mingw32-ranlib -DCMAKE_C_COMPILER_RANLIB=/usr/bin/i686-w64-mingw32-ranlib -DCMAKE_CXX_COMPILER_RANLIB=/usr/bin/i686-w64-mingw32-ranlib -DCMAKE_RC_COMPILER=/usr/bin/i686-w64-mingw32-windres - name: build run: cmake --build build -j $(nproc) - name: install run: cmake --install build --verbose - uses: actions/upload-artifact@v3 with: - name: mingw32 + name: mingw32-${{ env.PACK_NAME }} path: ${{ env.DESTDIR }} mingw64-cross: - runs-on: ubuntu-22.04 + strategy: + matrix: + include: + #- container: debian:11 + - container: debian:12 + - container: ubuntu:20.04 + - container: ubuntu:22.04 + - container: ubuntu:23.10 + runs-on: ubuntu-latest + container: + image: ${{ matrix.container }} steps: - uses: actions/checkout@v3 - name: Set up dependencies run: | - sudo rm -f /etc/apt/sources.list.d/microsoft-prod.list - sudo dpkg --add-architecture i386 - sudo apt-get update -qq - sudo apt-get install -yqq --allow-downgrades cmake libc6:i386 libgcc-s1:i386 libstdc++6:i386 binutils-mingw-w64-x86-64 g++-mingw-w64-x86-64 mingw-w64 wine-stable + dpkg --add-architecture i386 + apt-get update -qq + apt-get install -yqq cmake binutils-mingw-w64-x86-64 gcc g++-mingw-w64 lsb-release mingw-w64 pkg-config + if [ "$(lsb_release -si 2>/dev/null)" = "Debian" ]; then + apt-get install -yqq wine wine32 wine64 + else + apt-get install -yqq wine-stable + fi + echo "PACK_NAME=$(lsb_release -cs 2>/dev/null)" >> "${GITHUB_ENV}" - name: configure env: PKG_CONFIG: false - run: cmake -S cmake -B build \ - -DCMAKE_CROSSCOMPILING=ON \ - -DCMAKE_CROSSCOMPILING_EMULATOR=wine \ - -DCMAKE_SYSTEM_NAME=Windows \ - -DCMAKE_SYSTEM_PROCESSOR=x86_64 \ - -DCMAKE_C_COMPILER=x86_64-w64-mingw32-gcc \ - -DCMAKE_CXX_COMPILER=x86_64-w64-mingw32-g++ \ - -DCMAKE_RANLIB=x86_64-w64-mingw32-ranlib \ - -DCMAKE_AR=$(which x86_64-w64-mingw32-ar) - - name: build - run: cmake --build build -j $(nproc) - - name: install - run: cmake --install build --verbose - - uses: actions/upload-artifact@v3 - with: - name: mingw64 - path: ${{ env.DESTDIR }} - - ubuntu-20_04: - runs-on: ubuntu-20.04 - steps: - - uses: actions/checkout@v3 - - name: Set up dependencies - run: | - sudo apt-get update -qq - sudo apt-get install -yqq cmake libfluidsynth-dev liblo-dev libmagic-dev libsndfile1-dev libx11-dev pkg-config - - name: configure - run: cmake -S cmake -B build - - name: build - run: cmake --build build -j $(nproc) - - name: install - run: cmake --install build --verbose - - uses: actions/upload-artifact@v3 - with: - name: ubuntu-20.04 - path: ${{ env.DESTDIR }} - - ubuntu-22_04: - runs-on: ubuntu-22.04 - steps: - - uses: actions/checkout@v3 - - name: Set up dependencies - run: | - sudo apt-get update -qq - sudo apt-get install -yqq cmake libfluidsynth-dev liblo-dev libmagic-dev libsndfile1-dev libx11-dev pkg-config - - name: configure - run: cmake -S cmake -B build + run: cmake -S cmake -B build -DCMAKE_CROSSCOMPILING=ON -DCMAKE_CROSSCOMPILING_EMULATOR=wine -DCMAKE_SYSTEM_NAME=Windows -DCMAKE_SYSTEM_PROCESSOR=x86_64 -DCMAKE_C_COMPILER=x86_64-w64-mingw32-gcc -DCMAKE_CXX_COMPILER=x86_64-w64-mingw32-g++ -DCMAKE_AR=/usr/bin/x86_64-w64-mingw32-ar -DCMAKE_C_COMPILER_AR=/usr/bin/x86_64-w64-mingw32-ar -DCMAKE_CXX_COMPILER_AR=/usr/bin/x86_64-w64-mingw32-ar -DCMAKE_RANLIB=/usr/bin/x86_64-w64-mingw32-ranlib -DCMAKE_C_COMPILER_RANLIB=/usr/bin/x86_64-w64-mingw32-ranlib -DCMAKE_CXX_COMPILER_RANLIB=/usr/bin/x86_64-w64-mingw32-ranlib -DCMAKE_RC_COMPILER=/usr/bin/x86_64-w64-mingw32-windres - name: build run: cmake --build build -j $(nproc) - name: install run: cmake --install build --verbose - uses: actions/upload-artifact@v3 with: - name: ubuntu-22.04 + name: mingw64-${{ env.PACK_NAME }} path: ${{ env.DESTDIR }} windows: