From 54f8cfc1ccda1497f4d9bd0e5788a85fec3fbf50 Mon Sep 17 00:00:00 2001 From: Andrey Astafyev Date: Sun, 9 Oct 2022 21:15:35 +0300 Subject: [PATCH] 2.0.9 --- MyxxCMake/MyxxCMakeConfigVersion.cmake | 2 +- MyxxCMake/lib/AnalyzeClangCheck.cmake | 26 +++++++++++---------- MyxxCMake/lib/AnalyzeClangTidy.cmake | 26 +++++++++++---------- MyxxCMake/lib/AnalyzeClazy.cmake | 32 ++++++++++++++------------ MyxxCMake/lib/AnalyzePvsStudio.cmake | 27 ++++++++++++---------- MyxxCMake/lib/Coverage.cmake | 23 +++++++++--------- README.md | 6 ++--- VERSION | 2 +- debian/CMakeLists.txt | 2 +- debian/changelog | 2 +- 10 files changed, 79 insertions(+), 69 deletions(-) diff --git a/MyxxCMake/MyxxCMakeConfigVersion.cmake b/MyxxCMake/MyxxCMakeConfigVersion.cmake index f136ecc..238fbfb 100644 --- a/MyxxCMake/MyxxCMakeConfigVersion.cmake +++ b/MyxxCMake/MyxxCMakeConfigVersion.cmake @@ -1,4 +1,4 @@ -set(MYXX_CMAKE_PACKAGE_VERSION "2.0.8") +set(MYXX_CMAKE_PACKAGE_VERSION "2.0.9") if(MYXX_CMAKE_PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) set(PACKAGE_VERSION_COMPATIBLE FALSE) else() diff --git a/MyxxCMake/lib/AnalyzeClangCheck.cmake b/MyxxCMake/lib/AnalyzeClangCheck.cmake index 9b310d7..a9fad62 100644 --- a/MyxxCMake/lib/AnalyzeClangCheck.cmake +++ b/MyxxCMake/lib/AnalyzeClangCheck.cmake @@ -13,14 +13,16 @@ endif() find_program(CLANG_CHECK_EXE NAMES ${CLANG_CHECK_NAMES}) unset(CLANG_CHECK_NAMES) -function(myxx_analyze_clang_check target) +function(myxx_analyze_clang_check TARGET_NAME) + myx_skip_external_target(${TARGET_NAME}) + if(NOT CLANG_CHECK_EXE) message(STATUS "MyxCMake: Clang Check analyzer is not found") return() endif() - if(TARGET ${target}-analyze-clang-check) - message(STATUS "MyxxCMake: target ${target}-analyze-clang-check already exists") + if(TARGET ${TARGET_NAME}-analyze-clang-check) + message(STATUS "MyxxCMake: target ${TARGET_NAME}-analyze-clang-check already exists") return() endif() @@ -29,24 +31,24 @@ function(myxx_analyze_clang_check target) set(multiValueArgs EXTRA_ARGS) cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) - set(args --analyze --extra-arg=-Wno-unknown-warning-option ${EXTRA_ARGS}) - get_target_property(sources ${target} SOURCES) - foreach(iter ${sources}) + set(__cmd_args --analyze --extra-arg=-Wno-unknown-warning-option ${EXTRA_ARGS}) + get_target_property(__sources ${TARGET_NAME} SOURCES) + foreach(iter ${__sources}) string(FIND ${iter} ${CMAKE_BINARY_DIR} pos) if(pos EQUAL -1) - list(APPEND srcs ${iter}) + list(APPEND __filtered_sources ${iter}) endif() endforeach() if(ARG_FIX) - list(APPEND args "--fixit") + list(APPEND __cmd_args "--fixit") endif() if(NOT TARGET myxx-analyze-clang-check) add_custom_target(myxx-analyze-clang-check) endif() - add_custom_target(${target}-analyze-clang-check + add_custom_target(${TARGET_NAME}-analyze-clang-check WORKING_DIRECTORY ${CMAKE_BINARY_DIR} - COMMAND ${CLANG_CHECK_EXE} ${args} -p ${CMAKE_BINARY_DIR} ${srcs}) - add_dependencies(${target}-analyze-clang-check ${target}) - add_dependencies(myxx-analyze-clang-check ${target}-analyze-clang-check) + COMMAND ${CLANG_CHECK_EXE} ${__cmd_args} -p ${CMAKE_BINARY_DIR} ${__filtered_sources}) + add_dependencies(${TARGET_NAME}-analyze-clang-check ${TARGET_NAME}) + add_dependencies(myxx-analyze-clang-check ${TARGET_NAME}-analyze-clang-check) endfunction() diff --git a/MyxxCMake/lib/AnalyzeClangTidy.cmake b/MyxxCMake/lib/AnalyzeClangTidy.cmake index 6b511ff..a0abb05 100644 --- a/MyxxCMake/lib/AnalyzeClangTidy.cmake +++ b/MyxxCMake/lib/AnalyzeClangTidy.cmake @@ -13,14 +13,16 @@ endif() find_program(CLANG_TIDY_EXE NAMES ${CLANG_TIDY_NAMES}) unset(CLANG_TIDY_NAMES) -function(myxx_analyze_clang_tidy target) +function(myxx_analyze_clang_tidy TARGET_NAME) + myx_skip_external_target(${TARGET_NAME}) + if(NOT CLANG_TIDY_EXE) message(STATUS "MyxxCMake: Clang Tidy analyzer is not found") return() endif() - if(TARGET ${target}-analyze-clang-tidy) - message(STATUS "MyxxCMake: target ${target}-analyze-clang-tidy already exists") + if(TARGET ${TARGET_NAME}-analyze-clang-tidy) + message(STATUS "MyxxCMake: target ${TARGET_NAME}-analyze-clang-tidy already exists") return() endif() @@ -29,24 +31,24 @@ function(myxx_analyze_clang_tidy target) set(multiValueArgs EXTRA_ARGS) cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) - set(args -extra-arg="-Wno-unknown-warning-option ${ARG_EXTRA_ARGS}") - get_target_property(sources ${target} SOURCES) - foreach(iter ${sources}) + set(__cmd_args -extra-arg="-Wno-unknown-warning-option ${ARG_EXTRA_ARGS}") + get_target_property(__sources ${TARGET_NAME} SOURCES) + foreach(iter ${__sources}) string(FIND ${iter} ${CMAKE_BINARY_DIR} pos) if(pos EQUAL -1) - list(APPEND srcs ${iter}) + list(APPEND __filtered_sources ${iter}) endif() endforeach() if(ARG_FIX) - list(APPEND args "-fix-errors") + list(APPEND __cmd_args "-fix-errors") endif() if(NOT TARGET myxx-analyze-clang-tidy) add_custom_target(myxx-analyze-clang-tidy) endif() - add_custom_target(${target}-analyze-clang-tidy + add_custom_target(${TARGET_NAME}-analyze-clang-tidy WORKING_DIRECTORY ${CMAKE_BINARY_DIR} - COMMAND ${CLANG_TIDY_EXE} ${args} -p ${CMAKE_BINARY_DIR} ${srcs}) - add_dependencies(${target}-analyze-clang-tidy ${target}) - add_dependencies(myxx-analyze-clang-tidy ${target}-analyze-clang-tidy) + COMMAND ${CLANG_TIDY_EXE} ${__cmd_args} -p ${CMAKE_BINARY_DIR} ${__filtered_sources}) + add_dependencies(${TARGET_NAME}-analyze-clang-tidy ${TARGET_NAME}) + add_dependencies(myxx-analyze-clang-tidy ${TARGET_NAME}-analyze-clang-tidy) endfunction() diff --git a/MyxxCMake/lib/AnalyzeClazy.cmake b/MyxxCMake/lib/AnalyzeClazy.cmake index 7cf14fb..1f3d182 100644 --- a/MyxxCMake/lib/AnalyzeClazy.cmake +++ b/MyxxCMake/lib/AnalyzeClazy.cmake @@ -6,14 +6,16 @@ if(CLAZY_EXE AND CLANG_APPLY_REPLACEMENTS_EXE) option(MYXX_CMAKE_CLAZY_FIX "MyxCMake: perform fixes for Clazy" OFF) endif() -function(myxx_analyze_clazy target) +function(myxx_analyze_clazy TARGET_NAME) + myx_skip_external_target(${TARGET_NAME}) + if(NOT CLAZY_EXE) message(STATUS "MyxCMake: Clazy standalone analyzer is not found") return() endif() - if(TARGET ${target}-analyze-clazy) - message(STATUS "MyxxCMake: target ${target}-analyze-clazy already exists") + if(TARGET ${TARGET_NAME}-analyze-clazy) + message(STATUS "MyxxCMake: target ${TARGET_NAME}-analyze-clazy already exists") return() endif() @@ -30,14 +32,14 @@ function(myxx_analyze_clazy target) thread-with-slots,tr-non-literal,unneeded-cast,use-chrono-in-qtimer") endif() - set(args -checks=${ARG_CHECKS} - -extra-arg=-Wno-unknown-warning-option - -export-fixes=clazy-fixes-file.yaml) - get_target_property(sources ${target} SOURCES) - foreach(iter ${sources}) + set(__cmd_args -checks=${ARG_CHECKS} + -extra-arg=-Wno-unknown-warning-option + -export-fixes=clazy-fixes-file.yaml) + get_target_property(__sources ${TARGET_NAME} SOURCES) + foreach(iter ${__sources}) string(FIND ${iter} ${CMAKE_BINARY_DIR} pos) if(pos EQUAL -1) - list(APPEND srcs ${iter}) + list(APPEND __filtered_sources ${iter}) endif() endforeach() @@ -46,15 +48,15 @@ function(myxx_analyze_clazy target) endif() if(ARG_FIX) - add_custom_target(${target}-analyze-clazy + add_custom_target(${TARGET_NAME}-analyze-clazy WORKING_DIRECTORY ${CMAKE_BINARY_DIR} - COMMAND ${CLAZY_EXE} ${args} -p ${CMAKE_BINARY_DIR} ${srcs} + COMMAND ${CLAZY_EXE} ${__cmd_args} -p ${CMAKE_BINARY_DIR} ${__filtered_sources} COMMAND ${CLANG_APPLY_REPLACEMENTS_EXE} ${CMAKE_BINARY_DIR}) else() - add_custom_target(${target}-analyze-clazy + add_custom_target(${TARGET_NAME}-analyze-clazy WORKING_DIRECTORY ${CMAKE_BINARY_DIR} - COMMAND ${CLAZY_EXE} ${args} -p ${CMAKE_BINARY_DIR} ${srcs}) + COMMAND ${CLAZY_EXE} ${__cmd_args} -p ${CMAKE_BINARY_DIR} ${__filtered_sources}) endif() - add_dependencies(${target}-analyze-clazy ${target}) - add_dependencies(myxx-analyze-clazy ${target}-analyze-clazy) + add_dependencies(${TARGET_NAME}-analyze-clazy ${TARGET_NAME}) + add_dependencies(myxx-analyze-clazy ${TARGET_NAME}-analyze-clazy) endfunction() diff --git a/MyxxCMake/lib/AnalyzePvsStudio.cmake b/MyxxCMake/lib/AnalyzePvsStudio.cmake index a4520a0..5d096af 100644 --- a/MyxxCMake/lib/AnalyzePvsStudio.cmake +++ b/MyxxCMake/lib/AnalyzePvsStudio.cmake @@ -5,10 +5,13 @@ if(${CMAKE_VERSION} VERSION_LESS "3.17.0") set(MYXX_CMAKE_LIB_PVS_DIR_BACKPORT ${CMAKE_CURRENT_LIST_DIR}) endif() -function(myxx_analyze_pvs_studio target) +function(myxx_analyze_pvs_studio TARGET_NAME) if(${CMAKE_VERSION} VERSION_LESS "3.17.0") set(CMAKE_CURRENT_FUNCTION_LIST_DIR ${MYXX_CMAKE_LIB_PVS_DIR_BACKPORT}) endif() + + myx_skip_external_target(${TARGET_NAME}) + if(NOT PVS_STUDIO_ANALYZER_EXE) message(STATUS "MyxxCMake: pvs-studio-analyzer not found.") return() @@ -34,7 +37,7 @@ function(myxx_analyze_pvs_studio target) set(ARG_MODE "GA:1,2,3;64:1,2;OP:1,2,3;CS:1,2;OWASP:1,2") endif() - get_target_property(sources ${target} SOURCES) + get_target_property(sources ${TARGET_NAME} SOURCES) foreach(iter ${sources}) string(FIND ${iter} ${CMAKE_BINARY_DIR} pos) if(pos EQUAL -1) @@ -42,8 +45,8 @@ function(myxx_analyze_pvs_studio target) endif() endforeach() - pvs_studio_add_target(TARGET ${target}-analyze-pvs-studio - ANALYZE ${target} + pvs_studio_add_target(TARGET ${TARGET_NAME}-analyze-pvs-studio + ANALYZE ${TARGET_NAME} COMPILE_COMMANDS HIDE_HELP OUTPUT @@ -51,18 +54,18 @@ function(myxx_analyze_pvs_studio target) ARGS --exclude-path ${CMAKE_CURRENT_BINARY_DIR} ${ARG_ARGS} MODE ${ARG_MODE}) - get_target_property(target_type ${target} TYPE) - if(${target_type} STREQUAL INTERFACE_LIBRARY) - set(target_type INTERFACE) + get_target_property(__target_type ${TARGET_NAME} TYPE) + if(${__target_type} STREQUAL INTERFACE_LIBRARY) + set(__target_type INTERFACE) else() - set(target_type PRIVATE) + set(__target_type PRIVATE) endif() if(MSVC) - target_compile_options(${target} BEFORE ${target_type} /FI ${ARG_HEADER}) + target_compile_options(${TARGET_NAME} BEFORE ${__target_type} /FI ${ARG_HEADER}) else() # GCC/Clang - target_compile_options(${target} BEFORE ${target_type} -include ${ARG_HEADER}) + target_compile_options(${TARGET_NAME} BEFORE ${__target_type} -include ${ARG_HEADER}) endif() - add_dependencies(${target}-analyze-pvs-studio ${target}) - add_dependencies(myxx-analyze-pvs-studio ${target}-analyze-pvs-studio) + add_dependencies(${TARGET_NAME}-analyze-pvs-studio ${TARGET_NAME}) + add_dependencies(myxx-analyze-pvs-studio ${TARGET_NAME}-analyze-pvs-studio) endfunction() diff --git a/MyxxCMake/lib/Coverage.cmake b/MyxxCMake/lib/Coverage.cmake index 95658c8..15a6593 100644 --- a/MyxxCMake/lib/Coverage.cmake +++ b/MyxxCMake/lib/Coverage.cmake @@ -5,10 +5,11 @@ if(MYXX_CODE_COVERAGE) find_program(GENHTML_EXE NAMES genhtml) endif() -function(myxx_code_coverage target) +function(myxx_code_coverage TARGET_NAME) if(NOT MYXX_CODE_COVERAGE) return() endif() + myx_skip_external_target(${TARGET_NAME}) set(options) set(oneValueArgs) @@ -16,33 +17,33 @@ function(myxx_code_coverage target) cmake_parse_arguments(ARG "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN}) if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU") - set_property(TARGET ${target} APPEND PROPERTY + set_property(TARGET ${TARGET_NAME} APPEND PROPERTY COMPILE_OPTIONS --coverage) - set_property(TARGET ${target} APPEND PROPERTY LINK_FLAGS --coverage) + set_property(TARGET ${TARGET_NAME} APPEND PROPERTY LINK_FLAGS --coverage) endif() if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang") - set_property(TARGET ${target} APPEND PROPERTY + set_property(TARGET ${TARGET_NAME} APPEND PROPERTY COMPILE_OPTIONS -fprofile-instr-generate -fcoverage-mapping) - set_property(TARGET ${target} APPEND PROPERTY LINK_FLAGS --coverage) + set_property(TARGET ${TARGET_NAME} APPEND PROPERTY LINK_FLAGS --coverage) endif() if(LCOV_EXE) - add_custom_target(${target}-coverage + add_custom_target(${TARGET_NAME}-coverage WORKING_DIRECTORY ${CMAKE_BINARY_DIR} - COMMAND ${LCOV_EXE} --test-name ${target} --output "${target}.lcov" + COMMAND ${LCOV_EXE} --test-name ${TARGET_NAME} --output "${TARGET_NAME}.lcov" --capture --no-external --base-directory ${CMAKE_SOURCE_DIR} --directory ${CMAKE_BINARY_DIR} --exclude "/usr/\\\*" --exclude "${CMAKE_BINARY_DIR}/\\\*") - add_dependencies(${target}-coverage ${target}) + add_dependencies(${TARGET_NAME}-coverage ${TARGET_NAME}) if(GENHTML_EXE) - add_custom_target(${target}-coverage-report + add_custom_target(${TARGET_NAME}-coverage-report WORKING_DIRECTORY ${CMAKE_BINARY_DIR} - COMMAND ${GENHTML_EXE} --output-directory "${target}-coverage-html" "${target}.lcov") - add_dependencies(${target}-coverage-report ${target}-coverage) + COMMAND ${GENHTML_EXE} --output-directory "${TARGET_NAME}-coverage-html" "${TARGET_NAME}.lcov") + add_dependencies(${TARGET_NAME}-coverage-report ${TARGET_NAME}-coverage) endif() endif() endfunction() diff --git a/README.md b/README.md index 47c1ef4..f42c6c5 100644 --- a/README.md +++ b/README.md @@ -2,9 +2,9 @@ ## Установка -Скачать [пакет](../../../releases/download/2.0.8/myxx-cmake_2.0.8_all.deb) -для Debian и установить его, выполнив команду `sudo dpkg -i myxx-cmake_2.0.8_all.deb`, -или [архив](../../../releases/download/2.0.8/myxx-cmake-local-2.0.8.tar.xz) +Скачать [пакет](../../../releases/download/2.0.9/myxx-cmake_2.0.9_all.deb) +для Debian и установить его, выполнив команду `sudo dpkg -i myxx-cmake_2.0.9_all.deb`, +или [архив](../../../releases/download/2.0.9/myxx-cmake-local-2.0.9.tar.xz) и распаковать его в каталог `$HOME/.local/share/cmake`. ## Использование diff --git a/VERSION b/VERSION index 815e68d..09843e3 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -2.0.8 +2.0.9 diff --git a/debian/CMakeLists.txt b/debian/CMakeLists.txt index 224574a..91fc6b6 100644 --- a/debian/CMakeLists.txt +++ b/debian/CMakeLists.txt @@ -1,5 +1,5 @@ cmake_minimum_required(VERSION 3.6 FATAL_ERROR) -project(myxx-cmake VERSION 2.0.8 LANGUAGES) +project(myxx-cmake VERSION 2.0.9 LANGUAGES) include(GNUInstallDirs) file(WRITE ${CMAKE_SOURCE_DIR}/MyxxCMake/MyxxCMakeConfigVersion.cmake diff --git a/debian/changelog b/debian/changelog index 7ab30f5..1c29d85 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,4 +1,4 @@ -myxx-cmake (2.0.8) unstable; urgency=medium +myxx-cmake (2.0.9) unstable; urgency=medium * New version.