From 2dc8b6eb17ac5fda1f89722cfa0889bfc6e73434 Mon Sep 17 00:00:00 2001 From: Be Date: Tue, 9 Feb 2021 11:02:34 -0600 Subject: [PATCH] GH Actions: CMake build all supported options, compilers, and OSes --- .github/workflows/cmake.yml | 70 +++++++++++++++++++++++++++++++------ 1 file changed, 60 insertions(+), 10 deletions(-) diff --git a/.github/workflows/cmake.yml b/.github/workflows/cmake.yml index df5c80c..56d3e8f 100644 --- a/.github/workflows/cmake.yml +++ b/.github/workflows/cmake.yml @@ -12,20 +12,55 @@ jobs: fail-fast: false matrix: include: - - name: Ubuntu + - name: Ubuntu GCC os: ubuntu-latest install_dir: ~/portaudio - - name: Ubuntu mingw64 + dependencies_extras: libjack-dev + cmake_generator: "Unix Makefiles" + cmake_options: + -DOSS=ON + - name: Ubuntu MinGW os: ubuntu-latest install_dir: ~/portaudio + asio_sdk_cache_path: asiosdk.zip dependencies_extras: mingw-w64 - cmake_extras: -DCMAKE_TOOLCHAIN_FILE=cmake/toolchains/i686-w64-mingw32.cmake - - name: Windows + cmake_generator: "Unix Makefiles" + cmake_options: + -DASIO=ON + -DASIO_SDK_ZIP_PATH=asiosdk.zip + -DCMAKE_TOOLCHAIN_FILE=cmake/toolchains/i686-w64-mingw32.cmake + - name: Windows MSVC os: windows-latest install_dir: C:\portaudio - - name: macOS + cmake_generator: "Visual Studio 16 2019" + # ASIO_SDK_ZIP_PATH needs to be quoted or CMake will save the download to + # asiosdk instead of asiosdk.zip. + asio_sdk_cache_path: "asiosdk.zip" + cmake_options: + -DASIO=ON + -DASIO_SDK_ZIP_PATH="asiosdk.zip" + - name: Windows MinGW + os: windows-latest + install_dir: C:\portaudio + cmake_generator: "MinGW Makefiles" + # ASIO_SDK_ZIP_PATH needs to be quoted or CMake will save the download to + # asiosdk instead of asiosdk.zip. + asio_sdk_cache_path: "asiosdk.zip" + cmake_options: + -DASIO=ON + -DASIO_SDK_ZIP_PATH="asiosdk.zip" + - name: macOS Clang os: macOS-latest install_dir: ~/portaudio + cmake_generator: "Unix Makefiles" + cmake_options: + -DCMAKE_FRAMEWORK=OFF + - name: macOS Clang framework + os: macOS-latest + install_dir: ~/portaudio + cmake_generator: "Unix Makefiles" + cmake_options: + -DCMAKE_FRAMEWORK=ON runs-on: ${{ matrix.os }} name: ${{ matrix.name }} @@ -34,15 +69,30 @@ jobs: steps: - name: checkout Git repository uses: actions/checkout@v2 - - name: "[Ubuntu] install dependencies" - run: sudo apt-get install libasound2-dev libjack-dev ${{ matrix.dependencies_extras }} + - name: "[Ubuntu] install ALSA and JACK headers" + run: sudo apt-get install libasound2-dev ${{ matrix.dependencies_extras }} if: matrix.os == 'ubuntu-latest' + - name: "[macOS] install JACK from Homebrew" + run: brew install jack + if: matrix.os == 'macOS-latest' + - name: "[Windows MinGW] install MinGW from Chocolatey" + run: choco install mingw + if: startsWith(matrix.os, 'Windows MinGW') + - name: "[Windows/MinGW] set up ASIO SDK cache" + uses: actions/cache@v2 + if: matrix.asio_sdk_cache_path != null + with: + path: ${{ matrix.asio_sdk_cache_path }} + key: ${{ hashFiles('.github/asiosdk-version.txt') }} - name: configure - run: cmake ${{ matrix.cmake_extras }} + run: cmake + -G "${{ matrix.cmake_generator }}" + ${{ matrix.cmake_options }} -DCMAKE_INSTALL_PREFIX=${{ matrix.install_dir }} -DCMAKE_BUILD_TYPE=${{ env.cmake_build_type }} - -DPA_BUILD_TESTS=ON - -DPA_BUILD_EXAMPLES=ON + -DSKELETON=ON + -DBUILD_TESTING=ON + -DBUILD_EXAMPLES=ON -S . -B build - name: build -- 2.43.0