Версия 0.5.0
This commit is contained in:
parent
f163819116
commit
48c480af2e
@ -1,5 +1,5 @@
|
||||
cmake_minimum_required(VERSION 3.0)
|
||||
project(myx-cmake VERSION 0.4.8 LANGUAGES)
|
||||
project(myx-cmake VERSION 0.5.0 LANGUAGES)
|
||||
|
||||
include(GNUInstallDirs)
|
||||
file(WRITE ${CMAKE_SOURCE_DIR}/MyxCMake/MyxCMakeConfigVersion.cmake
|
||||
|
@ -5,6 +5,7 @@ function(myx_cmake_add_shared_library target)
|
||||
if(NOT BUILD_${_ctarget}_SHARED)
|
||||
return()
|
||||
endif()
|
||||
|
||||
get_target_property(__target_type ${target} TYPE)
|
||||
if(NOT __target_type STREQUAL OBJECT_LIBRARY)
|
||||
myx_cmake_message_error("MyxCMake: myx_cmake_add_shared_library needs target of type OBJECT_LIBRARY")
|
||||
@ -18,12 +19,13 @@ function(myx_cmake_add_shared_library target)
|
||||
add_library(${target}-shared SHARED $<TARGET_OBJECTS:${target}>)
|
||||
# cmake-format: off
|
||||
set_target_properties(${target}-shared
|
||||
PROPERTIES OUTPUT_NAME ${__output_name}
|
||||
PROPERTIES
|
||||
OUTPUT_NAME ${__output_name}
|
||||
VERSION ${PROJECT_VERSION}
|
||||
SOVERSION ${PROJECT_VERSION_MAJOR}
|
||||
LIBRARY_OUTPUT_DIRECTORY
|
||||
${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
|
||||
install(TARGETS ${target}-shared
|
||||
LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
|
||||
install(TARGETS
|
||||
${target}-shared
|
||||
COMPONENT main
|
||||
LIBRARY DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
# cmake-format: on
|
||||
|
@ -5,6 +5,7 @@ function(myx_cmake_add_static_library target)
|
||||
if(NOT BUILD_${_ctarget}_STATIC)
|
||||
return()
|
||||
endif()
|
||||
|
||||
get_target_property(__target_type ${target} TYPE)
|
||||
if(NOT __target_type STREQUAL OBJECT_LIBRARY)
|
||||
myx_cmake_message_error("MyxCMake: myx_cmake_add_static_library needs target of type OBJECT_LIBRARY")
|
||||
@ -18,9 +19,11 @@ function(myx_cmake_add_static_library target)
|
||||
add_library(${target}-static STATIC $<TARGET_OBJECTS:${target}>)
|
||||
# cmake-format: off
|
||||
set_target_properties(${target}-static
|
||||
PROPERTIES OUTPUT_NAME ${__output_name}
|
||||
PROPERTIES
|
||||
OUTPUT_NAME ${__output_name}
|
||||
ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
|
||||
install(TARGETS ${target}-static
|
||||
install(TARGETS
|
||||
${target}-static
|
||||
COMPONENT static
|
||||
ARCHIVE DESTINATION ${CMAKE_INSTALL_LIBDIR})
|
||||
# cmake-format: on
|
||||
|
@ -2,12 +2,12 @@ cmake_policy(PUSH)
|
||||
cmake_policy(SET CMP0057 NEW) # IN_LIST operator
|
||||
|
||||
option(MYX_CMAKE_ENABLE_WARNING_FLAGS "Enable autodetected warning flags" ON)
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON CACHE BOOL
|
||||
"Enable generation of compile_commands.json." FORCE)
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON
|
||||
CACHE BOOL "Enable generation of compile_commands.json" FORCE)
|
||||
|
||||
# Добавление конфигурации для профилирования
|
||||
if(CMAKE_CONFIGURATION_TYPES)
|
||||
if(NOT "Profile" IN_LIST CMAKE_CONFIGURATION_TYPES)
|
||||
if(NOT Profile IN_LIST CMAKE_CONFIGURATION_TYPES)
|
||||
list(APPEND CMAKE_CONFIGURATION_TYPES Profile)
|
||||
endif()
|
||||
else()
|
||||
@ -49,8 +49,8 @@ if(CMAKE_BUILD_TYPE STREQUAL Profile)
|
||||
elseif(CMAKE_CXX_COMPILER_IS_MSVC)
|
||||
message("Set options for profiling with Visual Studio C++")
|
||||
endif()
|
||||
set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL
|
||||
"Enable generation of verbose build scripts." FORCE)
|
||||
set(CMAKE_VERBOSE_MAKEFILE ON
|
||||
CACHE BOOL "Enable generation of verbose build scripts." FORCE)
|
||||
elseif(CMAKE_BUILD_TYPE STREQUAL Debug)
|
||||
# В режиме отладки подробный вывод сообщений компилятора
|
||||
if(CMAKE_CXX_COMPILER_IS_CLANG OR CMAKE_CXX_COMPILER_IS_GCC)
|
||||
@ -68,15 +68,15 @@ elseif(CMAKE_BUILD_TYPE STREQUAL Debug)
|
||||
CACHE STRING "" FORCE)
|
||||
endif()
|
||||
endif()
|
||||
set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL
|
||||
"Enable generation of verbose build scripts." FORCE)
|
||||
set(CMAKE_VERBOSE_MAKEFILE ON
|
||||
CACHE BOOL "Enable generation of verbose build scripts." FORCE)
|
||||
elseif(CMAKE_BUILD_TYPE STREQUAL Release)
|
||||
set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} ${MYX_CMAKE_DETECTED_CXX_FLAGS}"
|
||||
CACHE STRING "" FORCE)
|
||||
elseif(CMAKE_BUILD_TYPE STREQUAL None)
|
||||
# Режим None используется для статического анализа кода
|
||||
set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL
|
||||
"Enable generation of verbose build scripts." FORCE)
|
||||
set(CMAKE_VERBOSE_MAKEFILE ON
|
||||
CACHE BOOL "Enable generation of verbose build scripts." FORCE)
|
||||
endif()
|
||||
|
||||
unset(_gcc_debug_flags)
|
||||
|
@ -40,7 +40,7 @@ option(MYX_CMAKE_COMPACT_SOURCE_PACKAGE "Make compact source package" ON)
|
||||
if(MYX_CMAKE_COMPACT_SOURCE_PACKAGE)
|
||||
# Список масок для исключения из архива исходных текстов для более компактного архива
|
||||
set(CPACK_SOURCE_IGNORE_FILES
|
||||
"${CPACK_SOURCE_IGNORE_FILES}"
|
||||
${CPACK_SOURCE_IGNORE_FILES}
|
||||
"\\\\.git"
|
||||
"/\\\\.git/"
|
||||
"/\\\\.gitlab-ci/"
|
||||
|
@ -12,7 +12,7 @@ unset(CLANG_CHECK_NAMES)
|
||||
|
||||
function(myx_cmake_analyze_clang_check 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)
|
||||
list(FILTER __sources EXCLUDE REGEX "qrc_.*\\.cpp$")
|
||||
list(FILTER __sources EXCLUDE REGEX "moc_.*\\.cpp$")
|
||||
@ -24,7 +24,8 @@ function(myx_cmake_analyze_clang_check target)
|
||||
if(NOT TARGET myx-cmake-analyze-clang-check)
|
||||
add_custom_target(myx-cmake-analyze-clang-check)
|
||||
endif()
|
||||
add_custom_target(${target}-analyze-clang-check WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
add_custom_target(${target}-analyze-clang-check
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
COMMAND ${CLANG_CHECK_EXE} ${_args} -p ${CMAKE_BINARY_DIR} ${__sources})
|
||||
add_dependencies(${target}-analyze-clang-check ${target})
|
||||
add_dependencies(myx-cmake-analyze-clang-check ${target}-analyze-clang-check)
|
||||
|
@ -24,7 +24,8 @@ function(myx_cmake_analyze_clang_tidy target)
|
||||
if(NOT TARGET myx-cmake-analyze-clang-tidy)
|
||||
add_custom_target(myx-cmake-analyze-clang-tidy)
|
||||
endif()
|
||||
add_custom_target(${target}-analyze-clang-tidy WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
add_custom_target(${target}-analyze-clang-tidy
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
COMMAND ${CLANG_TIDY_EXE} ${_args} -p ${CMAKE_BINARY_DIR} ${__sources})
|
||||
add_dependencies(${target}-analyze-clang-tidy ${target})
|
||||
add_dependencies(myx-cmake-analyze-clang-tidy ${target}-analyze-clang-tidy)
|
||||
|
@ -19,20 +19,21 @@ function(myx_cmake_analyze_clazy target)
|
||||
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"
|
||||
set(_args -checks=${ARG_CHECKS}
|
||||
-extra-arg=-Wno-unknown-warning-option
|
||||
-export-fixes=clazy-fixes-file.yaml)
|
||||
|
||||
if(NOT TARGET myx-cmake-analyze-clazy)
|
||||
add_custom_target(myx-cmake-analyze-clazy)
|
||||
endif()
|
||||
if(MYX_CMAKE_CLAZY_FIX)
|
||||
add_custom_target(
|
||||
${target}-analyze-clazy
|
||||
add_custom_target(${target}-analyze-clazy
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
COMMAND ${CLAZY_EXE} ${_args} -p ${CMAKE_BINARY_DIR} ${__sources}
|
||||
COMMAND ${CLANG_APPLY_REPLACEMENTS_EXE} ${CMAKE_BINARY_DIR})
|
||||
else()
|
||||
add_custom_target(${target}-analyze-clazy WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
add_custom_target(${target}-analyze-clazy
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
COMMAND ${CLAZY_EXE} ${_args} -p ${CMAKE_BINARY_DIR} ${__sources})
|
||||
endif()
|
||||
add_dependencies(${target}-analyze-clazy ${target})
|
||||
|
@ -23,8 +23,7 @@ function(myx_cmake_code_coverage target)
|
||||
endif()
|
||||
|
||||
if(LCOV_EXE)
|
||||
add_custom_target(
|
||||
${target}-coverage
|
||||
add_custom_target(${target}-coverage
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
COMMAND ${LCOV_EXE} --test-name ${target} --output "${target}.lcov" --capture
|
||||
--no-external
|
||||
@ -35,11 +34,9 @@ function(myx_cmake_code_coverage target)
|
||||
add_dependencies(${target}-coverage ${target})
|
||||
|
||||
if(GENHTML_EXE)
|
||||
add_custom_target(
|
||||
${target}-coverage-report
|
||||
add_custom_target(${target}-coverage-report
|
||||
WORKING_DIRECTORY ${CMAKE_BINARY_DIR}
|
||||
COMMAND ${GENHTML_EXE} --output-directory "${target}-coverage-html"
|
||||
"${target}.lcov")
|
||||
COMMAND ${GENHTML_EXE} --output-directory "${target}-coverage-html" "${target}.lcov")
|
||||
add_dependencies(${target}-coverage-report ${target}-coverage)
|
||||
endif()
|
||||
endif()
|
||||
|
@ -5,8 +5,7 @@ include(MyxCMakeColoredMessages)
|
||||
include(MyxCMakeCheckPaths)
|
||||
|
||||
link_directories(${CMAKE_BINARY_DIR}/${CMAKE_INSTALL_LIBDIR})
|
||||
set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS
|
||||
${CMAKE_CXX_SOURCE_FILE_EXTENSIONS};tpp;tcc)
|
||||
set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${CMAKE_CXX_SOURCE_FILE_EXTENSIONS};tpp;tcc)
|
||||
set_property(GLOBAL PROPERTY USE_FOLDERS ON)
|
||||
|
||||
include(MyxCMakeProjectVersion)
|
||||
|
@ -37,15 +37,16 @@ endif()
|
||||
|
||||
function(myx_cmake_format_sources target)
|
||||
|
||||
if(NOT TARGET myx-cmake-format-sources)
|
||||
add_custom_target(myx-cmake-format-sources)
|
||||
endif()
|
||||
|
||||
if(UNCRUSTIFY_EXE)
|
||||
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-format-sources-check)
|
||||
add_custom_target(myx-cmake-format-sources-check)
|
||||
endif()
|
||||
|
1
debian/compat
vendored
Normal file
1
debian/compat
vendored
Normal file
@ -0,0 +1 @@
|
||||
9
|
2
debian/control
vendored
2
debian/control
vendored
@ -2,7 +2,7 @@ Source: myx-cmake
|
||||
Section: utils
|
||||
Priority: optional
|
||||
Maintainer: Andrey Astafyev <dev@246060.ru>
|
||||
Build-Depends: debhelper (>= 9), debhelper-compat (= 9), cmake
|
||||
Build-Depends: debhelper (>= 9), cmake
|
||||
Standards-Version: 4.2.0
|
||||
|
||||
Package: myx-cmake
|
||||
|
Loading…
x
Reference in New Issue
Block a user