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.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()