cmake: use target_compile_options()
instead of altering global `CMA…
#545
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: CI | |
on: [push, pull_request] | |
jobs: | |
build: | |
name: ${{ matrix.target.name }} - ${{ matrix.toolchain.name }} | |
runs-on: ${{ matrix.toolchain.os }} | |
strategy: | |
fail-fast: false | |
matrix: | |
target: | |
- name: quakespasm | |
- name: quakespasm-spiked | |
# - name: vkquake | |
# deps: | |
# common: | | |
# mkdir -p build/glslang | |
# cd build/glslang | |
# GLSLANG_PACKAGE=glslang-12.0.0-${RUNNER_OS}.tar.xz | |
# aria2c https://github.com/alexey-lysiuk/quakespasm-cmake/releases/download/ci_deps/${GLSLANG_PACKAGE} | |
# tar -xf ${GLSLANG_PACKAGE} | |
# Linux: sudo apt install libvulkan-dev | |
# macOS: brew install vulkan-headers vulkan-loader | |
# configure: export PATH=$PATH:$(pwd)/build/glslang | |
- name: ironwail | |
deps: | |
Linux: sudo apt install libcurl4-openssl-dev | |
toolchain: | |
- name: Linux Clang | |
os: ubuntu-22.04 | |
# TODO: find the way to avoid duplication of dependencies command | |
deps: sudo apt update && sudo apt install libflac-dev libmikmod-dev libmpg123-dev libopusfile-dev libsdl2-dev libvorbis-dev libxmp-dev | |
cmake_args: -DCMAKE_C_COMPILER=clang | |
- name: Linux GCC | |
os: ubuntu-22.04 | |
# TODO: find the way to avoid duplication of dependencies command | |
deps: sudo apt update && sudo apt install libflac-dev libmikmod-dev libmpg123-dev libopusfile-dev libsdl2-dev libvorbis-dev libxmp-dev | |
- name: macOS | |
os: macos-12 | |
deps: brew install flac libmikmod libvorbis libxmp mpg123 opusfile sdl2 | |
- name: MSVC 32-bit | |
os: windows-2022 | |
cmake_args: -A Win32 | |
- name: MSVC 64-bit | |
os: windows-2022 | |
cmake_args: -A x64 | |
steps: | |
- uses: actions/checkout@v4 | |
- name: Checkout Source Code | |
shell: bash | |
run: | | |
git submodule update --init -- src/${{ matrix.target.name }} | |
- name: Install Dependencies | |
shell: bash | |
run: | | |
${{ matrix.toolchain.deps }} | |
${{ matrix.target.deps.common }} | |
${{ matrix.target.deps[runner.os] }} | |
- name: Configure | |
shell: bash | |
run: | | |
${{ matrix.target.configure }} | |
cmake -B build -DQUAKE_TARGET=${{ matrix.target.name }} ${{ matrix.toolchain.cmake_args }} . | |
- name: Build | |
shell: bash | |
run: | | |
export MAKEFLAGS=--keep-going | |
cmake --build build --config Release --parallel 3 | |
- name: List Build Directory | |
if: always() | |
shell: bash | |
run: | | |
git status | |
ls -lR build |