diff options
Diffstat (limited to 'cmake/scripts/common/ProjectMacros.cmake')
| -rw-r--r-- | cmake/scripts/common/ProjectMacros.cmake | 33 |
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() |
| 76 | endfunction() | 76 | endfunction() |
| 77 | 77 | ||
| 78 | function(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() | ||
| 109 | endfunction() | ||
| 110 | |||
| 78 | function(whole_archive output) | 111 | function(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) |
