Compare commits

...

5 Commits

10 changed files with 35 additions and 52 deletions

View File

@ -24,8 +24,10 @@ endif()
if(CMAKE_BUILD_TYPE STREQUAL Profile)
# Ключи компиляции для режима профилирования в зависимости от типа компилятора
if(CMAKE_CXX_COMPILER_IS_Clang OR CMAKE_CXX_COMPILER_IS_GCC)
set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_RELEASE} -ggdb -pg -fno-omit-frame-pointer" CACHE STRING "" FORCE)
set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_RELEASE} -ggdb -pg -fno-omit-frame-pointer" CACHE STRING "" FORCE)
set(CMAKE_C_FLAGS_PROFILE "${CMAKE_C_FLAGS_RELEASE} -ggdb -pg -fno-omit-frame-pointer" CACHE STRING ""
FORCE)
set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_RELEASE} -ggdb -pg -fno-omit-frame-pointer" CACHE STRING
"" FORCE)
set(CMAKE_EXE_LINKER_FLAGS_PROFILE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -pg" CACHE STRING "" FORCE)
set(CMAKE_SHARED_LINKER_FLAGS_PROFILE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} -pg" CACHE STRING "" FORCE)
set(CMAKE_STATIC_LINKER_FLAGS_PROFILE "${CMAKE_STATIC_LINKER_FLAGS_RELEASE} -pg" CACHE STRING "" FORCE)

View File

@ -40,17 +40,16 @@ if(CMLIB_COMPACT_SOURCE_PACKAGE)
# Список масок для исключения из архива исходных текстов для более компактного архива
set(CPACK_SOURCE_IGNORE_FILES
"${CPACK_SOURCE_IGNORE_FILES}"
"/\\\\.git/"
"/\\\\.gitlab-ci/"
"\\\\.clang-tidy$"
"\\\\.cmake-format$"
"\\\\.gitignore$"
"\\\\.gitattributes$"
"\\\\.gitmodules$"
"\\\\.gitlab-ci.yml$")
"/\\\\.git/"
"/\\\\.gitlab-ci/"
"\\\\.clang-tidy$"
"\\\\.cmake-format$"
"\\\\.gitignore$"
"\\\\.gitattributes$"
"\\\\.gitmodules$"
"\\\\.gitlab-ci.yml$")
endif()
set(CPACK_PROJECT_CONFIG_FILE ${CMAKE_CURRENT_LIST_DIR}/CMLibCPackProject.cmake)
# Правила для сборки пакетов для Debian

View File

@ -11,10 +11,6 @@ if(NOT CPACK_DEBIAN_PACKAGE_PRIORITY)
set(CPACK_DEBIAN_PACKAGE_PRIORITY "optional")
endif()
#if(NOT CPACK_SOURCE_IGNORE_FILES)
# message(FATAL_ERROR "Required variable CPACK_SOURCE_IGNORE_FILES is not defined")
#endif()
# По умолчанию пакет для Debian делится на компоненты
if(NOT CPACK_DEB_COMPONENT_INSTALL)
set(CPACK_DEB_COMPONENT_INSTALL ON)

View File

@ -22,9 +22,8 @@ function(add_clang_analyze_check target)
if(NOT TARGET clang-analyze-check)
add_custom_target(clang-analyze-check)
endif()
add_custom_target(
clang-analyze-check-${target} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
COMMAND ${CLANG_CHECK_EXE} ${_args} -p ${CMAKE_BINARY_DIR} ${_sources})
add_custom_target(clang-analyze-check-${target} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
COMMAND ${CLANG_CHECK_EXE} ${_args} -p ${CMAKE_BINARY_DIR} ${_sources})
add_dependencies(clang-analyze-check-${target} ${target})
add_dependencies(clang-analyze-check clang-analyze-check-${target})
else()

View File

@ -8,22 +8,22 @@ find_program(
clang-tidy-6.0
clang-tidy)
if(CLANG_TIDY_EXE)
option(CLANG_TIDY_FIX "Perform fixes for Clang-Tidy" OFF)
if(CLANG_TIDY_FIX)
list(APPEND _args "-fix")
endif()
option(CMLIB_CLANG_TIDY_FIX "Perform fixes for Clang-Tidy" OFF)
endif()
function(add_clang_tidy_check target)
set(_sources ${ARGN})
set(_args -extra-arg="-Wno-unknown-warning-option")
if(CLANG_TIDY_EXE)
if(CMLIB_CLANG_TIDY_FIX)
list(APPEND _args "-fix")
endif()
if(NOT TARGET clang-tidy-check)
add_custom_target(clang-tidy-check)
endif()
add_custom_target(
clang-tidy-check-${target} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
COMMAND ${CLANG_TIDY_EXE} -extra-arg="-Wno-unknown-warning-option" -p ${CMAKE_BINARY_DIR} ${_sources})
add_custom_target(clang-tidy-check-${target} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
COMMAND ${CLANG_TIDY_EXE} ${_args} -p ${CMAKE_BINARY_DIR} ${_sources})
add_dependencies(clang-tidy-check-${target} ${target})
add_dependencies(clang-tidy-check clang-tidy-check-${target})
else()

