win: New PaWinUtil_GetOsVersion() function for getting Windows OS version #772
Workflow file for this run
This file contains 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: CMake build | |
on: [push, pull_request] | |
jobs: | |
build: | |
strategy: | |
fail-fast: false | |
matrix: | |
include: | |
- name: Ubuntu GCC | |
os: ubuntu-latest | |
install_dir: ~/portaudio | |
vcpkg_triplet: x64-linux | |
cmake_generator: "Unix Makefiles" | |
cmake_options: | |
-DPA_USE_OSS=ON | |
-DCMAKE_TOOLCHAIN_FILE=vcpkg/scripts/buildsystems/vcpkg.cmake | |
- name: Ubuntu MinGW | |
os: ubuntu-latest | |
install_dir: ~/portaudio | |
asio_sdk_cache_path: asiosdk.zip | |
dependencies_extras: mingw-w64 | |
# FIXME: linking JACK fails with vcpkg. Switch the CMake toolchain file to use vcpkg. The | |
# toolchain file in this repository is not needed when using a MinGW triplet with vcpkg. | |
vcpkg_triplet: x64-mingw-static | |
cmake_generator: "Unix Makefiles" | |
cmake_options: | |
-DPA_USE_ASIO=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 | |
vcpkg_triplet: x64-windows | |
cmake_generator: "Visual Studio 17 2022" | |
# 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" | |
# Somehow CMake fails to find the toolchain file if a relative path is used on Windows. | |
cmake_options: | |
-DPA_USE_ASIO=ON | |
-DASIO_SDK_ZIP_PATH="asiosdk.zip" | |
-DCMAKE_TOOLCHAIN_FILE=D:\a\portaudio\portaudio\vcpkg\scripts\buildsystems\vcpkg.cmake | |
- name: Windows MinGW | |
os: windows-latest | |
install_dir: C:\portaudio | |
vcpkg_triplet: x64-mingw-static | |
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" | |
# Somehow CMake fails to find the toolchain file if a relative path is used on Windows. | |
cmake_options: | |
-DPA_USE_ASIO=ON | |
-DASIO_SDK_ZIP_PATH="asiosdk.zip" | |
-DCMAKE_TOOLCHAIN_FILE=D:\a\portaudio\portaudio\vcpkg\scripts\buildsystems\vcpkg.cmake | |
- name: macOS Clang | |
os: macOS-latest | |
install_dir: ~/portaudio | |
vcpkg_triplet: x64-osx | |
cmake_generator: "Unix Makefiles" | |
cmake_options: | |
-DCMAKE_FRAMEWORK=OFF | |
-DCMAKE_TOOLCHAIN_FILE=vcpkg/scripts/buildsystems/vcpkg.cmake | |
- name: macOS Clang framework | |
os: macOS-latest | |
install_dir: ~/portaudio | |
vcpkg_triplet: x64-osx | |
cmake_generator: "Unix Makefiles" | |
cmake_options: | |
-DCMAKE_FRAMEWORK=ON | |
-DCMAKE_TOOLCHAIN_FILE=vcpkg/scripts/buildsystems/vcpkg.cmake | |
runs-on: ${{ matrix.os }} | |
name: ${{ matrix.name }} | |
env: | |
cmake_build_type: RelWithDebInfo | |
steps: | |
- name: checkout Git repository | |
uses: actions/checkout@v2 | |
- name: "[Ubuntu] install dependencies" | |
run: | | |
sudo apt-get update | |
sudo apt-get install libasound2-dev ${{ matrix.dependencies_extras }} | |
if: matrix.os == 'ubuntu-latest' | |
- name: "[macOS] install dependencies" | |
# https://github.com/PortAudio/portaudio/issues/767 | |
run: brew install pkg-config | |
if: matrix.os == 'macOS-latest' | |
- 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: Setup vcpkg | |
uses: lukka/run-vcpkg@v7 | |
if: ${{ matrix.vcpkg_triplet }} != null | |
with: | |
vcpkgTriplet: ${{ matrix.vcpkg_triplet }} | |
appendedCacheKey: ${{ hashFiles( '**/vcpkg.json' ) }} | |
additionalCachedPaths: build/vcpkg_installed | |
vcpkgGitCommitId: f30786c9c4c901f21a13e2d524349e39cc359a90 | |
# Required when using vcpkg.json manifest in repository | |
setupOnly: true | |
- name: configure | |
run: cmake | |
-G "${{ matrix.cmake_generator }}" | |
${{ matrix.cmake_options }} | |
-DCMAKE_INSTALL_PREFIX=${{ matrix.install_dir }} | |
-DCMAKE_BUILD_TYPE=${{ env.cmake_build_type }} | |
-DVCPKG_TARGET_TRIPLET=${{ matrix.vcpkg_triplet }} | |
-DPA_USE_SKELETON=ON | |
-DPA_BUILD_TESTS=ON | |
-DPA_BUILD_EXAMPLES=ON | |
-DPA_WARNINGS_ARE_ERRORS=ON | |
-S . | |
-B build | |
- name: build | |
run: cmake --build build --config ${{ env.cmake_build_type }} --parallel 2 | |
- name: install | |
run: cmake --install build --config ${{ env.cmake_build_type }} | |
- name: "Upload GitHub Actions artifacts" | |
uses: actions/upload-artifact@v2 | |
with: | |
name: ${{ matrix.name }} PortAudio build | |
path: ${{ matrix.install_dir }} |