summaryrefslogtreecommitdiffstats
path: root/cmake/scripts/common/ProjectMacros.cmake
diff options
context:
space:
mode:
Diffstat (limited to 'cmake/scripts/common/ProjectMacros.cmake')
-rw-r--r--cmake/scripts/common/ProjectMacros.cmake33
1 files changed, 33 insertions, 0 deletions
diff --git a/cmake/scripts/common/ProjectMacros.cmake b/cmake/scripts/common/ProjectMacros.cmake
index 89ecca4..641e047 100644
--- a/cmake/scripts/common/ProjectMacros.cmake
+++ b/cmake/scripts/common/ProjectMacros.cmake
@@ -75,6 +75,39 @@ function(GTEST_ADD_TESTS executable extra_args)
75 endforeach() 75 endforeach()
76endfunction() 76endfunction()
77 77
78function(sca_add_tests)
79 find_program(CLANGCHECK_COMMAND clang-check)
80 find_program(CPPCHECK_COMMAND cppcheck)
81 if(CLANGCHECK_COMMAND AND CMAKE_EXPORT_COMPILE_COMMANDS)
82 configure_file(${PROJECT_SOURCE_DIR}/cmake/scripts/linux/clang-check-test.sh.in
83 ${CORE_BUILD_DIR}/clang-check-test.sh)
84 endif()
85 if(CPPCHECK_COMMAND)
86 configure_file(${PROJECT_SOURCE_DIR}/cmake/scripts/linux/cppcheck-test.sh.in
87 ${CORE_BUILD_DIR}/cppcheck-test.sh)
88 set(CPPCHECK_INCLUDES)
89 foreach(inc ${INCLUDES})
90 list(APPEND CPPCHECK_INCLUDES -I ${inc})
91 endforeach()
92 endif()
93 foreach(src ${sca_sources})
94 file(RELATIVE_PATH name ${PROJECT_SOURCE_DIR} ${src})
95 get_filename_component(EXT ${src} EXT)
96 if(EXT STREQUAL .cpp)
97 if(CLANGCHECK_COMMAND AND CMAKE_EXPORT_COMPILE_COMMANDS)
98 add_test(NAME clang-check+${name}
99 COMMAND ${CORE_BUILD_DIR}/clang-check-test.sh ${CLANGCHECK_COMMAND} ${src}
100 CONFIGURATIONS analyze clang-check)
101 endif()
102 if(CPPCHECK_COMMAND)
103 add_test(NAME cppcheck+${name}
104 COMMAND ${CORE_BUILD_DIR}/cppcheck-test.sh ${CPPCHECK_COMMAND} ${src} ${CPPCHECK_INCLUDES}
105 CONFIGURATIONS analyze cppcheck)
106 endif()
107 endif()
108 endforeach()
109endfunction()
110
78function(whole_archive output) 111function(whole_archive output)
79 if(CMAKE_CXX_COMPILER_ID STREQUAL GNU OR CMAKE_CXX_COMPILER_ID STREQUAL Clang) 112 if(CMAKE_CXX_COMPILER_ID STREQUAL GNU OR CMAKE_CXX_COMPILER_ID STREQUAL Clang)
80 set(${output} -Wl,--whole-archive ${ARGN} -Wl,--no-whole-archive PARENT_SCOPE) 113 set(${output} -Wl,--whole-archive ${ARGN} -Wl,--no-whole-archive PARENT_SCOPE)