diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index ee40803..9a0c825 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -42,3 +42,9 @@ jobs: - name: Test run: cmake --build build --target check-warpforth + + - name: Check C++ formatting + run: cmake --build build --target check-format + + - name: Ruff check + run: uv run ruff check gpu_test/ && uv run ruff format --check gpu_test/ diff --git a/CMakeLists.txt b/CMakeLists.txt index e8b6bb4..4d0cfe7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -46,7 +46,8 @@ else() endif() # Add format target to run clang-format on all source files -find_program(CLANG_FORMAT_EXECUTABLE NAMES clang-format) +find_program(CLANG_FORMAT_EXECUTABLE + NAMES clang-format-${LLVM_VERSION_MAJOR} clang-format) if(CLANG_FORMAT_EXECUTABLE) file(GLOB_RECURSE ALL_SOURCE_FILES ${PROJECT_SOURCE_DIR}/include/**/*.h @@ -58,4 +59,9 @@ if(CLANG_FORMAT_EXECUTABLE) COMMENT "Running clang-format on all source files" VERBATIM ) + add_custom_target(check-format + COMMAND ${CLANG_FORMAT_EXECUTABLE} --dry-run --Werror ${ALL_SOURCE_FILES} + COMMENT "Checking clang-format on all source files" + VERBATIM + ) endif()