diff --git a/CMLibCodeAnalysisPvsStudio.cmake b/CMLibCodeAnalysisPvsStudio.cmake index 511dfbd..93d6cff 100644 --- a/CMLibCodeAnalysisPvsStudio.cmake +++ b/CMLibCodeAnalysisPvsStudio.cmake @@ -1,19 +1,18 @@ -option(USE_PVS_STUDIO "Use PVS-Studio for static analysis" OFF) +function(add_pvs_check) + list(GET ARGN 0 _target) -if(USE_PVS_STUDIO) include(PVS-Studio) find_program(PVS_STUDIO_ANALYZER_EXE NAMES pvs-studio-analyzer) - if(PVS_STUDIO_ANALYZER_EXE AND NOT TARGET pvs-global-checker) - pvs_studio_add_target(TARGET pvs-global-checker - ALL - RECURSIVE - HIDE_HELP - COMPILE_COMMANDS - OUTPUT FORMAT errorfile - MODE GA:1,2,3;64:1;OP:1,2;CS:1,2 - LOG target.err) + if(PVS_STUDIO_ANALYZER_EXE) + pvs_studio_add_target(TARGET pvs-check + DEPENDS ${_target} + COMPILE_COMMANDS + HIDE_HELP + OUTPUT FORMAT errorfile + CFG_TEXT "analysis-mode=29" + MODE GA:1,2,3;64:1;OP:1,2;CS:1,2) else() message(WARNING "PVS-Studio is not found") endif() -endif() +endfunction()