| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236 |
- name: CI
- on:
- push:
- branches: [ "master" ]
- pull_request:
- branches: [ "master" ]
- jobs:
- build_autotools:
- name: Autotools / ${{ matrix.os }}
- runs-on: ${{ matrix.os }}
- strategy:
- fail-fast: false
- matrix:
- os: [macos-12, macos-14, ubuntu-22.04]
- steps:
- - uses: actions/checkout@v4
- - name: Install Autotools
- if: runner.os == 'macOS'
- run: brew upgrade && brew install autoconf automake libtool
- - name: Generate Autotools
- run: ./autogen.sh
- - name: Configure Autotools
- run: ./configure
- - name: Build
- run: make
- - name: Test
- run: make check
- build_cmake_ios:
- name: CMake / iOS
- runs-on: macos-14
- steps:
- - uses: actions/checkout@v4
- - name: Configure CMake
- run: |
- cmake \
- -B build \
- -GXcode \
- -DCMAKE_SYSTEM_NAME=iOS \
- -DCMAKE_BUILD_TYPE=Release \
- -DCMAKE_XCODE_ATTRIBUTE_CODE_SIGNING_ALLOWED=NO \
- -DCGLM_STATIC=ON \
- -DCGLM_USE_TEST=ON
- - name: Build
- run: cmake --build build
- build_cmake_macos:
- name: CMake / ${{ matrix.os }}
- runs-on: ${{ matrix.os }}
- strategy:
- fail-fast: false
- matrix:
- os: [macos-12, macos-14]
- steps:
- - uses: actions/checkout@v4
- - name: Install Ninja
- if: runner.os == 'macOS'
- run: brew upgrade && brew install ninja
- - name: Configure CMake
- run: |
- cmake \
- -B build \
- -GNinja \
- -DCMAKE_BUILD_TYPE=Release \
- -DCGLM_STATIC=ON \
- -DCGLM_USE_TEST=ON
- - name: Build
- run: cmake --build build
- - name: Test
- working-directory: build
- run: ./tests
- build_cmake_ubuntu:
- name: CMake / ${{ matrix.target.os }} / ${{ matrix.target.cc }}
- runs-on: ${{ matrix.target.os }}
- strategy:
- fail-fast: false
- matrix:
- target:
- - { os: ubuntu-20.04, cc: gcc-11 }
- - { os: ubuntu-22.04, cc: gcc-12 }
- - { os: ubuntu-22.04, cc: gcc-13 }
- - { os: ubuntu-20.04, cc: clang-12 }
- - { os: ubuntu-22.04, cc: clang-15 }
- steps:
- - uses: actions/checkout@v4
- - name: Install Compiler and Ninja
- run: |
- sudo apt-get update -y
- sudo apt-get install -y ${{ matrix.target.cc }} ninja-build
- - name: Configure CMake
- run: |
- cmake \
- -B build \
- -GNinja \
- -DCMAKE_C_COMPILER=${{ matrix.target.cc }} \
- -DCMAKE_BUILD_TYPE=Release \
- -DCGLM_STATIC=ON \
- -DCGLM_USE_TEST=ON
- - name: Build
- run: cmake --build build
- - name: Test
- working-directory: build
- run: ./tests
- build_cmake_windows:
- name: CMake / ${{ matrix.platform.name }}
- runs-on: windows-2022
- strategy:
- fail-fast: false
- matrix:
- platform:
- - { name: Windows (x64), flags: -A x64 }
- - { name: Windows (x86), flags: -A Win32 }
- - { name: Windows (clang-cl x64), flags: -T ClangCL -A x64 }
- - { name: Windows (clang-cl x86), flags: -T ClangCL -A Win32 }
- - { name: Windows (ARM), flags: -A ARM, skip_tests: true, skip_build: true } # This fails to build.
- - { name: Windows (ARM64), flags: -A ARM64, skip_tests: true }
- - { name: UWP (ARM64), flags: -A ARM64, -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION="10.0", skip_tests: true }
- - { name: UWP (x64), flags: -A x64 -DCMAKE_SYSTEM_NAME=WindowsStore -DCMAKE_SYSTEM_VERSION="10.0", skip_tests: true }
- steps:
- - uses: actions/checkout@v4
- - name: Configure CMake
- run: cmake -B build `
- -DCGLM_STATIC=ON `
- -DCGLM_USE_TEST=ON `
- ${{ matrix.platform.flags }}
- - name: Build
- if: ${{ !matrix.platform.skip_build }}
- run: cmake --build build --config Release --parallel
- - name: Test
- if: ${{ !matrix.platform.skip_tests }}
- working-directory: build
- run: .\Release\tests.exe
- build_documentation:
- name: Documentation
- runs-on: ubuntu-22.04
- steps:
- - uses: actions/checkout@v4
- - uses: actions/setup-python@v5
- with:
- python-version: '3.12'
- - name: Install Dependencies
- working-directory: docs
- run: python3 -m pip install -r requirements.txt
- - name: Build
- working-directory: docs
- run: sphinx-build -W --keep-going source build
- build_meson:
- name: Meson / ${{ matrix.os }}
- runs-on: ${{ matrix.os }}
- strategy:
- fail-fast: false
- matrix:
- os: [macos-14, ubuntu-22.04]
- steps:
- - uses: actions/checkout@v4
- - uses: actions/setup-python@v5
- with:
- python-version: '3.12'
- cache: 'pip'
- - name: Install meson
- run: python3 -m pip install meson ninja
- - name: Build
- run: meson setup build -Dbuildtype=release --default-library=static -Dbuild_tests=true
- - name: Test
- run: meson test -C build
- build_msbuild:
- name: MSBuild / Windows
- runs-on: windows-2022
- # This has no test yet.
- # It could also try building for ARM, ARM64, ARM64EC, but those fail currently.
- steps:
- - uses: actions/checkout@v4
- - uses: microsoft/setup-msbuild@v2
- - name: Build (x86)
- working-directory: win
- run: msbuild cglm.vcxproj /p:Configuration=Release /p:Platform=x86 /p:BuildInParallel=true
- - name: Build (x64)
- working-directory: win
- run: msbuild cglm.vcxproj /p:Configuration=Release /p:Platform=x64 /p:BuildInParallel=true
- build_swift:
- name: Swift ${{ matrix.swift }} / ${{ matrix.os }}
- runs-on: ${{ matrix.os }}
- strategy:
- fail-fast: false
- matrix:
- os: [macos-12, macos-14, ubuntu-22.04]
- # This has no test yet.
- steps:
- - uses: actions/checkout@v4
- - name: Build
- run: swift build
|