2022-10-05 14:12:28 +00:00
|
|
|
cmake_policy(PUSH)
|
|
|
|
cmake_policy(SET CMP0057 NEW) # IN_LIST operator
|
|
|
|
|
|
|
|
get_filename_component(MYXX_CMAKE_SOURCE_DIR "${CMAKE_CURRENT_LIST_FILE}" DIRECTORY)
|
|
|
|
|
|
|
|
if(NOT MyxCMake_DIR)
|
|
|
|
message(FATAL_ERROR "MyxxCMake library required MyxCMake to work")
|
|
|
|
endif()
|
|
|
|
|
2022-10-06 04:57:47 +00:00
|
|
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON)
|
2022-10-05 14:12:28 +00:00
|
|
|
set(MYXX_CMAKE_LIB_DIR "${MYXX_CMAKE_SOURCE_DIR}/lib" CACHE PATH "")
|
|
|
|
|
2022-10-06 04:57:47 +00:00
|
|
|
include(${MYXX_CMAKE_LIB_DIR}/Coverage.cmake)
|
|
|
|
include(${MYXX_CMAKE_LIB_DIR}/AnalyzeApplyReplacements.cmake)
|
|
|
|
include(${MYXX_CMAKE_LIB_DIR}/AnalyzeClangTidy.cmake)
|
|
|
|
include(${MYXX_CMAKE_LIB_DIR}/AnalyzeClangCheck.cmake)
|
|
|
|
include(${MYXX_CMAKE_LIB_DIR}/AnalyzeClazy.cmake)
|
|
|
|
|
|
|
|
include(${MYXX_CMAKE_SOURCE_DIR}/sanitizers/FindSanitizers.cmake)
|
|
|
|
include(${MYXX_CMAKE_SOURCE_DIR}/pvs-studio/PVS-Studio.cmake)
|
|
|
|
include(${MYXX_CMAKE_LIB_DIR}/AnalyzePvsStudio.cmake)
|
2022-10-05 14:12:28 +00:00
|
|
|
|
|
|
|
function(myxx)
|
|
|
|
get_property(targets DIRECTORY ${CMAKE_CURRENT_BINARY_DIR} PROPERTY BUILDSYSTEM_TARGETS)
|
|
|
|
foreach(iter ${targets})
|
|
|
|
|
|
|
|
get_target_property(target_type ${iter} TYPE)
|
|
|
|
if(NOT ${target_type} STREQUAL "UTILITY")
|
2022-10-06 04:57:47 +00:00
|
|
|
myxx_code_coverage(${iter})
|
2022-10-05 14:12:28 +00:00
|
|
|
myxx_analyze_clang_tidy(${iter})
|
2022-10-06 04:57:47 +00:00
|
|
|
myxx_analyze_clang_check(${iter})
|
|
|
|
myxx_analyze_clazy(${iter})
|
|
|
|
myxx_analyze_pvs_studio(${iter})
|
2022-10-05 14:12:28 +00:00
|
|
|
endif()
|
|
|
|
endforeach()
|
|
|
|
endfunction(myxx)
|
|
|
|
|
|
|
|
cmake_policy(POP)
|