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
|
# Options affecting listfile parsing
|
||||||
# ----------------------------------
|
# ----------------------------------
|
||||||
@ -5,15 +7,21 @@ with section("parse"):
|
|||||||
|
|
||||||
# Specify structure for custom cmake functions
|
# Specify structure for custom cmake functions
|
||||||
additional_commands = {
|
additional_commands = {
|
||||||
|
'add_doxygen': { 'flags' : [],
|
||||||
|
'kwargs': { 'LATEX': 1,
|
||||||
|
'HTML': 1,
|
||||||
|
'COMMENT': 1}},
|
||||||
|
'add_breathe': { 'flags' : [],
|
||||||
|
'kwargs': { 'COMMENT': 1}},
|
||||||
'add_common_library': { 'flags' : [],
|
'add_common_library': { 'flags' : [],
|
||||||
'kwargs': { 'OUTPUT_NAME': '*',
|
'kwargs': { 'OUTPUT_NAME': 1,
|
||||||
'SOURCES': '*',
|
'SOURCES': '*',
|
||||||
'TARGET': '1'}},
|
'TARGET': 1}},
|
||||||
'qt5_translation': { 'flags' : [],
|
'qt5_translation': { 'flags' : [],
|
||||||
'kwargs': { 'TS_DIR': '1',
|
'kwargs': { 'OUTPUT_DIR': 1,
|
||||||
'LANGUAGES': '*',
|
'LANGUAGES': '*',
|
||||||
'SOURCES': '*',
|
'SOURCES': '*',
|
||||||
'TARGET': '1'}},
|
'BASE_NAME': 1}},
|
||||||
'pvs_studio_add_target': { 'flags' : [ 'COMPILE_COMMANDS',
|
'pvs_studio_add_target': { 'flags' : [ 'COMPILE_COMMANDS',
|
||||||
'OUTPUT',
|
'OUTPUT',
|
||||||
'HIDE_HELP'],
|
'HIDE_HELP'],
|
||||||
@ -22,7 +30,7 @@ with section("parse"):
|
|||||||
'DEPENDS': '*',
|
'DEPENDS': '*',
|
||||||
'FORMAT': '*',
|
'FORMAT': '*',
|
||||||
'MODE': '*',
|
'MODE': '*',
|
||||||
'TARGET': '*'}},
|
'TARGET': 1}},
|
||||||
'write_compiler_detection_header': { 'flags' : [],
|
'write_compiler_detection_header': { 'flags' : [],
|
||||||
'kwargs': { 'COMPILERS': '*',
|
'kwargs': { 'COMPILERS': '*',
|
||||||
'FEATURES': '*',
|
'FEATURES': '*',
|
||||||
@ -48,11 +56,11 @@ with section("format"):
|
|||||||
|
|
||||||
# If an argument group contains more than this many sub-groups (parg or kwarg
|
# If an argument group contains more than this many sub-groups (parg or kwarg
|
||||||
# groups) then force it to a vertical layout.
|
# 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
|
# If a positional argument group contains more than this many arguments, then
|
||||||
# force it to a vertical layout.
|
# 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
|
# If a cmdline positional group consumes more than this many lines without
|
||||||
# nesting, then invalidate the layout (and nest)
|
# nesting, then invalidate the layout (and nest)
|
||||||
|
@ -24,37 +24,34 @@ endif()
|
|||||||
if(CMAKE_BUILD_TYPE STREQUAL Profile)
|
if(CMAKE_BUILD_TYPE STREQUAL Profile)
|
||||||
# Ключи компиляции для режима профилирования в зависимости от типа компилятора
|
# Ключи компиляции для режима профилирования в зависимости от типа компилятора
|
||||||
if(CMAKE_CXX_COMPILER_IS_Clang OR CMAKE_CXX_COMPILER_IS_GCC)
|
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_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" CACHE STRING "")
|
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 "")
|
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 "")
|
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 "")
|
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 "")
|
set(CMAKE_MODULE_LINKER_FLAGS_PROFILE "${CMAKE_MODULE_LINKER_FLAGS_RELEASE} -pg" CACHE STRING "" FORCE)
|
||||||
elseif(CMAKE_CXX_COMPILER_IS_Intel)
|
elseif(CMAKE_CXX_COMPILER_IS_Intel)
|
||||||
message("Set options for profiling with Intel C++")
|
message("Set options for profiling with Intel C++")
|
||||||
elseif(CMAKE_CXX_COMPILER_IS_MSVC)
|
elseif(CMAKE_CXX_COMPILER_IS_MSVC)
|
||||||
message("Set options for profiling with Visual Studio C++")
|
message("Set options for profiling with Visual Studio C++")
|
||||||
endif()
|
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)
|
set(PROFILE 1)
|
||||||
elseif(CMAKE_BUILD_TYPE STREQUAL Debug)
|
elseif(CMAKE_BUILD_TYPE STREQUAL Debug)
|
||||||
# В режиме отладки подробный вывод сообщений компилятора
|
# В режиме отладки подробный вывод сообщений компилятора
|
||||||
if(CMAKE_CXX_COMPILER_IS_Clang OR CMAKE_CXX_COMPILER_IS_GCC)
|
if(CMAKE_CXX_COMPILER_IS_Clang OR CMAKE_CXX_COMPILER_IS_GCC)
|
||||||
string(APPEND CMAKE_C_FLAGS_DEBUG " -ggdb")
|
set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -ggdb -fno-omit-frame-pointer" CACHE STRING "" FORCE)
|
||||||
string(APPEND CMAKE_CXX_FLAGS_DEBUG " -ggdb")
|
set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -ggdb -fno-omit-frame-pointer" CACHE STRING "" FORCE)
|
||||||
endif()
|
endif()
|
||||||
set(CMAKE_VERBOSE_MAKEFILE ON CACHE BOOL "Enable verbose build file 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 output of compile commands during generation."
|
set(CMAKE_EXPORT_COMPILE_COMMANDS ON CACHE BOOL "Enable generation of compile_commands.json." FORCE)
|
||||||
FORCE)
|
|
||||||
set(DEBUG 1)
|
set(DEBUG 1)
|
||||||
elseif(CMAKE_BUILD_TYPE STREQUAL Release)
|
elseif(CMAKE_BUILD_TYPE STREQUAL Release)
|
||||||
set(RELEASE 1)
|
set(RELEASE 1)
|
||||||
elseif(CMAKE_BUILD_TYPE STREQUAL None)
|
elseif(CMAKE_BUILD_TYPE STREQUAL None)
|
||||||
# Режим 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(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()
|
endif()
|
||||||
|
@ -45,5 +45,6 @@ include(CMLibQtTranslation)
|
|||||||
include(CMLibToday)
|
include(CMLibToday)
|
||||||
include(CMLibAuxilarySymlinks)
|
include(CMLibAuxilarySymlinks)
|
||||||
include(CMLibConfigHPPGenerate)
|
include(CMLibConfigHPPGenerate)
|
||||||
|
include(CMLibNinjaGeneratorHelper)
|
||||||
include(CMLibCPack)
|
include(CMLibCPack)
|
||||||
include(CMLibUninstall)
|
include(CMLibUninstall)
|
||||||
|
@ -11,7 +11,7 @@ function(common_target_properties target)
|
|||||||
get_target_property(__sources ${target} SOURCES)
|
get_target_property(__sources ${target} SOURCES)
|
||||||
foreach(__src IN LISTS __sources)
|
foreach(__src IN LISTS __sources)
|
||||||
string(REGEX MATCH ".*/qrc_.*\\.cpp$" __qrc ${__src})
|
string(REGEX MATCH ".*/qrc_.*\\.cpp$" __qrc ${__src})
|
||||||
if (__qrc)
|
if(__qrc)
|
||||||
set_property(SOURCE ${__qrc} PROPERTY COTIRE_EXCLUDED ON)
|
set_property(SOURCE ${__qrc} PROPERTY COTIRE_EXCLUDED ON)
|
||||||
endif()
|
endif()
|
||||||
endforeach()
|
endforeach()
|
||||||
|
@ -54,8 +54,8 @@ function(add_breathe target)
|
|||||||
configure_file(${INDEX_MD_FILE} ${WORK_DIR}/index.md @ONLY)
|
configure_file(${INDEX_MD_FILE} ${WORK_DIR}/index.md @ONLY)
|
||||||
file(GLOB MD_FILES ${CMAKE_SOURCE_DIR}/doc/breathe/*.md)
|
file(GLOB MD_FILES ${CMAKE_SOURCE_DIR}/doc/breathe/*.md)
|
||||||
if(MD_FILES)
|
if(MD_FILES)
|
||||||
add_custom_command(TARGET ${target} PRE_BUILD
|
add_custom_command(TARGET ${target} PRE_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${MD_FILES} ${WORK_DIR})
|
${MD_FILES} ${WORK_DIR})
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
@ -64,13 +64,12 @@ function(add_breathe target)
|
|||||||
configure_file(${INDEX_RST_FILE} ${WORK_DIR}/index.rst @ONLY)
|
configure_file(${INDEX_RST_FILE} ${WORK_DIR}/index.rst @ONLY)
|
||||||
file(GLOB RST_FILES ${CMAKE_SOURCE_DIR}/doc/breathe/*.rst)
|
file(GLOB RST_FILES ${CMAKE_SOURCE_DIR}/doc/breathe/*.rst)
|
||||||
if(RST_FILES)
|
if(RST_FILES)
|
||||||
add_custom_command(TARGET ${target} PRE_BUILD
|
add_custom_command(TARGET ${target} PRE_BUILD COMMAND ${CMAKE_COMMAND} -E copy_if_different
|
||||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${RST_FILES} ${WORK_DIR})
|
${RST_FILES} ${WORK_DIR})
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
else()
|
else()
|
||||||
message(STATUS "CMLIB warning:")
|
message(STATUS "CMLIB warning:")
|
||||||
add_custom_target(${target} VERBATIM
|
add_custom_target(${target} VERBATIM COMMENT " Breathe is not found. Skipping target ${target} build")
|
||||||
COMMENT " Breathe is not found. Skipping target ${target} build")
|
|
||||||
endif()
|
endif()
|
||||||
endfunction()
|
endfunction()
|
||||||
|
@ -37,7 +37,6 @@ function(add_doxygen target)
|
|||||||
COMMENT "Generating API documentation with Doxygen")
|
COMMENT "Generating API documentation with Doxygen")
|
||||||
else()
|
else()
|
||||||
message(STATUS "CMLIB warning:")
|
message(STATUS "CMLIB warning:")
|
||||||
add_custom_target(${target} VERBATIM
|
add_custom_target(${target} VERBATIM COMMENT " Doxygen is not found. Skipping target ${target} build")
|
||||||
COMMENT " Doxygen is not found. Skipping target ${target} build")
|
|
||||||
endif()
|
endif()
|
||||||
endfunction()
|
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(_ts "${_base_name}_${_lang}.ts")
|
||||||
set(_qm "${_base_name}_${_lang}.qm")
|
set(_qm "${_base_name}_${_lang}.qm")
|
||||||
list(APPEND _ts_list ${_output_dir}/${_ts})
|
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")
|
string(APPEND L10N_QRC_BODY "<file alias=\"${_qm}\">${CMAKE_BINARY_DIR}/${_qm}</file>\n")
|
||||||
|
|
||||||
add_custom_target(
|
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)
|
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)
|
qt5_add_resources(${outfiles} ${CMAKE_BINARY_DIR}/${_base_name}_l10n.qrc)
|
||||||
add_custom_target(${_base_name}_qrc DEPENDS ${_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)
|
if(NOT TARGET l10n)
|
||||||
add_custom_target(l10n)
|
add_custom_target(l10n)
|
||||||
endif()
|
endif()
|
||||||
|
Reference in New Issue
Block a user