aboutsummaryrefslogtreecommitdiff
path: root/backend/cmake/modules/RCCBackendDeveloperTools.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'backend/cmake/modules/RCCBackendDeveloperTools.cmake')
-rw-r--r--backend/cmake/modules/RCCBackendDeveloperTools.cmake72
1 files changed, 72 insertions, 0 deletions
diff --git a/backend/cmake/modules/RCCBackendDeveloperTools.cmake b/backend/cmake/modules/RCCBackendDeveloperTools.cmake
new file mode 100644
index 0000000..7ad99c2
--- /dev/null
+++ b/backend/cmake/modules/RCCBackendDeveloperTools.cmake
@@ -0,0 +1,72 @@
+# SPDX-License-Identifier: GPL-3.0-or-later
+
+function(rcc_backend_add_developer_targets)
+ get_property(FormatFiles GLOBAL PROPERTY RCC_BACKEND_FORMAT_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()
+
+ # Match LLVM's normal lint path: pass the changed backend lines to its
+ # clang-tidy-diff.py driver, which runs independent translation units in parallel.
+ add_custom_target(
+ rcc-backend-tidy
+ COMMAND
+ "${CMAKE_COMMAND}"
+ "-DRCC_TIDY_GIT=${RCC_BACKEND_GIT}"
+ "-DRCC_TIDY_SOURCE_DIR=${RCC_BACKEND_SOURCE_DIR}"
+ "-DRCC_TIDY_BINARY_DIR=${CMAKE_BINARY_DIR}"
+ "-DRCC_TIDY_BASE=${RCC_BACKEND_TIDY_BASE}"
+ "-DRCC_TIDY_JOBS=${RCC_BACKEND_TIDY_JOBS}"
+ "-DRCC_TIDY_DIFF=${RCC_BACKEND_CLANG_TIDY_DIFF}"
+ -P "${CMAKE_CURRENT_FUNCTION_LIST_DIR}/RCCBackendClangTidy.cmake"
+ COMMENT "Running incremental clang-tidy on RCC Backend"
+ USES_TERMINAL
+ VERBATIM
+ )
+
+ add_custom_target(
+ rcc-backend-tidy-all
+ COMMAND
+ "${RCC_BACKEND_RUN_CLANG_TIDY}"
+ "-p=${CMAKE_BINARY_DIR}"
+ -j "${RCC_BACKEND_TIDY_JOBS}"
+ -quiet
+ "-warnings-as-errors=*"
+ "${RCC_BACKEND_SOURCE_DIR}/.*"
+ COMMENT "Running full parallel clang-tidy audit on RCC Backend"
+ USES_TERMINAL
+ VERBATIM
+ )
+
+ add_custom_target(
+ rcc-backend-analyze
+ COMMAND
+ "${RCC_BACKEND_RUN_CLANG_TIDY}"
+ "-p=${CMAKE_BINARY_DIR}"
+ -j "${RCC_BACKEND_TIDY_JOBS}"
+ -quiet
+ "-checks=-*,clang-analyzer-*"
+ "-warnings-as-errors=*"
+ "${RCC_BACKEND_SOURCE_DIR}/.*"
+ COMMENT "Running full parallel Clang Static Analyzer audit on RCC Backend"
+ USES_TERMINAL
+ VERBATIM
+ )
+endfunction()