Compare commits

..

4 Commits

3 changed files with 30 additions and 25 deletions

View File

@ -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)

View File

@ -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()

View File

@ -4,6 +4,6 @@
# Таким образом можно выполнять команду make, даже если правила # Таким образом можно выполнять команду make, даже если правила
# сборки проекта сгенерированы для ninja. # сборки проекта сгенерированы для ninja.
if("${CMAKE_GENERATOR}" MATCHES ".*Ninja$") if("${CMAKE_GENERATOR}" MATCHES "Ninja")
file(WRITE ${CMAKE_BINARY_DIR}/Makefile ".PHONY: build\n%:\n\t@ninja \$@\nbuild:\n\t@ninja\n") file(WRITE ${CMAKE_BINARY_DIR}/Makefile ".PHONY: build\n%:\n\t@ninja \$@\nbuild:\n\t@ninja\n")
endif() endif()