Compare commits
3 Commits
2ea38c32c8
...
9df188963e
Author | SHA1 | Date | |
---|---|---|---|
9df188963e | |||
aee649f061 | |||
4821f16044 |
@@ -24,14 +24,29 @@ 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_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)
|
||||
set(CMAKE_MODULE_LINKER_FLAGS_PROFILE "${CMAKE_MODULE_LINKER_FLAGS_RELEASE} -pg" CACHE STRING "" FORCE)
|
||||
set(CMAKE_C_FLAGS_PROFILE ${CMAKE_C_FLAGS_RELEASE} -ggdb -pg -fno-omit-frame-pointer)
|
||||
list(REMOVE_DUPLICATES CMAKE_C_FLAGS_PROFILE)
|
||||
set(CMAKE_C_FLAGS_PROFILE CACHE STRING "" FORCE)
|
||||
|
||||
set(CMAKE_CXX_FLAGS_PROFILE ${CMAKE_CXX_FLAGS_RELEASE} -ggdb -pg -fno-omit-frame-pointer)
|
||||
list(REMOVE_DUPLICATES CMAKE_CXX_FLAGS_PROFILE)
|
||||
set(CMAKE_CXX_FLAGS_PROFILE CACHE STRING "" FORCE)
|
||||
|
||||
set(CMAKE_EXE_LINKER_FLAGS_PROFILE ${CMAKE_EXE_LINKER_FLAGS_RELEASE} -pg)
|
||||
list(REMOVE_DUPLICATES CMAKE_EXE_LINKER_FLAGS_PROFILE)
|
||||
set(CMAKE_EXE_LINKER_FLAGS_PROFILE CACHE STRING "" FORCE)
|
||||
|
||||
set(CMAKE_SHARED_LINKER_FLAGS_PROFILE ${CMAKE_SHARED_LINKER_FLAGS_RELEASE} -pg)
|
||||
list(REMOVE_DUPLICATES CMAKE_SHARED_LINKER_FLAGS_PROFILE)
|
||||
set(CMAKE_SHARED_LINKER_FLAGS_PROFILE CACHE STRING "" FORCE)
|
||||
|
||||
set(CMAKE_STATIC_LINKER_FLAGS_PROFILE ${CMAKE_STATIC_LINKER_FLAGS_RELEASE} -pg)
|
||||
list(REMOVE_DUPLICATES CMAKE_STATIC_LINKER_FLAGS_PROFILE)
|
||||
set(CMAKE_STATIC_LINKER_FLAGS_PROFILE CACHE STRING "" FORCE)
|
||||
|
||||
set(CMAKE_MODULE_LINKER_FLAGS_PROFILE ${CMAKE_MODULE_LINKER_FLAGS_RELEASE} -pg)
|
||||
list(REMOVE_DUPLICATES CMAKE_MODULE_LINKER_FLAGS_PROFILE)
|
||||
set(CMAKE_MODULE_LINKER_FLAGS_PROFILE CACHE STRING "" FORCE)
|
||||
elseif(CMAKE_CXX_COMPILER_IS_Intel)
|
||||
message("Set options for profiling with Intel C++")
|
||||
elseif(CMAKE_CXX_COMPILER_IS_MSVC)
|
||||
@@ -43,8 +58,13 @@ if(CMAKE_BUILD_TYPE STREQUAL Profile)
|
||||
elseif(CMAKE_BUILD_TYPE STREQUAL Debug)
|
||||
# В режиме отладки подробный вывод сообщений компилятора
|
||||
if(CMAKE_CXX_COMPILER_IS_Clang OR CMAKE_CXX_COMPILER_IS_GCC)
|
||||
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -ggdb -fno-omit-frame-pointer" CACHE STRING "" FORCE)
|
||||
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -ggdb -fno-omit-frame-pointer" CACHE STRING "" FORCE)
|
||||
set(CMAKE_C_FLAGS_DEBUG ${CMAKE_C_FLAGS_DEBUG} -ggdb -fno-omit-frame-pointer)
|
||||
list(REMOVE_DUPLICATES CMAKE_C_FLAGS_DEBUG)
|
||||
set(CMAKE_C_FLAGS_DEBUG CACHE STRING "" FORCE)
|
||||
|
||||
set(CMAKE_CXX_FLAGS_DEBUG ${CMAKE_CXX_FLAGS_DEBUG} -ggdb -fno-omit-frame-pointer)
|
||||
list(REMOVE_DUPLICATES CMAKE_CXX_FLAGS_DEBUG)
|
||||
set(CMAKE_CXX_FLAGS_DEBUG CACHE STRING "" FORCE)
|
||||
endif()
|
||||
set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "Enable generation of verbose build scripts." FORCE)
|
||||
set(CMAKE_EXPORT_COMPILE_COMMANDS ON CACHE BOOL "Enable generation of compile_commands.json." FORCE)
|
||||
|
@@ -5,13 +5,13 @@ set(CPACK_PACKAGE_VERSION ${PROJECT_VERSION})
|
||||
|
||||
# Параметры для архива исходных текстов
|
||||
if(NOT CPACK_SOURCE_GENERATOR)
|
||||
set(CPACK_SOURCE_GENERATOR "TXZ")
|
||||
set(CPACK_SOURCE_GENERATOR "TGZ")
|
||||
endif()
|
||||
set(CPACK_SOURCE_PACKAGE_FILE_NAME "${CMLIB_PROJECT_NAME_LOWER}-${CPACK_PACKAGE_VERSION}")
|
||||
|
||||
# Типы генераторов для бинарных архивов
|
||||
if(NOT CPACK_GENERATOR)
|
||||
set(CPACK_GENERATOR "TXZ" "DEB")
|
||||
set(CPACK_GENERATOR "TGZ" "DEB")
|
||||
endif()
|
||||
|
||||
# Параметры для архива собранного проекта
|
||||
@@ -54,6 +54,14 @@ endif()
|
||||
|
||||
set(CPACK_PROJECT_CONFIG_FILE ${CMAKE_CURRENT_LIST_DIR}/CMLibCPackProject.cmake)
|
||||
|
||||
option(CMLIB_CPACK_DEFAULT_SCHEME "Use packaging default scheme" ON)
|
||||
|
||||
# Правила для сборки обычных архивов
|
||||
if(CMLIB_CPACK_DEFAULT_SCHEME)
|
||||
set(CPACK_ARCHIVE_COMPONENT_INSTALL ON)
|
||||
set(CPACK_COMPONENTS_GROUPING IGNORE)
|
||||
endif()
|
||||
|
||||
# Правила для сборки пакетов для Debian
|
||||
include(CMLibCPackDeb)
|
||||
|
||||
|
@@ -16,8 +16,6 @@ if(NOT CPACK_DEB_COMPONENT_INSTALL)
|
||||
set(CPACK_DEB_COMPONENT_INSTALL ON)
|
||||
endif()
|
||||
|
||||
option(CMLIB_CPACK_DEFAULT_SCHEME "Use packaging default scheme" ON)
|
||||
|
||||
if(CMLIB_CPACK_DEFAULT_SCHEME)
|
||||
# Если имя компонента по умолчанию не определено, то устанавливается MAIN
|
||||
if(NOT CMAKE_INSTALL_DEFAULT_COMPONENT_NAME)
|
||||
|
@@ -30,6 +30,7 @@ include(CMLibCompilerFeaturesHPPGenerate)
|
||||
include(CMLibFlagRemove)
|
||||
include(CMLibCotire)
|
||||
include(CMLibBuildTypes)
|
||||
include(CMLibDebugOutput)
|
||||
include(CMLibCommonTargetProperties)
|
||||
include(CMLibCommonLibraryTarget)
|
||||
include(CMLibPkgConfig)
|
||||
|
@@ -37,6 +37,15 @@ function(common_target_properties target)
|
||||
if(_targetType STREQUAL "EXECUTABLE")
|
||||
target_compile_options(${target} PUBLIC "${Qt5Core_EXECUTABLE_COMPILE_FLAGS}")
|
||||
endif()
|
||||
if(NOT CMLIB_DEBUG_OUTPUT)
|
||||
add_definitions(-DQT_NO_DEBUG_OUTPUT)
|
||||
endif()
|
||||
if(NOT CMLIB_INFO_OUTPUT)
|
||||
add_definitions(-DQT_NO_INFO_OUTPUT)
|
||||
endif()
|
||||
if(NOT CMLIB_WARNING_OUTPUT)
|
||||
add_definitions(-DQT_NO_WARNING_OUTPUT)
|
||||
endif()
|
||||
endif()
|
||||
if(CMAKE_CXX_COMPILER_IS_GCC AND NOT APPLE)
|
||||
set_target_properties(${target} PROPERTIES LINK_FLAGS "-Wl,--no-as-needed")
|
||||
|
13
CMLibDebugOutput.cmake
Normal file
13
CMLibDebugOutput.cmake
Normal file
@@ -0,0 +1,13 @@
|
||||
# По умолчанию отключена отладочная печать
|
||||
# (если не включена явно программистом)
|
||||
option(CMLIB_DEBUG_OUTPUT "Enable debug output" OFF)
|
||||
option(CMLIB_INFO_OUTPUT "Enable info output" OFF)
|
||||
option(CMLIB_WARNING_OUTPUT "Enable warning output" OFF)
|
||||
|
||||
# Если сборка производится в режиме для отладки,
|
||||
# то включаются флаги для разрешения отладочной печати
|
||||
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||
set(CMLIB_DEBUG_OUTPUT ON CACHE BOOL "" FORCE)
|
||||
set(CMLIB_INFO_OUTPUT ON CACHE BOOL "" FORCE)
|
||||
set(CMLIB_WARNING_OUTPUT ON CACHE BOOL "" FORCE)
|
||||
endif()
|
Reference in New Issue
Block a user