diff options
| author | Richard-Qin-X <richard.qin.001@gmail.com> | 2026-08-01 04:30:34 +0800 |
|---|---|---|
| committer | Richard-Qin-X <richard.qin.001@gmail.com> | 2026-08-01 04:30:34 +0800 |
| commit | 81cf8b68eca2636574f3d0a9fa1cf0b428c163e9 (patch) | |
| tree | f3a83496e71358123cc5f838269dc134d02b63f6 /backend/cmake/modules/RCCBackendDeveloperTools.cmake | |
| parent | 72af0dedf9e18911da65b9a5c4906689e868d9fc (diff) | |
| download | rcc-project-81cf8b68eca2636574f3d0a9fa1cf0b428c163e9.tar.gz rcc-project-81cf8b68eca2636574f3d0a9fa1cf0b428c163e9.tar.xz | |
[Backend] Establish standalone build infrastructure
Add the thin monorepo CMake entry point and an independently configurable backend project. Enforce the Clang/C++23 toolchain, expose Make/Ninja-neutral tests and developer checks, export an installable RCCBackend package, and introduce the first Support error abstraction.
Diffstat (limited to 'backend/cmake/modules/RCCBackendDeveloperTools.cmake')
| -rw-r--r-- | backend/cmake/modules/RCCBackendDeveloperTools.cmake | 50 |
1 files changed, 50 insertions, 0 deletions
diff --git a/backend/cmake/modules/RCCBackendDeveloperTools.cmake b/backend/cmake/modules/RCCBackendDeveloperTools.cmake new file mode 100644 index 0000000..d3693cd --- /dev/null +++ b/backend/cmake/modules/RCCBackendDeveloperTools.cmake @@ -0,0 +1,50 @@ +# SPDX-License-Identifier: GPL-3.0-or-later + +function(rcc_backend_add_developer_targets) + get_property(FormatFiles GLOBAL PROPERTY RCC_BACKEND_FORMAT_FILES) + get_property(TidyFiles GLOBAL PROPERTY RCC_BACKEND_TIDY_FILES) + + if(FormatFiles) + list(REMOVE_DUPLICATES FormatFiles) + + add_custom_target( + rcc-backend-format + COMMAND "${RCC_BACKEND_CLANG_FORMAT}" -i ${FormatFiles} + COMMAND_EXPAND_LISTS + COMMENT "Formatting RCC Backend C++ sources" + VERBATIM + ) + + add_custom_target( + rcc-backend-format-check + COMMAND "${RCC_BACKEND_CLANG_FORMAT}" --dry-run --Werror ${FormatFiles} + COMMAND_EXPAND_LISTS + COMMENT "Checking RCC Backend C++ formatting" + VERBATIM + ) + endif() + + if(TidyFiles) + list(REMOVE_DUPLICATES TidyFiles) + + add_custom_target( + rcc-backend-tidy + COMMAND + "${RCC_BACKEND_CLANG_TIDY}" --warnings-as-errors=* + "-p=${CMAKE_BINARY_DIR}" ${TidyFiles} + COMMAND_EXPAND_LISTS + COMMENT "Running clang-tidy on RCC Backend" + VERBATIM + ) + + add_custom_target( + rcc-backend-analyze + COMMAND + "${RCC_BACKEND_CLANG_TIDY}" "--checks=-*,clang-analyzer-*" + --warnings-as-errors=* "-p=${CMAKE_BINARY_DIR}" ${TidyFiles} + COMMAND_EXPAND_LISTS + COMMENT "Running Clang Static Analyzer checks on RCC Backend" + VERBATIM + ) + endif() +endfunction() |
