aboutsummaryrefslogtreecommitdiff
path: root/backend/cmake/modules/RCCBackendDeveloperTools.cmake
diff options
context:
space:
mode:
authorRichard-Qin-X <richard.qin.001@gmail.com>2026-08-01 04:30:34 +0800
committerRichard-Qin-X <richard.qin.001@gmail.com>2026-08-01 04:30:34 +0800
commit81cf8b68eca2636574f3d0a9fa1cf0b428c163e9 (patch)
treef3a83496e71358123cc5f838269dc134d02b63f6 /backend/cmake/modules/RCCBackendDeveloperTools.cmake
parent72af0dedf9e18911da65b9a5c4906689e868d9fc (diff)
downloadrcc-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.cmake50
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()