Compare commits

..

No commits in common. "master" and "2.0.12" have entirely different histories.

13 changed files with 45 additions and 104 deletions

View File

@ -13,7 +13,6 @@ v:
sed -i "s/VERSION \".*\"/VERSION \"$V\"/" $(TOP_DIR)/MyxxCMake/MyxxCMakeConfigVersion.cmake sed -i "s/VERSION \".*\"/VERSION \"$V\"/" $(TOP_DIR)/MyxxCMake/MyxxCMakeConfigVersion.cmake
sed -i "s/VERSION .* LANG/VERSION $V LANG/" $(TOP_DIR)/debian/CMakeLists.txt sed -i "s/VERSION .* LANG/VERSION $V LANG/" $(TOP_DIR)/debian/CMakeLists.txt
sed -i "s/(.*)/($(V))/" $(TOP_DIR)/debian/changelog sed -i "s/(.*)/($(V))/" $(TOP_DIR)/debian/changelog
git commit -a -m "$(V)"
deb: deb:
rm -rf $(DEB_DIR) rm -rf $(DEB_DIR)
@ -28,12 +27,11 @@ pack:
tar acf $(BUILD_DIR)/myxx-cmake-local-$(V).tar.xz MyxxCMake tar acf $(BUILD_DIR)/myxx-cmake-local-$(V).tar.xz MyxxCMake
upload: upload:
# git tag -d $(V)
git tag $(V) git tag $(V)
gitea-tea r c --repo cmake/myxx -t $(V) --tag $(V) \ tea r c --repo cmake/myxx -t $(V) --tag $(V) \
-a $(BUILD_DIR)/myxx-cmake_$(V).dsc \ -a $(BUILD_DIR)/myxx-cmake_$(V).dsc \
-a $(BUILD_DIR)/myxx-cmake_$(V).tar.xz \ -a $(BUILD_DIR)/myxx-cmake_$(V).tar.xz \
-a $(BUILD_DIR)/myxx-cmake_$(V)_all.deb \ -a $(BUILD_DIR)/myxx-cmake_$(V)_all.deb \
-a $(BUILD_DIR)/myxx-cmake-local-$(V).tar.xz -a $(BUILD_DIR)/myxx-cmake-local-$(V).tar.xz
git tag -d $(V) git tag -d $(V)
git push --all git push

View File

@ -3,7 +3,7 @@ cmake_policy(SET CMP0057 NEW) # IN_LIST operator
get_filename_component(MYXX_CMAKE_SOURCE_DIR "${CMAKE_CURRENT_LIST_FILE}" DIRECTORY) get_filename_component(MYXX_CMAKE_SOURCE_DIR "${CMAKE_CURRENT_LIST_FILE}" DIRECTORY)
if(NOT MYX_CMAKE_DIR) if(NOT MyxCMake_DIR)
message(FATAL_ERROR "MyxxCMake library required MyxCMake to work") message(FATAL_ERROR "MyxxCMake library required MyxCMake to work")
endif() endif()
@ -21,7 +21,6 @@ endif()
find_package(Sanitizers REQUIRED) find_package(Sanitizers REQUIRED)
include(${MYXX_CMAKE_LIB_DIR}/WarningFlags.cmake) include(${MYXX_CMAKE_LIB_DIR}/WarningFlags.cmake)
include(${MYXX_CMAKE_LIB_DIR}/SyntaxCheck.cmake)
include(${MYXX_CMAKE_LIB_DIR}/Coverage.cmake) include(${MYXX_CMAKE_LIB_DIR}/Coverage.cmake)
include(${MYXX_CMAKE_LIB_DIR}/AnalyzeApplyReplacements.cmake) include(${MYXX_CMAKE_LIB_DIR}/AnalyzeApplyReplacements.cmake)
include(${MYXX_CMAKE_LIB_DIR}/AnalyzeClangTidy.cmake) include(${MYXX_CMAKE_LIB_DIR}/AnalyzeClangTidy.cmake)
@ -48,40 +47,23 @@ function(myxx)
get_target_property(__target_type ${__iter} TYPE) get_target_property(__target_type ${__iter} TYPE)
if((NOT ${__target_type} STREQUAL "UTILITY") AND if((NOT ${__target_type} STREQUAL "UTILITY") AND
(NOT ${__target_type} STREQUAL "INTERFACE_LIBRARY") AND
(NOT ${__iter} MATCHES ".*_shared$" ) AND (NOT ${__iter} MATCHES ".*_shared$" ) AND
(NOT ${__iter} MATCHES ".*_static$" ) (NOT ${__iter} MATCHES ".*_static$" )
) )
myxx_analyze_pvs_studio(${__iter}) message(${__target_type} ${__iter})
if(MYXX_CMAKE_CLANG_TIDY_FIX) myxx_code_coverage(${__iter})
myxx_analyze_clang_tidy(${__iter} FIX)
else()
myxx_analyze_clang_tidy(${__iter}) myxx_analyze_clang_tidy(${__iter})
endif()
if(MYXX_CMAKE_CLANG_TIDY_NAMING_FIX)
myxx_analyze_clang_tidy_naming(${__iter} FIX)
else()
myxx_analyze_clang_tidy_naming(${__iter}) myxx_analyze_clang_tidy_naming(${__iter})
endif()
if(MYXX_CMAKE_CLANG_CHECK_FIX)
myxx_analyze_clang_check(${__iter} FIX)
else()
myxx_analyze_clang_check(${__iter}) myxx_analyze_clang_check(${__iter})
endif()
if(MYXX_CMAKE_CLAZY_FIX) if(MYXX_CMAKE_CLAZY_FIX)
myxx_analyze_clazy(${__iter} FIX) myxx_analyze_clazy(${__iter} FIX)
else() else()
myxx_analyze_clazy(${__iter}) myxx_analyze_clazy(${__iter})
endif() endif()
myxx_analyze_pvs_studio(${__iter})
if(NOT ${__target_type} STREQUAL "INTERFACE_LIBRARY")
myxx_code_coverage(${__iter})
myxx_add_sanitizers(${__iter}) myxx_add_sanitizers(${__iter})
endif() endif()
endif()
endforeach() endforeach()
endfunction(myxx) endfunction(myxx)

