Compare commits
No commits in common. "dcafdee7464e8dc3b38954037f01ed5798c818f4" and "a747777174d4e69ce7bcbc04cfe7227f26fecc44" have entirely different histories.
dcafdee746
...
a747777174
@ -11,13 +11,13 @@ unset(V)
|
|||||||
unset(CLANG_CHECK_NAMES)
|
unset(CLANG_CHECK_NAMES)
|
||||||
|
|
||||||
function(myx_cmake_clang_check_analyze target)
|
function(myx_cmake_clang_check_analyze target)
|
||||||
if(CLANG_CHECK_EXE)
|
set(_args --analyze --extra-arg="-Wno-unknown-warning-option")
|
||||||
set(_args --analyze --extra-arg="-Wno-unknown-warning-option")
|
get_target_property(__sources ${target} SOURCES)
|
||||||
get_target_property(__sources ${target} SOURCES)
|
list(FILTER __sources EXCLUDE REGEX "qrc_.*\\.cpp$")
|
||||||
list(FILTER __sources EXCLUDE REGEX "qrc_.*\\.cpp$")
|
list(FILTER __sources EXCLUDE REGEX "moc_.*\\.cpp$")
|
||||||
list(FILTER __sources EXCLUDE REGEX "moc_.*\\.cpp$")
|
list(FILTER __sources EXCLUDE REGEX "ui_.*\\.h$")
|
||||||
list(FILTER __sources EXCLUDE REGEX "ui_.*\\.h$")
|
|
||||||
|
|
||||||
|
if(CLANG_CHECK_EXE)
|
||||||
if(MYX_CMAKE_CLANG_ANALYZE_FIX)
|
if(MYX_CMAKE_CLANG_ANALYZE_FIX)
|
||||||
list(APPEND _args "--fixit")
|
list(APPEND _args "--fixit")
|
||||||
endif()
|
endif()
|
||||||
|
@ -11,13 +11,13 @@ unset(V)
|
|||||||
unset(CLANG_TIDY_NAMES)
|
unset(CLANG_TIDY_NAMES)
|
||||||
|
|
||||||
function(myx_cmake_clang_tidy_analyze target)
|
function(myx_cmake_clang_tidy_analyze target)
|
||||||
if(CLANG_TIDY_EXE)
|
set(_args -extra-arg="-Wno-unknown-warning-option")
|
||||||
set(_args -extra-arg="-Wno-unknown-warning-option")
|
get_target_property(__sources ${target} SOURCES)
|
||||||
get_target_property(__sources ${target} SOURCES)
|
list(FILTER __sources EXCLUDE REGEX "qrc_.*\\.cpp$")
|
||||||
list(FILTER __sources EXCLUDE REGEX "qrc_.*\\.cpp$")
|
list(FILTER __sources EXCLUDE REGEX "moc_.*\\.cpp$")
|
||||||
list(FILTER __sources EXCLUDE REGEX "moc_.*\\.cpp$")
|
list(FILTER __sources EXCLUDE REGEX "ui_.*\\.h$")
|
||||||
list(FILTER __sources EXCLUDE REGEX "ui_.*\\.h$")
|
|
||||||
|
|
||||||
|
if(CLANG_TIDY_EXE)
|
||||||
if(MYX_CMAKE_CLANG_TIDY_FIX)
|
if(MYX_CMAKE_CLANG_TIDY_FIX)
|
||||||
list(APPEND _args "--fix")
|
list(APPEND _args "--fix")
|
||||||
endif()
|
endif()
|
||||||
|
@ -17,23 +17,25 @@ if(CLAZY_EXE AND CLANG_APPLY_REPLACEMENTS_EXE)
|
|||||||
endif()
|
endif()
|
||||||
|
|
||||||
function(myx_cmake_clazy_analyze target)
|
function(myx_cmake_clazy_analyze target)
|
||||||
|
set(options)
|
||||||
|
set(oneValueArgs CHECKS)
|
||||||
|
set(multiValueArgs)
|
||||||
|
|
||||||
|
cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||||
|
|
||||||
|
if(NOT ARG_CHECKS)
|
||||||
|
set(ARG_CHECKS "level2,container-inside-loop,heap-allocated-small-trivial-type,inefficient-qlist,isempty-vs-count,qt-keywords,unneeded-cast"
|
||||||
|
)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
get_target_property(__sources ${target} SOURCES)
|
||||||
|
list(FILTER __sources EXCLUDE REGEX "qrc_.*\\.cpp$")
|
||||||
|
list(FILTER __sources EXCLUDE REGEX "moc_.*\\.cpp$")
|
||||||
|
list(FILTER __sources EXCLUDE REGEX "ui_.*\\.h$")
|
||||||
|
set(_args -checks=${ARG_CHECKS} -extra-arg="-Wno-unknown-warning-option"
|
||||||
|
-export-fixes=clazy-fixes-file.yaml)
|
||||||
|
|
||||||
if(CLAZY_EXE)
|
if(CLAZY_EXE)
|
||||||
set(options)
|
|
||||||
set(oneValueArgs CHECKS)
|
|
||||||
set(multiValueArgs)
|
|
||||||
cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
|
||||||
|
|
||||||
if(NOT ARG_CHECKS)
|
|
||||||
set(ARG_CHECKS "level2,container-inside-loop,heap-allocated-small-trivial-type,inefficient-qlist,isempty-vs-count,qt-keywords,unneeded-cast")
|
|
||||||
endif()
|
|
||||||
|
|
||||||
get_target_property(__sources ${target} SOURCES)
|
|
||||||
list(FILTER __sources EXCLUDE REGEX "qrc_.*\\.cpp$")
|
|
||||||
list(FILTER __sources EXCLUDE REGEX "moc_.*\\.cpp$")
|
|
||||||
list(FILTER __sources EXCLUDE REGEX "ui_.*\\.h$")
|
|
||||||
set(_args -checks=${ARG_CHECKS} -extra-arg="-Wno-unknown-warning-option"
|
|
||||||
-export-fixes=clazy-fixes-file.yaml)
|
|
||||||
|
|
||||||
if(NOT TARGET myx-cmake-clazy-analyze)
|
if(NOT TARGET myx-cmake-clazy-analyze)
|
||||||
add_custom_target(myx-cmake-clazy-analyze)
|
add_custom_target(myx-cmake-clazy-analyze)
|
||||||
endif()
|
endif()
|
||||||
|
@ -1,31 +1,51 @@
|
|||||||
if(CMAKE_EXPORT_COMPILE_COMMANDS)
|
if(CMAKE_EXPORT_COMPILE_COMMANDS)
|
||||||
|
find_program(PVS_STUDIO_ANALYZER_EXE NAMES pvs-studio-analyzer)
|
||||||
include(PVS-Studio)
|
include(PVS-Studio)
|
||||||
else()
|
else()
|
||||||
message(STATUS "MyxCMake: CMAKE_EXPORT_COMPILE_COMMANDS is not set. PVS checks will be disabled.")
|
message(STATUS "MyxCMake: CMAKE_EXPORT_COMPILE_COMMANDS is not set. PVS checks will be disabled.")
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
function(myx_cmake_pvs_studio_analyze target)
|
function(myx_cmake_pvs_studio_analyze target)
|
||||||
set(options)
|
if(PVS_STUDIO_ANALYZER_EXE)
|
||||||
set(oneValueArgs CHECKS)
|
if(NOT TARGET myx-cmake-pvs-studio-analyze)
|
||||||
set(multiValueArgs)
|
add_custom_target(myx-cmake-pvs-studio-analyze)
|
||||||
if(NOT TARGET myx-cmake-pvs-studio-analyze)
|
endif()
|
||||||
set(PVS_STUDIO_HEADER "${CMAKE_BINARY_DIR}/include/myx_cmake_pvs_studio_header.hpp")
|
|
||||||
|
set(PVS_STUDIO_CONFIG "${CMAKE_BINARY_DIR}/PVS-Studio-${target}.cfg")
|
||||||
|
set(PVS_STUDIO_CONFIG_COMMAND "${CMAKE_COMMAND}" -E echo "sourcetree-root=${CMAKE_SOURCE_DIR}" > "${PVS_STUDIO_CONFIG}")
|
||||||
|
|
||||||
|
add_custom_command(OUTPUT "${PVS_STUDIO_CONFIG}"
|
||||||
|
COMMAND ${PVS_STUDIO_CONFIG_COMMAND}
|
||||||
|
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
|
||||||
|
COMMENT "Generating PVS-Studio.cfg")
|
||||||
|
|
||||||
|
set(PVS_STUDIO_HEADER "${CMAKE_BINARY_DIR}/include/pvs_studio_suppression_${target}.hpp")
|
||||||
file(WRITE ${PVS_STUDIO_HEADER}
|
file(WRITE ${PVS_STUDIO_HEADER}
|
||||||
"#ifndef MYX_CMAKE_PVS_STUDIO_HEADER_HPP_\n"
|
"#ifndef PVS_STUDIO_HPP_\n"
|
||||||
"#define MYX_CMAKE_PVS_STUDIO_HEADER_HPP_\n"
|
"#define PVS_STUDIO_HPP_\n"
|
||||||
"#pragma once\n"
|
"#pragma once\n"
|
||||||
"//-V813_MINSIZE=33\n"
|
"//-V813_MINSIZE=33\n"
|
||||||
"#endif // MYX_CMAKE_PVS_STUDIO_HEADER_HPP_\n")
|
"#endif // PVS_STUDIO_HPP_\n"
|
||||||
|
)
|
||||||
|
|
||||||
pvs_studio_add_target(TARGET myx-cmake-pvs-studio-analyze
|
get_target_property(__sources ${target} SOURCES)
|
||||||
|
list(FILTER __sources EXCLUDE REGEX "qrc_.*\\.cpp$")
|
||||||
|
list(FILTER __sources EXCLUDE REGEX "moc_.*\\.cpp$")
|
||||||
|
list(FILTER __sources EXCLUDE REGEX "ui_.*\\.h$")
|
||||||
|
|
||||||
|
pvs_studio_add_target(
|
||||||
|
TARGET ${target}-pvs-studio-analyze
|
||||||
CONFIG ${PVS_STUDIO_CONFIG}
|
CONFIG ${PVS_STUDIO_CONFIG}
|
||||||
DEPENDS ${PVS_STUDIO_CONFIG}
|
DEPENDS ${PVS_STUDIO_CONFIG}
|
||||||
COMPILE_COMMANDS
|
LOG "${CMAKE_BINARY_DIR}/PVS-Studio-${target}.log"
|
||||||
HIDE_HELP
|
SOURCES ${__sources}
|
||||||
|
COMPILE_COMMANDS HIDE_HELP
|
||||||
OUTPUT FORMAT errorfile
|
OUTPUT FORMAT errorfile
|
||||||
ARGS --exclude-path ${CMAKE_CURRENT_BINARY_DIR}/${target}_autogen
|
ARGS --exclude-path ${CMAKE_CURRENT_BINARY_DIR}/${target}_autogen
|
||||||
MODE GA:1,2,3;64:1;OP:1,2;CS:1,2)
|
MODE GA:1,2,3;64:1;OP:1,2;CS:1,2)
|
||||||
|
|
||||||
|
add_dependencies(myx-cmake-pvs-studio-analyze ${target}-pvs-studio-analyze)
|
||||||
|
|
||||||
get_target_property(__target_type ${target} TYPE)
|
get_target_property(__target_type ${target} TYPE)
|
||||||
if(${__target_type} STREQUAL INTERFACE_LIBRARY)
|
if(${__target_type} STREQUAL INTERFACE_LIBRARY)
|
||||||
set(__target_type INTERFACE)
|
set(__target_type INTERFACE)
|
||||||
@ -37,11 +57,7 @@ function(myx_cmake_pvs_studio_analyze target)
|
|||||||
else() # GCC/Clang
|
else() # GCC/Clang
|
||||||
target_compile_options(${target} BEFORE ${__target_type} -include ${PVS_STUDIO_HEADER})
|
target_compile_options(${target} BEFORE ${__target_type} -include ${PVS_STUDIO_HEADER})
|
||||||
endif()
|
endif()
|
||||||
endif()
|
else()
|
||||||
|
message(STATUS "MyxCMake: PVS-Studio analyzer is not found")
|
||||||
if(EXISTS PVS_STUDIO_BIN_PATH AND EXISTS PVS_STUDIO_CONVERTER_PATH AND TARGET myx-cmake-pvs-studio-analyze)
|
|
||||||
add_dependencies(myx-cmake-pvs-studio-analyze ${target})
|
|
||||||
get_target_property(__target_source_dir "${target}" SOURCE_DIR)
|
|
||||||
pvs_studio_analyze_target("${target}" "${__target_source_dir}")
|
|
||||||
endif()
|
endif()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
@ -1,24 +1,24 @@
|
|||||||
function(myx_cmake_format_sources target)
|
function(myx_cmake_format_sources target)
|
||||||
|
|
||||||
|
get_target_property(__sources ${target} SOURCES)
|
||||||
|
list(FILTER __sources EXCLUDE REGEX "qrc_.*\\.cpp$")
|
||||||
|
list(FILTER __sources EXCLUDE REGEX "moc_.*\\.cpp$")
|
||||||
|
list(FILTER __sources EXCLUDE REGEX "ui_.*\\.h$")
|
||||||
|
|
||||||
|
if(NOT TARGET myx-cmake-format-sources)
|
||||||
|
add_custom_target(myx-cmake-format-sources)
|
||||||
|
endif()
|
||||||
|
if(NOT TARGET myx-cmake-check-format-sources)
|
||||||
|
add_custom_target(myx-cmake-check-format-sources)
|
||||||
|
endif()
|
||||||
|
if(NOT TARGET myx-cmake-add-doxygen-comments)
|
||||||
|
add_custom_target(myx-cmake-add-doxygen-comments)
|
||||||
|
endif()
|
||||||
|
|
||||||
find_program(UNCRUSTIFY_EXE NAMES uncrustify)
|
find_program(UNCRUSTIFY_EXE NAMES uncrustify)
|
||||||
if(UNCRUSTIFY_EXE)
|
if(UNCRUSTIFY_EXE)
|
||||||
get_target_property(__sources ${target} SOURCES)
|
if(EXISTS ${CMAKE_SOURCE_DIR}/files/etc/uncrustify.cfg)
|
||||||
list(FILTER __sources EXCLUDE REGEX "qrc_.*\\.cpp$")
|
list(APPEND UNCRUSTIFY_OPTS -c ${CMAKE_SOURCE_DIR}/files/etc/uncrustify.cfg)
|
||||||
list(FILTER __sources EXCLUDE REGEX "moc_.*\\.cpp$")
|
|
||||||
list(FILTER __sources EXCLUDE REGEX "ui_.*\\.h$")
|
|
||||||
|
|
||||||
if(NOT TARGET myx-cmake-format-sources)
|
|
||||||
add_custom_target(myx-cmake-format-sources)
|
|
||||||
endif()
|
|
||||||
if(NOT TARGET myx-cmake-check-format-sources)
|
|
||||||
add_custom_target(myx-cmake-check-format-sources)
|
|
||||||
endif()
|
|
||||||
if(NOT TARGET myx-cmake-add-doxygen-comments)
|
|
||||||
add_custom_target(myx-cmake-add-doxygen-comments)
|
|
||||||
endif()
|
|
||||||
|
|
||||||
if(EXISTS ${CMAKE_SOURCE_DIR}/.uncrustify.cfg)
|
|
||||||
list(APPEND UNCRUSTIFY_OPTS -c ${CMAKE_SOURCE_DIR}/.uncrustify.cfg)
|
|
||||||
endif()
|
endif()
|
||||||
# cmake-format: off
|
# cmake-format: off
|
||||||
add_custom_target(${target}-check-format-sources-uncrustify
|
add_custom_target(${target}-check-format-sources-uncrustify
|
||||||
|
Loading…
Reference in New Issue
Block a user