build: fix building with clang

This commit is contained in:
6arelyFuture 2024-12-01 17:09:58 +00:00
parent 4d594e9463
commit c5f4a1db71
No known key found for this signature in database
GPG Key ID: 22F9079C86CFAB31
3 changed files with 38 additions and 2 deletions

28
.github/workflows/check-formatting.yml vendored Normal file
View File

@ -0,0 +1,28 @@
name: check-formatting
on:
push:
branches:
- "*"
pull_request:
branches:
- "*"
types: [opened, synchronize, reopened]
jobs:
check-formatting:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@main
- name: Install LLVM and Clang
uses: KyleMayes/install-llvm-action@v2.0.2
with:
version: "17.0"
- name: Test formatting for all files
working-directory: ${{ github.workspace }}
run: |
export CLANG_FORMAT_BIN="${LLVM_PATH}/bin/clang-format"
./scripts/check-format.sh

8
scripts/check-format.sh Executable file
View File

@ -0,0 +1,8 @@
#!/bin/bash
# Go to repository root
cd "$(dirname "$0")/.." || exit 2
CLANG_FORMAT_BIN="${CLANG_FORMAT_BIN:-clang-format}"
find ./src -iname '*.hpp' -o -iname '*.cpp' | xargs $CLANG_FORMAT_BIN -Werror -ferror-limit=1 --dry-run

View File

@ -19,8 +19,8 @@ public:
template <typename T> static T* get() { template <typename T> static T* get() {
for (const auto& component_ : get_components()) { for (const auto& component_ : get_components()) {
if (typeid(*component_.get()) == typeid(T)) { if (auto c = dynamic_cast<T*>(component_.get())) {
return reinterpret_cast<T*>(component_.get()); return c;
} }
} }