Compare commits
	
		
			7 Commits
		
	
	
		
			4768c5efc7
			...
			0b69005b7a
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 0b69005b7a | |||
| cebdb82bfa | |||
| b5ed0303a1 | |||
| 3e8511da71 | |||
| 3c0fd214b9 | |||
| 8730aba9bf | |||
| f168386296 | 
@@ -1,3 +1,5 @@
 | 
			
		||||
#!/usr/bin/env python3
 | 
			
		||||
 | 
			
		||||
# ----------------------------------
 | 
			
		||||
# Options affecting listfile parsing
 | 
			
		||||
# ----------------------------------
 | 
			
		||||
@@ -5,15 +7,21 @@ with section("parse"):
 | 
			
		||||
 | 
			
		||||
  # Specify structure for custom cmake functions
 | 
			
		||||
  additional_commands = {
 | 
			
		||||
    'add_doxygen': { 'flags' : [],
 | 
			
		||||
                            'kwargs': { 'LATEX': 1,
 | 
			
		||||
                                        'HTML': 1,
 | 
			
		||||
                                        'COMMENT': 1}},
 | 
			
		||||
    'add_breathe': { 'flags' : [],
 | 
			
		||||
                            'kwargs': { 'COMMENT': 1}},
 | 
			
		||||
    'add_common_library': { 'flags' : [],
 | 
			
		||||
                            'kwargs': { 'OUTPUT_NAME': '*',
 | 
			
		||||
                            'kwargs': { 'OUTPUT_NAME': 1,
 | 
			
		||||
                                        'SOURCES': '*',
 | 
			
		||||
                                        'TARGET': '1'}},
 | 
			
		||||
                                        'TARGET': 1}},
 | 
			
		||||
    'qt5_translation': { 'flags' : [],
 | 
			
		||||
                         'kwargs': { 'TS_DIR': '1',
 | 
			
		||||
                         'kwargs': { 'OUTPUT_DIR': 1,
 | 
			
		||||
                                     'LANGUAGES': '*',
 | 
			
		||||
                                     'SOURCES': '*',
 | 
			
		||||
                                     'TARGET': '1'}},
 | 
			
		||||
                                     'BASE_NAME': 1}},
 | 
			
		||||
    'pvs_studio_add_target': { 'flags' : [ 'COMPILE_COMMANDS',
 | 
			
		||||
                                           'OUTPUT',
 | 
			
		||||
                                           'HIDE_HELP'],
 | 
			
		||||
@@ -22,7 +30,7 @@ with section("parse"):
 | 
			
		||||
                                           'DEPENDS': '*',
 | 
			
		||||
                                           'FORMAT': '*',
 | 
			
		||||
                                           'MODE': '*',
 | 
			
		||||
                                           'TARGET': '*'}},
 | 
			
		||||
                                           'TARGET': 1}},
 | 
			
		||||
    'write_compiler_detection_header': { 'flags' : [],
 | 
			
		||||
                                         'kwargs': { 'COMPILERS': '*',
 | 
			
		||||
                                                     'FEATURES': '*',
 | 
			
		||||
@@ -48,11 +56,11 @@ with section("format"):
 | 
			
		||||
 | 
			
		||||
  # If an argument group contains more than this many sub-groups (parg or kwarg
 | 
			
		||||
  # groups) then force it to a vertical layout.
 | 
			
		||||
  max_subgroups_hwrap = 2
 | 
			
		||||
  max_subgroups_hwrap = 3
 | 
			
		||||
 | 
			
		||||
  # If a positional argument group contains more than this many arguments, then
 | 
			
		||||
  # force it to a vertical layout.
 | 
			
		||||
  max_pargs_hwrap = 6
 | 
			
		||||
  max_pargs_hwrap = 5
 | 
			
		||||
 | 
			
		||||
  # If a cmdline positional group consumes more than this many lines without
 | 
			
		||||
  # nesting, then invalidate the layout (and nest)
 | 
			
		||||
 
 | 
			
		||||
@@ -24,37 +24,34 @@ 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" CACHE STRING "")
 | 
			
		||||
    set(CMAKE_CXX_FLAGS_PROFILE "${CMAKE_CXX_FLAGS_RELEASE} -ggdb -pg" CACHE STRING "")
 | 
			
		||||
    set(CMAKE_EXE_LINKER_FLAGS_PROFILE "${CMAKE_EXE_LINKER_FLAGS_RELEASE} -pg" CACHE STRING "")
 | 
			
		||||
    set(CMAKE_SHARED_LINKER_FLAGS_PROFILE "${CMAKE_SHARED_LINKER_FLAGS_RELEASE} -pg" CACHE STRING "")
 | 
			
		||||
    set(CMAKE_STATIC_LINKER_FLAGS_PROFILE "${CMAKE_STATIC_LINKER_FLAGS_RELEASE} -pg" CACHE STRING "")
 | 
			
		||||
    set(CMAKE_MODULE_LINKER_FLAGS_PROFILE "${CMAKE_MODULE_LINKER_FLAGS_RELEASE} -pg" CACHE STRING "")
 | 
			
		||||
    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)
 | 
			
		||||
  elseif(CMAKE_CXX_COMPILER_IS_Intel)
 | 
			
		||||
    message("Set options for profiling with Intel C++")
 | 
			
		||||
  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_EXPORT_COMPILE_COMMANDS ON CACHE BOOL "Enable generation of compile_commands.json." FORCE)
 | 
			
		||||
  set(PROFILE 1)
 | 
			
		||||
