build: modernize repo-lens skeleton and cross-platform configuration
CI / build (debug, map[compiler:appleclang os:macos-latest]) (push) Canceled after 0s
CI / build (debug, map[compiler:clang os:ubuntu-latest]) (push) Canceled after 0s
CI / build (debug, map[compiler:gcc os:ubuntu-latest]) (push) Canceled after 0s
CI / build (debug, map[compiler:msvc os:windows-latest]) (push) Canceled after 0s
CI / build (release, map[compiler:appleclang os:macos-latest]) (push) Canceled after 0s
CI / build (release, map[compiler:clang os:ubuntu-latest]) (push) Canceled after 0s
CI / build (release, map[compiler:gcc os:ubuntu-latest]) (push) Canceled after 0s
CI / build (release, map[compiler:msvc os:windows-latest]) (push) Canceled after 0s
CI / build (sanitizers, map[compiler:appleclang os:macos-latest]) (push) Canceled after 0s
CI / build (sanitizers, map[compiler:clang os:ubuntu-latest]) (push) Canceled after 0s
CI / build (sanitizers, map[compiler:gcc os:ubuntu-latest]) (push) Canceled after 0s
CI / build (sanitizers, map[compiler:msvc os:windows-latest]) (push) Canceled after 0s

Replace CPM with FetchContent and update GoogleTest to v1.18.0.
Add compiler toolchains and Debug, Release, and sanitizer presets.
Require CMake 4.0, use target properties for compiler settings,
and enable compilation database export.

Fix skeleton compilation errors and adopt trailing return types,
nodiscard execute methods, and noexcept signatures. Update CI
and project documentation without implementing any TODOs.

Validated Windows builds and tests in all three configurations.
This commit is contained in:
wilmc committed 2026-10-09 12:36:31 +02:00
1 parent dd9f0a4c3a
commit 70c43b6a68
25 files changed
+510 -176

No files matched your search

+32 -47
View File
@@ -6,70 +6,55 @@ on:
pull_request:
branches: [ "main" ]
env:
CLANG_TIDY_VERSION: "13.0.0"
jobs:
build:
runs-on: ${{matrix.os}}
runs-on: ${{ matrix.platform.os }}
strategy:
fail-fast: false
matrix:
os: [windows-latest, ubuntu-latest, macos-latest]
build_configuration: [Debug, Release]
compiler: [llvm, gcc]
exclude:
- os: windows-latest
include:
- os: 'windows-latest'
compiler: llvm
build_configuration: Debug
- os: 'windows-latest'
compiler: llvm
build_configuration: Release
- os: 'windows-latest'
compiler: gcc
build_configuration: Debug
- os: 'windows-latest'
compiler: gcc
build_configuration: Release
- os: 'windows-latest'
compiler: msvc
build_configuration: Debug
- os: 'windows-latest'
compiler: msvc
build_configuration: Release
- os: 'ubuntu-latest'
triplet: x64-linux
- os: 'macos-latest'
triplet: x64-osx
build_configuration: [debug, release, sanitizers]
platform:
- { os: ubuntu-latest, compiler: gcc }
- { os: ubuntu-latest, compiler: clang }
- { os: macos-latest, compiler: appleclang }
- { os: windows-latest, compiler: msvc }
steps:
- name: checkout
uses: actions/checkout@v3
- name: Set up Python for CMake installation
uses: actions/setup-python@v5
with:
python-version: '3.12'
- name: Install CMake 4.x
run: python -m pip install "cmake>=4.0,<5"
- name: Set up MSVC developer environment
if: runner.os == 'Windows'
uses: ilammy/msvc-dev-cmd@v1
- name: Install Ninja on Linux
if: runner.os == 'Linux'
run: sudo apt-get update && sudo apt-get install -y ninja-build
- name: Install Ninja on macOS
if: runner.os == 'macOS'
run: brew list ninja >/dev/null 2>&1 || brew install ninja
- name: cache
uses: actions/cache@v3
with:
path: "**/CPM_modules"
key: ${{ github.workflow }}-cpm-modules-${{ hashFiles('**/CMakeLists.txt', '**/*.cmake') }}
path: build/${{ matrix.platform.compiler }}-${{ matrix.build_configuration }}/_deps
key: ${{ runner.os }}-${{ matrix.platform.compiler }}-${{ matrix.build_configuration }}-${{ github.workflow }}-fetchcontent-${{ hashFiles('CMakePresets.json', '**/CMakeLists.txt', '**/*.cmake') }}
- name: Configure CMake
run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{matrix.build_configuration}}
run: cmake --preset ${{ matrix.platform.compiler }}-${{ matrix.build_configuration }}
- name: Build
run: cmake --build ${{github.workspace}}/build --config ${{matrix.build_configuration}}
run: cmake --build --preset ${{ matrix.platform.compiler }}-${{ matrix.build_configuration }} --parallel 2
- name: Test
working-directory: ${{github.workspace}}/build
run: ctest -C ${{matrix.build_configuration}}
run: ctest --preset ${{ matrix.platform.compiler }}-${{ matrix.build_configuration }}