View File

@ -1,4 +1,4 @@
set(MYXX_CMAKE_PACKAGE_VERSION "2.4.40") set(MYXX_CMAKE_PACKAGE_VERSION "2.0.12")
if(MYXX_CMAKE_PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION) if(MYXX_CMAKE_PACKAGE_VERSION VERSION_LESS PACKAGE_FIND_VERSION)
set(PACKAGE_VERSION_COMPATIBLE FALSE) set(PACKAGE_VERSION_COMPATIBLE FALSE)
else() else()

View File

@ -2,7 +2,7 @@ include_guard(GLOBAL)
if(NOT CLANG_APPLY_REPLACEMENTS_NAME) if(NOT CLANG_APPLY_REPLACEMENTS_NAME)
set(CLANG_APPLY_REPLACEMENTS_NAMES clang-apply-replacements) set(CLANG_APPLY_REPLACEMENTS_NAMES clang-apply-replacements)
foreach(V RANGE 9 19) foreach(V RANGE 9 18)
list(INSERT CLANG_APPLY_REPLACEMENTS_NAMES 0 "clang-apply-replacements-${V}") list(INSERT CLANG_APPLY_REPLACEMENTS_NAMES 0 "clang-apply-replacements-${V}")
endforeach() endforeach()
unset(V) unset(V)

View File

@ -2,7 +2,7 @@ include_guard(GLOBAL)
if(NOT CLANG_CHECK_NAME) if(NOT CLANG_CHECK_NAME)
set(CLANG_CHECK_NAMES clang-check) set(CLANG_CHECK_NAMES clang-check)
foreach(V RANGE 9 19) foreach(V RANGE 9 18)
list(INSERT CLANG_CHECK_NAMES 0 "clang-check-${V}") list(INSERT CLANG_CHECK_NAMES 0 "clang-check-${V}")
endforeach() endforeach()
unset(V) unset(V)

View File

@ -2,7 +2,7 @@ include_guard(GLOBAL)
if(NOT CLANG_TIDY_NAME) if(NOT CLANG_TIDY_NAME)
set(CLANG_TIDY_NAMES clang-tidy) set(CLANG_TIDY_NAMES clang-tidy)
foreach(V RANGE 9 19) foreach(V RANGE 9 18)
list(INSERT CLANG_TIDY_NAMES 0 "clang-tidy-${V}") list(INSERT CLANG_TIDY_NAMES 0 "clang-tidy-${V}")
endforeach() endforeach()
unset(V) unset(V)

