From 86b22151f0758311fd146ff508e7254337414bc1 Mon Sep 17 00:00:00 2001 From: manuel Date: Tue, 15 Aug 2017 17:40:26 +0200 Subject: sync with upstream --- cmake/scripts/common/ProjectMacros.cmake | 33 ++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'cmake/scripts/common/ProjectMacros.cmake') 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) endforeach() endfunction() +function(sca_add_tests) + find_program(CLANGCHECK_COMMAND clang-check) + find_program(CPPCHECK_COMMAND cppcheck) + if(CLANGCHECK_COMMAND AND CMAKE_EXPORT_COMPILE_COMMANDS) + configure_file(${PROJECT_SOURCE_DIR}/cmake/scripts/linux/clang-check-test.sh.in + ${CORE_BUILD_DIR}/clang-check-test.sh) + endif() + if(CPPCHECK_COMMAND) + configure_file(${PROJECT_SOURCE_DIR}/cmake/scripts/linux/cppcheck-test.sh.in + ${CORE_BUILD_DIR}/cppcheck-test.sh) + set(CPPCHECK_INCLUDES) + foreach(inc ${INCLUDES}) + list(APPEND CPPCHECK_INCLUDES -I ${inc}) + endforeach() + endif() + foreach(src ${sca_sources}) + file(RELATIVE_PATH name ${PROJECT_SOURCE_DIR} ${src}) + get_filename_component(EXT ${src} EXT) + if(EXT STREQUAL .cpp) + if(CLANGCHECK_COMMAND AND CMAKE_EXPORT_COMPILE_COMMANDS) + add_test(NAME clang-check+${name} + COMMAND ${CORE_BUILD_DIR}/clang-check-test.sh ${CLANGCHECK_COMMAND} ${src} + CONFIGURATIONS analyze clang-check) + endif() + if(CPPCHECK_COMMAND) + add_test(NAME cppcheck+${name} + COMMAND ${CORE_BUILD_DIR}/cppcheck-test.sh ${CPPCHECK_COMMAND} ${src} ${CPPCHECK_INCLUDES} + CONFIGURATIONS analyze cppcheck) + endif() + endif() + endforeach() +endfunction() + function(whole_archive output) if(CMAKE_CXX_COMPILER_ID STREQUAL GNU OR CMAKE_CXX_COMPILER_ID STREQUAL Clang) set(${output} -Wl,--whole-archive ${ARGN} -Wl,--no-whole-archive PARENT_SCOPE) -- cgit v1.2.3