diff --git a/.github/workflows/darwin.yml b/.github/workflows/darwin.yml index f870d2d..4f90b6e 100644 --- a/.github/workflows/darwin.yml +++ b/.github/workflows/darwin.yml @@ -9,26 +9,26 @@ jobs: fail-fast: false matrix: config: - # https://github.com/actions/virtual-environments/tree/main/images/macos - - { os: "macos-12", xcode: "14.0", arch: "x64" } - - { os: "macos-12", xcode: "14.1", arch: "x64" } - - { os: "macos-12", xcode: "14.2", arch: "x64" } + # https://github.com/actions/virtual-environments/tree/main/images/macos + - { os: "macos-12", xcode: "14.0", arch: "x64" } + - { os: "macos-12", xcode: "14.1", arch: "x64" } + - { os: "macos-12", xcode: "14.2", arch: "x64" } name: "xcode-${{matrix.config.xcode}}" steps: - - name: Setup - run: | - brew update - brew install cmake ninja - - name: Checkout - uses: actions/checkout@v3 - with: - submodules: true - - name: Select Xcode - run: sudo xcode-select --switch "/Applications/Xcode_${{matrix.config.xcode}}.app" - - name: Build - run: | - cmake --preset macos-${{matrix.config.arch}} - cmake --build --preset macos-${{matrix.config.arch}}-release - - name: Test - run: | - ctest --preset macos-${{matrix.config.arch}}-release \ No newline at end of file + - name: Setup + run: | + brew update + brew install cmake ninja + - name: Checkout + uses: actions/checkout@v3 + with: + submodules: true + - name: Select Xcode + run: sudo xcode-select --switch "/Applications/Xcode_${{matrix.config.xcode}}.app" + - name: Build + run: | + cmake --preset macos-${{matrix.config.arch}} + cmake --build --preset macos-${{matrix.config.arch}}-release + - name: Test + run: | + ctest --preset macos-${{matrix.config.arch}} diff --git a/.github/workflows/linux.yml b/.github/workflows/linux.yml index 11285f6..362810f 100644 --- a/.github/workflows/linux.yml +++ b/.github/workflows/linux.yml @@ -9,25 +9,25 @@ jobs: fail-fast: false matrix: config: - # https://github.com/actions/virtual-environments/tree/main/images/linux - - { os: "ubuntu-20.04", cc: "gcc-10", cxx: "g++-10" } - - { os: "ubuntu-20.04", cc: "clang-10", cxx: "clang++-10" } - - { os: "ubuntu-22.04", cc: "gcc-12", cxx: "g++-12" } - - { os: "ubuntu-22.04", cc: "clang-14", cxx: "clang++-14" } + # https://github.com/actions/virtual-environments/tree/main/images/linux + - { os: "ubuntu-20.04", cc: "gcc-10", cxx: "g++-10" } + - { os: "ubuntu-20.04", cc: "clang-10", cxx: "clang++-10" } + - { os: "ubuntu-22.04", cc: "gcc-12", cxx: "g++-12" } + - { os: "ubuntu-22.04", cc: "clang-14", cxx: "clang++-14" } name: "${{matrix.config.cxx}}" steps: - - name: Setup - run: | - sudo apt-get update -o Acquire::Retries=10 - sudo apt-get install -o Acquire::Retries=10 -y cmake ninja-build ${{matrix.config.cc}} ${{matrix.config.cxx}} - - name: Checkout - uses: actions/checkout@v3 - with: - submodules: true - - name: Build - run: | - cmake --preset linux-${{matrix.config.cc}} - cmake --build --preset linux-${{matrix.config.cc}}-release - - name: Test - run: | - ctest --preset linux-${{matrix.config.cc}}-release + - name: Setup + run: | + sudo apt-get update -o Acquire::Retries=10 + sudo apt-get install -o Acquire::Retries=10 -y cmake ninja-build ${{matrix.config.cc}} ${{matrix.config.cxx}} + - name: Checkout + uses: actions/checkout@v3 + with: + submodules: true + - name: Build + run: | + cmake --preset linux-${{matrix.config.cc}} + cmake --build --preset linux-${{matrix.config.cc}}-release + - name: Test + run: | + ctest --preset linux-${{matrix.config.cc}} diff --git a/.github/workflows/windows.yml b/.github/workflows/windows.yml index 47bafa9..f268b90 100644 --- a/.github/workflows/windows.yml +++ b/.github/workflows/windows.yml @@ -9,25 +9,25 @@ jobs: fail-fast: false matrix: config: - # https://github.com/actions/virtual-environments/tree/main/images/win - - { os: "windows-2019", vc: "msvc2019", arch: "x86" } - - { os: "windows-2019", vc: "msvc2019", arch: "x64" } - - { os: "windows-2022", vc: "msvc2022", arch: "x86" } - - { os: "windows-2022", vc: "msvc2022", arch: "x64" } + # https://github.com/actions/virtual-environments/tree/main/images/win + - { os: "windows-2019", vc: "msvc2019", arch: "x86" } + - { os: "windows-2019", vc: "msvc2019", arch: "x64" } + - { os: "windows-2022", vc: "msvc2022", arch: "x86" } + - { os: "windows-2022", vc: "msvc2022", arch: "x64" } name: "${{matrix.config.vc}} ${{matrix.config.arch}}" steps: - - name: Setup - run: choco install cmake ninja - - name: Checkout - uses: actions/checkout@v3 - with: - submodules: true - - name: Select MSVC - uses: ilammy/msvc-dev-cmd@v1 - - name: Build - run: | - cmake --preset windows-${{matrix.config.arch}}-${{matrix.config.vc}} - cmake --build --preset windows-${{matrix.config.arch}}-${{matrix.config.vc}}-release - - name: Test - run: | - ctest --preset windows-${{matrix.config.arch}}-${{matrix.config.vc}}-release + - name: Setup + run: choco install cmake ninja + - name: Checkout + uses: actions/checkout@v3 + with: + submodules: true + - name: Select MSVC + uses: ilammy/msvc-dev-cmd@v1 + - name: Build + run: | + cmake --preset windows-${{matrix.config.arch}}-${{matrix.config.vc}} + cmake --build --preset windows-${{matrix.config.arch}}-${{matrix.config.vc}}-release + - name: Test + run: | + ctest --preset windows-${{matrix.config.arch}}-${{matrix.config.vc}} diff --git a/CMakePresets.json b/CMakePresets.json index e9041b4..a1d314d 100644 --- a/CMakePresets.json +++ b/CMakePresets.json @@ -1,12 +1,10 @@ { "version": 3, - "cmakeMinimumRequired": { "major": 3, "minor": 21, "patch": 0 }, - "configurePresets": [ { "name": "ninja-base", @@ -203,7 +201,6 @@ } } ], - "buildPresets": [ { "name": "linux-clang-10-debug", @@ -336,63 +333,91 @@ "configurePreset": "windows-x64-msvc2022" } ], - "testPresets": [ { "name": "test-base", "hidden": true, "output": { "verbosity": "verbose" - }, - "configuration": "Release" + } }, { - "name": "linux-clang-10-release", + "name": "linux-clang-10", "inherits": "test-base", "configurePreset": "linux-clang-10" }, { - "name": "linux-clang-14-release", + "name": "linux-clang-14", "inherits": "test-base", "configurePreset": "linux-clang-14" }, { - "name": "linux-gcc-10-release", + "name": "linux-gcc-10", "inherits": "test-base", "configurePreset": "linux-gcc-10" }, { - "name": "linux-gcc-12-release", + "name": "linux-gcc-12", "inherits": "test-base", "configurePreset": "linux-gcc-12" }, { - "name": "macos-arm64-release", + "name": "macos-arm64", "inherits": "test-base", "configurePreset": "macos-arm64" }, { - "name": "macos-x64-release", + "name": "macos-arm64-san", + "inherits": "test-base", + "configurePreset": "macos-arm64-san" + }, + { + "name": "macos-arm64-san-no-exceptions", + "inherits": "test-base", + "configurePreset": "macos-arm64-san-no-exceptions" + }, + { + "name": "macos-arm64-san-no-rtti", + "inherits": "test-base", + "configurePreset": "macos-arm64-san-no-rtti" + }, + { + "name": "macos-x64", "inherits": "test-base", "configurePreset": "macos-x64" }, { - "name": "windows-x86-msvc2019-release", + "name": "macos-x64-san", + "inherits": "test-base", + "configurePreset": "macos-x64-san" + }, + { + "name": "macos-x64-san-no-exceptions", + "inherits": "test-base", + "configurePreset": "macos-x64-san-no-exceptions" + }, + { + "name": "macos-x64-san-no-rtti", + "inherits": "test-base", + "configurePreset": "macos-x64-san-no-rtti" + }, + { + "name": "windows-x86-msvc2019", "inherits": "test-base", "configurePreset": "windows-x86-msvc2019" }, { - "name": "windows-x64-msvc2019-release", + "name": "windows-x64-msvc2019", "inherits": "test-base", "configurePreset": "windows-x64-msvc2019" }, { - "name": "windows-x86-msvc2022-release", + "name": "windows-x86-msvc2022", "inherits": "test-base", "configurePreset": "windows-x86-msvc2022" }, { - "name": "windows-x64-msvc2022-release", + "name": "windows-x64-msvc2022", "inherits": "test-base", "configurePreset": "windows-x64-msvc2022" }