View File

@ -1,23 +1,21 @@
set(clazy_checks
container-inside-loop,heap-allocated-small-trivial-type,inefficient-qlist,isempty-vs-count,qt-keywords,unneeded-cast
)
function(add_clazy_check target)
set(_sources ${ARGN})
find_program(CLAZY_EXE NAMES clazy-standalone)
set(_sources ${ARGN})
set(_clazy_checks
"container-inside-loop,heap-allocated-small-trivial-type,inefficient-qlist,isempty-vs-count,qt-keywords,unneeded-cast"
)
set(_args -checks=level2,${_clazy_checks} -extra-arg="-Wno-unknown-warning-option")
if(CLAZY_EXE)
if(NOT TARGET clazy-check)
add_custom_target(clazy-check)
endif()
add_custom_target(
clazy-check-${target} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
COMMAND ${CLAZY_EXE} -checks=level2,${clazy_checks} -extra-arg="-Wno-unknown-warning-option" -p
${CMAKE_BINARY_DIR} ${_sources})
add_custom_target(clazy-check-${target} WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}
COMMAND ${CLAZY_EXE} ${_args} -p ${CMAKE_BINARY_DIR} ${_sources})
add_dependencies(clazy-check-${target} ${target})
add_dependencies(clazy-check clazy-check-${target})
else()
message(STATUS "CMLIB warning:")
message(STATUS " Clazy analyzer is not found")
message(STATUS " Clazy standalone analyzer is not found")
endif()
endfunction()

View File

@ -1,10 +1,10 @@
option(ENABLE_CODE_COVERAGE "Enable code coverage support" OFF)
option(CMLIB_ENABLE_CODE_COVERAGE "Enable code coverage support" OFF)
find_program(LCOV_EXE NAMES lcov)
find_program(GENHTML_EXE NAMES genhtml)
function(add_code_coverage target)
if(ENABLE_CODE_COVERAGE)
if(CMLIB_ENABLE_CODE_COVERAGE)
if(CMAKE_CXX_COMPILER_IS_GCC)
target_compile_options(${target} PUBLIC "--coverage")
get_target_property(LF ${target} LINK_FLAGS)

View File

@ -33,18 +33,6 @@ function(common_target_properties target)
if(_targetType STREQUAL "EXECUTABLE")
target_compile_options(${target} PUBLIC "${Qt5Core_EXECUTABLE_COMPILE_FLAGS}")
endif()
# set_target_properties(${target} PROPERTIES AUTOMOC TRUE)
# set_target_properties(${target} PROPERTIES AUTORCC TRUE)
endif()
if(TARGET Qt5::Widgets)
# set_target_properties(${target} PROPERTIES AUTOUIC TRUE)
# if(CMAKE_VERSION VERSION_LESS 3.7.99)
# target_include_directories(
# ${target}
# PUBLIC
# $<BUILD_INTERFACE:${CMAKE_CURRENT_BINARY_DIR}/${target}_autogen/include>
# )
# endif()
endif()
if(CMAKE_CXX_COMPILER_IS_GCC AND NOT APPLE)
set_target_properties(${target} PROPERTIES LINK_FLAGS "-Wl,--no-as-needed")

View File

@ -1,5 +1,7 @@
# based on https://github.com/bluescarni/yacma
option(CMLIB_WARNING_FLAGS "Enable warning flags" ON)
include(CheckCXXCompilerFlag)
macro(CHECK_ENABLE_CXX_FLAG flag)
@ -35,7 +37,7 @@ if(CMAKE_CXX_COMPILER_IS_CLANG OR CMAKE_CXX_COMPILER_IS_INTEL OR CMAKE_CXX_COMPI
set(CMAKE_CXX_STANDARD_REQUIRED YES)
set(CMAKE_CXX_EXTENSIONS YES)
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
if(CMLIB_WARNING_FLAGS AND CMAKE_BUILD_TYPE STREQUAL "Debug")
check_enable_cxx_flag(-Wall)
check_enable_cxx_flag(-Wextra)
check_enable_cxx_flag(-Wnon-virtual-dtor)

View File

@ -17,4 +17,3 @@ endif()
if(NOT CPACK_PACKAGE_DESCRIPTION_SUMMARY)
message(FATAL_ERROR "Required variable CPACK_PACKAGE_DESCRIPTION_SUMMARY is not defined")
endif()