elseif(CMAKE_BUILD_TYPE STREQUAL Debug)
 | 
			
		||||
  # В режиме отладки подробный вывод сообщений компилятора
 | 
			
		||||
  if(CMAKE_CXX_COMPILER_IS_Clang OR CMAKE_CXX_COMPILER_IS_GCC)
 | 
			
		||||
    string(APPEND CMAKE_C_FLAGS_DEBUG " -ggdb")
 | 
			
		||||
    string(APPEND CMAKE_CXX_FLAGS_DEBUG " -ggdb")
 | 
			
		||||
    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)
 | 
			
		||||
  endif()
 | 
			
		||||
  set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "Enable verbose build file generation." FORCE)
 | 
			
		||||
  set(CMAKE_EXPORT_COMPILE_COMMANDS ON CACHE BOOL "Enable output of compile commands during generation."
 | 
			
		||||
                                             FORCE)
 | 
			
		||||
  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)
 | 
			
		||||
  set(DEBUG 1)
 | 
			
		||||
elseif(CMAKE_BUILD_TYPE STREQUAL Release)
 | 
			
		||||
  set(RELEASE 1)
 | 
			
		||||
elseif(CMAKE_BUILD_TYPE STREQUAL None)
 | 
			
		||||
  # Режим None используется для статического анализа кода
 | 
			
		||||
  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)
 | 
			
		||||
  set(ANALYSIS 1)
 | 
			
		||||
  set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "Enable verbose build file generation." FORCE)
 | 
			
		||||
  set(CMAKE_EXPORT_COMPILE_COMMANDS ON CACHE BOOL "Enable output of compile commands during generation."
 | 
			
		||||
                                             FORCE)
 | 
			
		||||
  #  set(USE_CLANG_TIDY ON CACHE BOOL "Use clang-tidy")
 | 
			
		||||
  #  set(USE_CPPCHECK ON CACHE BOOL "Use cppcheck")
 | 
			
		||||
  set(USE_PVS_STUDIO ON CACHE BOOL "Use PVS-Studio")
 | 
			
		||||
endif()
 | 
			
		||||
 
 | 
			
		||||
@@ -45,5 +45,6 @@ include(CMLibQtTranslation)
 | 
			
		||||
include(CMLibToday)
 | 
			
		||||
include(CMLibAuxilarySymlinks)
 | 
			
		||||
include(CMLibConfigHPPGenerate)
 | 
			
		||||
include(CMLibNinjaGeneratorHelper)
 | 
			
		||||
include(CMLibCPack)
 | 
			
		||||
include(CMLibUninstall)
 | 
			
		||||
 
 | 
			
		||||
@@ -11,7 +11,7 @@ function(common_target_properties target)
 | 
			
		||||
  get_target_property(__sources ${target} SOURCES)
 | 
			
		||||
  foreach(__src IN LISTS __sources)
 | 
			
		||||
    string(REGEX MATCH ".*/qrc_.*\\.cpp$" __qrc ${__src})
 | 
			
		||||
    if (__qrc)
 | 
			
		||||
    if(__qrc)
 | 
			
		||||
      set_property(SOURCE ${__qrc} PROPERTY COTIRE_EXCLUDED ON)
 | 
			
		||||
    endif()
 | 
			
		||||
  endforeach()
 | 
			
		||||
 
 | 
			
		||||