View File

@ -39,11 +39,11 @@ function(myxx_analyze_pvs_studio TARGET_NAME)
set(ARG_MODE "GA:1,2,3;64:1,2;OP:1,2,3;CS:1,2;OWASP:1,2") set(ARG_MODE "GA:1,2,3;64:1,2;OP:1,2,3;CS:1,2;OWASP:1,2")
endif() endif()
get_target_property(target_src ${TARGET_NAME} SOURCES) get_target_property(__target_sources ${TARGET_NAME} SOURCES)
foreach(it ${target_src}) foreach(__iter ${__target_sources})
string(FIND ${it} ${CMAKE_BINARY_DIR} pos) string(FIND ${__iter} ${CMAKE_BINARY_DIR} __pos)
if(pos EQUAL -1) if(__pos EQUAL -1)
list(APPEND filtered_src ${it}) list(APPEND __filtered_sources ${__iter})
endif() endif()
endforeach() endforeach()
@ -56,16 +56,16 @@ function(myxx_analyze_pvs_studio TARGET_NAME)
ARGS --exclude-path ${CMAKE_CURRENT_BINARY_DIR} ${ARG_ARGS} ARGS --exclude-path ${CMAKE_CURRENT_BINARY_DIR} ${ARG_ARGS}
MODE ${ARG_MODE}) MODE ${ARG_MODE})
get_target_property(target_type ${TARGET_NAME} TYPE) get_target_property(__target_type ${TARGET_NAME} TYPE)
if(${target_type} STREQUAL INTERFACE_LIBRARY) if(${__target_type} STREQUAL INTERFACE_LIBRARY)
set(target_type INTERFACE) set(__target_type INTERFACE)
else() else()
set(target_type PRIVATE) set(__target_type PRIVATE)
endif() endif()
if(MSVC) if(MSVC)
target_compile_options(${TARGET_NAME} BEFORE ${target_type} /FI ${ARG_HEADER}) target_compile_options(${TARGET_NAME} BEFORE ${__target_type} /FI ${ARG_HEADER})
else() # GCC/Clang else() # GCC/Clang
target_compile_options(${TARGET_NAME} BEFORE ${target_type} -include ${ARG_HEADER}) target_compile_options(${TARGET_NAME} BEFORE ${__target_type} -include ${ARG_HEADER})
endif() endif()
add_dependencies(${TARGET_NAME}-analyze-pvs-studio ${TARGET_NAME}) add_dependencies(${TARGET_NAME}-analyze-pvs-studio ${TARGET_NAME})

View File

