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