@@ -54,8 +54,8 @@ function(add_breathe target)
 | 
			
		||||
      configure_file(${INDEX_MD_FILE} ${WORK_DIR}/index.md @ONLY)
 | 
			
		||||
      file(GLOB MD_FILES ${CMAKE_SOURCE_DIR}/doc/breathe/*.md)
 | 
			
		||||
      if(MD_FILES)
 | 
			
		||||
        add_custom_command(TARGET ${target} PRE_BUILD
 | 
			
		||||
                           COMMAND ${CMAKE_COMMAND} -E copy_if_different ${MD_FILES} ${WORK_DIR})
 | 
			
		||||
        add_custom_command(TARGET ${target} PRE_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different
 | 
			
		||||
                                                              ${MD_FILES} ${WORK_DIR})
 | 
			
		||||
      endif()
 | 
			
		||||
    endif()
 | 
			
		||||
 | 
			
		||||
@@ -64,13 +64,12 @@ function(add_breathe target)
 | 
			
		||||
      configure_file(${INDEX_RST_FILE} ${WORK_DIR}/index.rst @ONLY)
 | 
			
		||||
      file(GLOB RST_FILES ${CMAKE_SOURCE_DIR}/doc/breathe/*.rst)
 | 
			
		||||
      if(RST_FILES)
 | 
			
		||||
        add_custom_command(TARGET ${target} PRE_BUILD
 | 
			
		||||
                           COMMAND ${CMAKE_COMMAND} -E copy_if_different ${RST_FILES} ${WORK_DIR})
 | 
			
		||||
        add_custom_command(TARGET ${target} PRE_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different
 | 
			
		||||
                                                              ${RST_FILES} ${WORK_DIR})
 | 
			
		||||
      endif()
 | 
			
		||||
    endif()
 | 
			
		||||
  else()
 | 
			
		||||
    message(STATUS "CMLIB warning:")
 | 
			
		||||
    add_custom_target(${target} VERBATIM
 | 
			
		||||
                      COMMENT "  Breathe is not found. Skipping target ${target} build")
 | 
			
		||||
    add_custom_target(${target} VERBATIM COMMENT "  Breathe is not found. Skipping target ${target} build")
 | 
			
		||||
  endif()
 | 
			
		||||
endfunction()
 | 
			
		||||
 
 | 
			
		||||
@@ -37,7 +37,6 @@ function(add_doxygen target)
 | 
			
		||||
      COMMENT "Generating API documentation with Doxygen")
 | 
			
		||||
  else()
 | 
			
		||||
    message(STATUS "CMLIB warning:")
 | 
			
		||||
    add_custom_target(${target} VERBATIM
 | 
			
		||||
                      COMMENT "  Doxygen is not found. Skipping target ${target} build")
 | 
			
		||||
    add_custom_target(${target} VERBATIM COMMENT "  Doxygen is not found. Skipping target ${target} build")
 | 
			
		||||
  endif()
 | 
			
		||||
endfunction()
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										9
									
								
								CMLibNinjaGeneratorHelper.cmake
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								CMLibNinjaGeneratorHelper.cmake
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
			
		||||
# Если выбран генератор Ninja, то в основном сборочном каталоге
 | 
			
		||||
# создаётся файл Makefile, который обрабатывается командой make и
 | 
			
		||||
# передаёт исполнение системе сборки ninja.
 | 
			
		||||
# Таким образом можно выполнять команду make, даже если правила
 | 
			
		||||
# сборки проекта сгенерированы для ninja.
 | 
			
		||||
 | 
			
		||||
if("${CMAKE_GENERATOR}" MATCHES "Ninja")
 | 
			
		||||
  file(WRITE ${CMAKE_BINARY_DIR}/Makefile ".PHONY: build\n%:\n\t@ninja \$@\nbuild:\n\t@ninja\n")
 | 
			
		||||
endif()
 | 
			
		||||
@@ -18,7 +18,7 @@ function(qt5_translation outfiles)
 | 
			
		||||
    set(_ts "${_base_name}_${_lang}.ts")
 | 
			
		||||
    set(_qm "${_base_name}_${_lang}.qm")
 | 
			
		||||
    list(APPEND _ts_list ${_output_dir}/${_ts})
 | 
			
		||||
    list(APPEND _l10n_names "${_base_name}_l10n_${_lang}")
 | 
			
		||||
    list(APPEND _l10n_names_list "${_base_name}_l10n_${_lang}")
 | 
			
		||||
    string(APPEND L10N_QRC_BODY "<file alias=\"${_qm}\">${CMAKE_BINARY_DIR}/${_qm}</file>\n")
 | 
			
		||||
 | 
			
		||||
    add_custom_target(
 | 
			
		||||
@@ -39,7 +39,7 @@ function(qt5_translation outfiles)
 | 
			
		||||
  configure_file(${CMLIB_MODULE_DIR}/qrc/l10n.qrc.in ${CMAKE_BINARY_DIR}/${_base_name}_l10n.qrc)
 | 
			
		||||
  qt5_add_resources(${outfiles} ${CMAKE_BINARY_DIR}/${_base_name}_l10n.qrc)
 | 
			
		||||
  add_custom_target(${_base_name}_qrc DEPENDS ${_qrc})
 | 
			
		||||
  add_custom_target(${_base_name}_l10n DEPENDS ${_l10n_targets})
 | 
			
		||||
  add_custom_target(${_base_name}_l10n DEPENDS ${_l10n_names_list})
 | 
			
		||||
  if(NOT TARGET l10n)
 | 
			
		||||
    add_custom_target(l10n)
 | 
			
		||||
  endif()
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user