@ -1,18 +0,0 @@
include_guard(GLOBAL)
option(MYXX_CMAKE_SYNTAX_CHECK_ONLY "only check syntax (-fsyntax-only)" OFF)
if(MYXX_CMAKE_SYNTAX_CHECK_ONLY)
if (NOT ((CMAKE_CXX_COMPILER_ID STREQUAL "Clang") OR
(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")))
myx_message_warning("only clang and gcc support -fsyntax-only, using ${CMAKE_CXX_COMPILER_ID}")
else()
add_compile_options(-fsyntax-only)
set(CMAKE_CXX_COMPILE_OBJECT "${CMAKE_CXX_COMPILE_OBJECT} && touch <OBJECT>")
set(CMAKE_CXX_CREATE_SHARED_LIBRARY "touch <TARGET>")
set(CMAKE_CXX_CREATE_SHARED_MODULE "touch <TARGET>")
set(CMAKE_CXX_LINK_EXECUTABLE "touch <TARGET>")
set(CMAKE_CXX_ARCHIVE_CREATE "touch <TARGET>")
set(CMAKE_CXX_ARCHIVE_APPEND "touch <TARGET>")
set(CMAKE_CXX_ARCHIVE_FINISH "touch <TARGET>")
endif()
endif()

View File

@ -3,7 +3,8 @@
# 2020-2022 (c) PVS-Studio LLC # 2020-2022 (c) PVS-Studio LLC
# Version 12 # Version 12
cmake_minimum_required(VERSION 3.6) cmake_minimum_required(VERSION 3.0.0)
cmake_policy(SET CMP0051 NEW)
cmake_policy(SET CMP0054 NEW) cmake_policy(SET CMP0054 NEW)
if (PVS_STUDIO_AS_SCRIPT) if (PVS_STUDIO_AS_SCRIPT)
@ -59,7 +60,7 @@ function (pvs_studio_log TEXT)
endfunction() endfunction()
function (pvs_studio_relative_path VAR ROOT FILEPATH) function (pvs_studio_relative_path VAR ROOT FILEPATH)
if (CMAKE_HOST_WIN32) if (WIN32)
STRING(REGEX REPLACE "\\\\" "/" ROOT ${ROOT}) STRING(REGEX REPLACE "\\\\" "/" ROOT ${ROOT})
STRING(REGEX REPLACE "\\\\" "/" FILEPATH ${FILEPATH}) STRING(REGEX REPLACE "\\\\" "/" FILEPATH ${FILEPATH})
endif() endif()
@ -104,8 +105,6 @@ macro (pvs_studio_append_standard_flag FLAGS STANDARD)
if ("${STANDARD}" MATCHES "^(99|11|14|17|20)$") if ("${STANDARD}" MATCHES "^(99|11|14|17|20)$")
if ("${PVS_STUDIO_PREPROCESSOR}" MATCHES "gcc|clang") if ("${PVS_STUDIO_PREPROCESSOR}" MATCHES "gcc|clang")
list(APPEND "${FLAGS}" "-std=c++${STANDARD}") list(APPEND "${FLAGS}" "-std=c++${STANDARD}")
elseif("${PVS_STUDIO_PREPROCESSOR}" MATCHES "visualcpp")
list(APPEND "${FLAGS}" "/std:c++${STANDARD}")
endif() endif()
endif() endif()
endmacro() endmacro()
@ -185,7 +184,7 @@ function (pvs_studio_analyze_file SOURCE SOURCE_DIR BINARY_DIR)
pvs_studio_relative_path(SOURCE_RELATIVE "${SOURCE_DIR}" "${SOURCE}") pvs_studio_relative_path(SOURCE_RELATIVE "${SOURCE_DIR}" "${SOURCE}")
pvs_studio_join_path(SOURCE "${SOURCE_DIR}" "${SOURCE}") pvs_studio_join_path(SOURCE "${SOURCE_DIR}" "${SOURCE}")
set(LOG "${BINARY_DIR}/PVS-Studio/${TARGET}/${SOURCE_RELATIVE}.log") set(LOG "${BINARY_DIR}/PVS-Studio/${SOURCE_RELATIVE}.plog")
get_filename_component(LOG "${LOG}" REALPATH) get_filename_component(LOG "${LOG}" REALPATH)
get_filename_component(PARENT_DIR "${LOG}" DIRECTORY) get_filename_component(PARENT_DIR "${LOG}" DIRECTORY)
@ -344,7 +343,7 @@ function (pvs_studio_add_target)
set(PATHS) set(PATHS)
if (CMAKE_HOST_WIN32) if (WIN32)
# The registry value is only read when you do some cache operation on it. # The registry value is only read when you do some cache operation on it.
# https://stackoverflow.com/questions/1762201/reading-registry-values-with-cmake # https://stackoverflow.com/questions/1762201/reading-registry-values-with-cmake
GET_FILENAME_COMPONENT(ROOT "[HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\ProgramVerificationSystems\\PVS-Studio;installDir]" ABSOLUTE CACHE) GET_FILENAME_COMPONENT(ROOT "[HKEY_LOCAL_MACHINE\\SOFTWARE\\WOW6432Node\\ProgramVerificationSystems\\PVS-Studio;installDir]" ABSOLUTE CACHE)
@ -522,31 +521,11 @@ function (pvs_studio_add_target)
pvs_studio_relative_path(LOG_RELATIVE "${CMAKE_BINARY_DIR}" "${PVS_STUDIO_LOG}") pvs_studio_relative_path(LOG_RELATIVE "${CMAKE_BINARY_DIR}" "${PVS_STUDIO_LOG}")
if (PVS_STUDIO_PLOGS OR PVS_STUDIO_COMPILE_COMMANDS) if (PVS_STUDIO_PLOGS OR PVS_STUDIO_COMPILE_COMMANDS)
if (CMAKE_HOST_WIN32) if (WIN32)
string(REPLACE / \\ PVS_STUDIO_PLOGS "${PVS_STUDIO_PLOGS}") string(REPLACE / \\ PVS_STUDIO_PLOGS "${PVS_STUDIO_PLOGS}")
if (CMAKE_GENERATOR MATCHES "NMake")
set(COMMAND_TYPE_FILE "${CMAKE_BINARY_DIR}/PVSConcatAllLogs.cmd")
# The number of files that will be merged in one call to the type command
set(STEP_SIZE 30)
set(BEGIN 0)
list(APPEND PVS_STUDIO_PLOGS ${PVS_STUDIO_PLOGS_LOGS})
list(LENGTH PVS_STUDIO_PLOGS END)
# Creating a bat file to call the 'type' command
file(WRITE ${COMMAND_TYPE_FILE} "@echo off\nbreak > ${PVS_STUDIO_LOG}\n")
while(BEGIN LESS END)
list(SUBLIST PVS_STUDIO_PLOGS ${BEGIN} ${STEP_SIZE} NEW_LIST)
file(APPEND ${COMMAND_TYPE_FILE} "type ${NEW_LIST} >> ${PVS_STUDIO_LOG} 2>nul || cd .\n")
math(EXPR BEGIN "${BEGIN} + ${STEP_SIZE}")
endwhile()
list(APPEND COMMANDS COMMAND call ${COMMAND_TYPE_FILE})
else()
set(COMMANDS COMMAND type ${PVS_STUDIO_PLOGS} ${PVS_STUDIO_PLOGS_LOGS} > "${PVS_STUDIO_LOG}" 2>nul || cd .)
endif() endif()
if (WIN32)
set(COMMANDS COMMAND type ${PVS_STUDIO_PLOGS} ${PVS_STUDIO_PLOGS_LOGS} > "${PVS_STUDIO_LOG}" 2>nul || cd .)
else() else()
set(COMMANDS COMMAND cat ${PVS_STUDIO_PLOGS} ${PVS_STUDIO_PLOGS_LOGS} > "${PVS_STUDIO_LOG}" 2>/dev/null || true) set(COMMANDS COMMAND cat ${PVS_STUDIO_PLOGS} ${PVS_STUDIO_PLOGS_LOGS} > "${PVS_STUDIO_LOG}" 2>/dev/null || true)
endif() endif()
@ -574,7 +553,7 @@ function (pvs_studio_add_target)
set(COMMENT "Generating ${LOG_RELATIVE}: no sources found") set(COMMENT "Generating ${LOG_RELATIVE}: no sources found")
endif() endif()
if (CMAKE_HOST_WIN32) if (WIN32)
string(REPLACE / \\ PVS_STUDIO_LOG "${PVS_STUDIO_LOG}") string(REPLACE / \\ PVS_STUDIO_LOG "${PVS_STUDIO_LOG}")
endif() endif()

View File

@ -2,9 +2,9 @@
## Установка ## Установка
Скачать [пакет](../../../releases/download/2.4.40/myxx-cmake_2.4.40_all.deb) Скачать [пакет](../../../releases/download/2.0.12/myxx-cmake_2.0.12_all.deb)
для Debian и установить его, выполнив команду `sudo dpkg -i myxx-cmake_2.4.40_all.deb`, для Debian и установить его, выполнив команду `sudo dpkg -i myxx-cmake_2.0.12_all.deb`,
или [архив](../../../releases/download/2.4.40/myxx-cmake-local-2.4.40.tar.xz) или [архив](../../../releases/download/2.0.12/myxx-cmake-local-2.0.12.tar.xz)
и распаковать его в каталог `$HOME/.local/share/cmake`. и распаковать его в каталог `$HOME/.local/share/cmake`.
## Использование ## Использование

View File

@ -1 +1 @@
2.4.40 2.0.12

View File

@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.6 FATAL_ERROR) cmake_minimum_required(VERSION 3.6 FATAL_ERROR)
project(myxx-cmake VERSION 2.4.40 LANGUAGES) project(myxx-cmake VERSION 2.0.12 LANGUAGES)
include(GNUInstallDirs) include(GNUInstallDirs)
file(WRITE ${CMAKE_SOURCE_DIR}/MyxxCMake/MyxxCMakeConfigVersion.cmake file(WRITE ${CMAKE_SOURCE_DIR}/MyxxCMake/MyxxCMakeConfigVersion.cmake

2
debian/changelog vendored
View File

@ -1,4 +1,4 @@
myxx-cmake (2.4.40) unstable; urgency=medium myxx-cmake (2.0.12) unstable; urgency=medium
* New version. * New version.