Skip to content

Commit

Permalink
Bring in dev branch to main branch (#87)
Browse files Browse the repository at this point in the history
  • Loading branch information
Rinzii authored Dec 30, 2024
2 parents f51f958 + 60b433d commit a81a080
Show file tree
Hide file tree
Showing 305 changed files with 8,313 additions and 2,929 deletions.
4 changes: 3 additions & 1 deletion .clang-tidy
Original file line number Diff line number Diff line change
Expand Up @@ -65,4 +65,6 @@ openmp-use-default-none,

CheckOptions:
cppcoreguidelines-avoid-do-while.IgnoreMacros: 'true'
readability-function-cognitive-complexity.Threshold: 35
readability-function-cognitive-complexity.Threshold: 35

UseColor: true
14 changes: 6 additions & 8 deletions .github/dependabot.yml
Original file line number Diff line number Diff line change
@@ -1,11 +1,9 @@
# To get started with Dependabot version updates, you'll need to specify which
# package ecosystems to update and where the package manifests are located.
# Please see the documentation for all configuration options:
# https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file

version: 2
updates:
- package-ecosystem: "github-actions" # See documentation for possible values
directory: "/" # Location of package manifests
- package-ecosystem: "github-actions" # Necessary to update action hashes.
directory: "/"
schedule:
interval: "weekly"
interval: "monthly"
# Allow up to 3 opened pull requests for github-actions versions.
open-pull-requests-limit: 3
target-branch: "dev"
123 changes: 82 additions & 41 deletions .github/workflows/ci-linux.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
name: ci-linux

on:
push:
tags-ignore:
Expand All @@ -14,61 +15,101 @@ permissions:

jobs:
build:
runs-on: ubuntu-22.04
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
compiler: [ninja-gcc, ninja-clang, ninja-clang-libcpp]
cxx_version: [17, 20]
target: [Debug, Release]
steps:
- name: Harden Runner
uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1
with:
egress-policy: audit
include:
# GCC Debug
- name: gcc-debug
configurePreset: ninja-gcc-debug
buildPreset: build-ninja-gcc-debug
testPreset: test-ninja-gcc-debug
cxx_version: 17

- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: gcc-debug-cxx20
configurePreset: ninja-gcc-debug
buildPreset: build-ninja-gcc-debug
testPreset: test-ninja-gcc-debug
cxx_version: 20

- name: Cache CMake build files
uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4.1.2
with:
path: build
key: ${{ runner.os }}-cmake-${{ matrix.compiler }}-${{ matrix.cxx_version }}-${{ matrix.target }}
restore-keys: |
${{ runner.os }}-cmake-${{ matrix.compiler }}-${{ matrix.cxx_version }}-
${{ runner.os }}-cmake-${{ matrix.compiler }}-
# GCC Release
- name: gcc-release
configurePreset: ninja-gcc-release
buildPreset: build-ninja-gcc-release
testPreset: test-ninja-gcc-release
cxx_version: 17

- name: install dependencies
run: sudo apt install -yqq ninja-build
- name: gcc-release-cxx20
configurePreset: ninja-gcc-release
buildPreset: build-ninja-gcc-release
testPreset: test-ninja-gcc-release
cxx_version: 20

- name: configure cmake
run: cmake -S . --preset=${{matrix.compiler}} -B build -DCMAKE_CXX_STANDARD=${{matrix.cxx_version}}
# Clang Debug
- name: clang-debug
configurePreset: ninja-clang-debug
buildPreset: build-ninja-clang-debug
testPreset: test-ninja-clang-debug
cxx_version: 17

- name: build
run: cmake --build build --config=${{matrix.target}}
- name: clang-debug-cxx20
configurePreset: ninja-clang-debug
buildPreset: build-ninja-clang-debug
testPreset: test-ninja-clang-debug
cxx_version: 20

# Clang Release
- name: clang-release
configurePreset: ninja-clang-release
buildPreset: build-ninja-clang-release
testPreset: test-ninja-clang-release
cxx_version: 17

- name: clang-release-cxx20
configurePreset: ninja-clang-release
buildPreset: build-ninja-clang-release
testPreset: test-ninja-clang-release
cxx_version: 20

# Clang libcpp Release
- name: clang-libcpp-release
configurePreset: ninja-clang-libcpp-relwithdebinfo
buildPreset: build-ninja-clang-libcpp-relwithdebinfo
testPreset: test-ninja-clang-libcpp-relwithdebinfo
cxx_version: 17

- name: clang-libcpp-release-cxx20
configurePreset: ninja-clang-libcpp-relwithdebinfo
buildPreset: build-ninja-clang-libcpp-relwithdebinfo
testPreset: test-ninja-clang-libcpp-relwithdebinfo
cxx_version: 20

test:
runs-on: ubuntu-22.04
needs: build
strategy:
fail-fast: false
matrix:
compiler: [ninja-gcc, ninja-clang, ninja-clang-libcpp]
cxx_version: [17, 20]
target: [Debug, Release]
steps:
- name: Harden Runner
uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1
uses: step-security/harden-runner@v2.9.1
with:
egress-policy: audit

- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: actions/checkout@v4

- name: Cache CMake build files
uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4.1.2
- name: Cache build
uses: actions/cache@v4
with:
path: build
key: ${{ runner.os }}-cmake-${{ matrix.compiler }}-${{ matrix.cxx_version }}-${{ matrix.target }}
path: |
./**/CMakeFiles
./**/CMakeCache.txt
./**/out
key: ${{ runner.os }}-${{ matrix.name }}

- name: Install dependencies
run: sudo apt-get update -qq && sudo apt-get install -yqq --no-install-recommends ninja-build

- name: Configure
run: cmake --preset="${{ matrix.configurePreset }}" -DCMAKE_CXX_STANDARD="${{ matrix.cxx_version }}"

- name: Build
run: cmake --build --preset="${{ matrix.buildPreset }}"

- name: test
run: cd build && ctest -C ${{matrix.target}} --output-on-failure
- name: Test
run: ctest --preset="${{ matrix.testPreset }}" --output-on-failure --schedule-random -F
108 changes: 63 additions & 45 deletions .github/workflows/ci-macos.yml
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
name: ci-macos

on:
push:
tags-ignore:
Expand All @@ -14,67 +15,84 @@ permissions:

jobs:
build:
runs-on: macos-14
runs-on: macos-latest
strategy:
fail-fast: false
matrix:
compiler: [ninja-clang, ninja-gcc]
cxx_version: [17, 20]
target: [Debug, Release]
steps:
- name: Harden Runner
uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1
with:
egress-policy: audit
include:
- name: clang-debug-cxx17
configurePreset: ninja-clang-debug
buildPreset: build-ninja-clang-debug
testPreset: test-ninja-clang-debug
cxx_version: 17

- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- name: clang-debug-cxx20
configurePreset: ninja-clang-debug
buildPreset: build-ninja-clang-debug
testPreset: test-ninja-clang-debug
cxx_version: 20

- name: Cache CMake build files
uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4.1.2
with:
path: build
key: ${{ runner.os }}-cmake-${{ matrix.compiler }}-${{ matrix.cxx_version }}-${{ matrix.target }}
restore-keys: |
${{ runner.os }}-cmake-${{ matrix.compiler }}-${{ matrix.cxx_version }}-
${{ runner.os }}-cmake-${{ matrix.compiler }}-
- name: clang-release-cxx17
configurePreset: ninja-clang-release
buildPreset: build-ninja-clang-release
testPreset: test-ninja-clang-release
cxx_version: 17

- name: install homebrew formulae
run: /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
- name: clang-release-cxx20
configurePreset: ninja-clang-release
buildPreset: build-ninja-clang-release
testPreset: test-ninja-clang-release
cxx_version: 20

- name: install ninja
run: brew install ninja
- name: gcc-debug-cxx17
configurePreset: ninja-gcc-debug
buildPreset: build-ninja-gcc-debug
testPreset: test-ninja-gcc-debug
cxx_version: 17

- name: update AppleClang to 14.0.3
run: sudo xcode-select -s /Applications/Xcode_14.3.app/Contents/Developer
- name: gcc-debug-cxx20
configurePreset: ninja-gcc-debug
buildPreset: build-ninja-gcc-debug
testPreset: test-ninja-gcc-debug
cxx_version: 20

- name: configure
run: cmake -S . --preset=${{matrix.compiler}} -B build -DCMAKE_CXX_STANDARD=${{matrix.cxx_version}}
- name: gcc-release-cxx17
configurePreset: ninja-gcc-release
buildPreset: build-ninja-gcc-release
testPreset: test-ninja-gcc-release
cxx_version: 17

- name: build
run: cmake --build build --config=${{matrix.target}}
- name: gcc-release-cxx20
configurePreset: ninja-gcc-release
buildPreset: build-ninja-gcc-release
testPreset: test-ninja-gcc-release
cxx_version: 20

test:
runs-on: macos-14
needs: build
strategy:
fail-fast: false
matrix:
compiler: [ninja-clang, ninja-gcc]
cxx_version: [17, 20]
target: [Debug, Release]
steps:
- name: Harden Runner
uses: step-security/harden-runner@91182cccc01eb5e619899d80e4e971d6181294a7 # v2.10.1
uses: step-security/harden-runner@v2.9.1
with:
egress-policy: audit

- uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2
- uses: actions/checkout@v4

- name: Cache CMake build files
uses: actions/cache@6849a6489940f00c2f30c0fb92c6274307ccb58a # v4.1.2
- name: Cache build
uses: actions/cache@v4
with:
path: build
key: ${{ runner.os }}-cmake-${{ matrix.compiler }}-${{ matrix.cxx_version }}-${{ matrix.target }}
path: |
./**/CMakeFiles
./**/CMakeCache.txt
./**/out
key: ${{ runner.os }}-${{ matrix.name }}

- name: Install Ninja
run: brew install ninja

- name: Configure
run: cmake --preset="${{ matrix.configurePreset }}" -DCMAKE_CXX_STANDARD="${{ matrix.cxx_version }}"

- name: Build
run: cmake --build --preset="${{ matrix.buildPreset }}"

- name: test
run: cd build && ctest -C ${{matrix.target}} --output-on-failure
- name: Test
run: ctest --preset="${{ matrix.testPreset }}" --output-on-failure --schedule-random -F
Loading

0 comments on commit a81a080

Please sign in to comment.