Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CMake rewrite + feature completion using modern CMake best practices #461

Merged
merged 4 commits into from
Aug 12, 2021
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions .github/asiosdk-version.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
GitHub Actions uses the hash of this file as the cache key for the ASIO SDK.
Update this file when a new version of the ASIO SDK is released to trigger
a new download on GitHub Actions instead of using the old cache.

asiosdk_2.3.3_2019-06-14.zip
70 changes: 60 additions & 10 deletions .github/workflows/cmake.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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=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 }}
Expand All @@ -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
Expand Down
Loading