Compare commits
15 Commits
baa57922b4
...
master
Author | SHA1 | Date | |
---|---|---|---|
5bd3f308bb | |||
e11dd38dd0 | |||
a2ae14a6e8 | |||
5708fcd5e4 | |||
aa53289311 | |||
f500a10a0d | |||
6b7220351e | |||
2f3f45f2a0 | |||
7c22ac6b82 | |||
7cb811e4d1 | |||
061327890c | |||
ffa6262670 | |||
7a6c8e4a30 | |||
0ed93acecd | |||
839d3858c1 |
@ -13,8 +13,10 @@ include(CMLibDisableInSourceBuild)
|
|||||||
include(CMakeParseArguments)
|
include(CMakeParseArguments)
|
||||||
include(GNUInstallDirs)
|
include(GNUInstallDirs)
|
||||||
if(DEFINED ENV{DEB_HOST_MULTIARCH})
|
if(DEFINED ENV{DEB_HOST_MULTIARCH})
|
||||||
|
if(NOT CMAKE_INSTALL_LIBDIR MATCHES $ENV{DEB_HOST_MULTIARCH})
|
||||||
string(APPEND CMAKE_INSTALL_LIBDIR "/$ENV{DEB_HOST_MULTIARCH}")
|
string(APPEND CMAKE_INSTALL_LIBDIR "/$ENV{DEB_HOST_MULTIARCH}")
|
||||||
endif()
|
endif()
|
||||||
|
endif()
|
||||||
|
|
||||||
set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${CMAKE_CXX_SOURCE_FILE_EXTENSIONS};tpp;tcc)
|
set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS ${CMAKE_CXX_SOURCE_FILE_EXTENSIONS};tpp;tcc)
|
||||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||||
|
@ -4,15 +4,15 @@ function(add_common_library target)
|
|||||||
set(oneValueArgs OUTPUT_NAME)
|
set(oneValueArgs OUTPUT_NAME)
|
||||||
set(multiValueArgs SOURCES)
|
set(multiValueArgs SOURCES)
|
||||||
|
|
||||||
cmake_parse_arguments(_LOCAL "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
cmake_parse_arguments(_PREFIX "${options}" "${oneValueArgs}" "${multiValueArgs}" ${ARGN})
|
||||||
|
|
||||||
if(_LOCAL_OUTPUT_NAME)
|
if(_PREFIX_OUTPUT_NAME)
|
||||||
set(output_name ${_LOCAL_OUTPUT_NAME})
|
set(output_name ${_PREFIX_OUTPUT_NAME})
|
||||||
else()
|
else()
|
||||||
set(output_name ${target})
|
set(output_name ${target})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
add_library(${target} OBJECT ${_LOCAL_SOURCES})
|
add_library(${target} OBJECT ${_PREFIX_SOURCES})
|
||||||
target_include_directories(
|
target_include_directories(
|
||||||
${target} PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
|
${target} PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}>
|
||||||
$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/include> $<INSTALL_INTERFACE:include/${target}>)
|
$<BUILD_INTERFACE:${CMAKE_BINARY_DIR}/include> $<INSTALL_INTERFACE:include/${target}>)
|
||||||
|
@ -18,6 +18,7 @@ macro(CHECK_ENABLE_CXX_FLAG flag)
|
|||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
macro(CHECK_ENABLE_DEBUG_CXX_FLAG flag)
|
macro(CHECK_ENABLE_DEBUG_CXX_FLAG flag)
|
||||||
|
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||||
set(CMAKE_REQUIRED_QUIET TRUE)
|
set(CMAKE_REQUIRED_QUIET TRUE)
|
||||||
check_cxx_compiler_flag("${flag}" CHECK_CXX_FLAG_DEBUG)
|
check_cxx_compiler_flag("${flag}" CHECK_CXX_FLAG_DEBUG)
|
||||||
unset(CMAKE_REQUIRED_QUIET)
|
unset(CMAKE_REQUIRED_QUIET)
|
||||||
@ -30,6 +31,7 @@ macro(CHECK_ENABLE_DEBUG_CXX_FLAG flag)
|
|||||||
endif()
|
endif()
|
||||||
# NOTE: check_cxx_compiler stores variables in the cache.
|
# NOTE: check_cxx_compiler stores variables in the cache.
|
||||||
unset(CHECK_CXX_FLAG_DEBUG CACHE)
|
unset(CHECK_CXX_FLAG_DEBUG CACHE)
|
||||||
|
endif()
|
||||||
endmacro()
|
endmacro()
|
||||||
|
|
||||||
function(cmlib_set_cxx_standard version)
|
function(cmlib_set_cxx_standard version)
|
||||||
|
@ -1,6 +1,10 @@
|
|||||||
include(cotire)
|
include(cotire OPTIONAL)
|
||||||
|
|
||||||
if(COMMAND cotire)
|
if(COMMAND cotire)
|
||||||
|
if(CMAKE_BUILD_TYPE STREQUAL "Debug")
|
||||||
|
option(CMLIB_COTIRE_ENABLE_PRECOMPILED_HEADER "Enable precompiled headers" ON)
|
||||||
|
else()
|
||||||
option(CMLIB_COTIRE_ENABLE_PRECOMPILED_HEADER "Enable precompiled headers" OFF)
|
option(CMLIB_COTIRE_ENABLE_PRECOMPILED_HEADER "Enable precompiled headers" OFF)
|
||||||
|
endif()
|
||||||
option(CMLIB_COTIRE_ADD_UNITY_BUILD "Enable unity build" OFF)
|
option(CMLIB_COTIRE_ADD_UNITY_BUILD "Enable unity build" OFF)
|
||||||
endif()
|
endif()
|
||||||
|
@ -68,8 +68,10 @@ function(add_breathe_target target)
|
|||||||
${RST_FILES} ${WORK_DIR})
|
${RST_FILES} ${WORK_DIR})
|
||||||
endif()
|
endif()
|
||||||
endif()
|
endif()
|
||||||
install(DIRECTORY ${CMAKE_BINARY_DIR}/doc/breathe/
|
install(
|
||||||
COMPONENT doc OPTIONAL
|
DIRECTORY ${CMAKE_BINARY_DIR}/doc/breathe/
|
||||||
|
COMPONENT doc
|
||||||
|
OPTIONAL
|
||||||
DESTINATION ${CMAKE_INSTALL_DATADIR}/doc/breathe)
|
DESTINATION ${CMAKE_INSTALL_DATADIR}/doc/breathe)
|
||||||
else()
|
else()
|
||||||
message(STATUS "CMLIB warning:")
|
message(STATUS "CMLIB warning:")
|
||||||
|
@ -35,8 +35,10 @@ function(add_doxygen_target target)
|
|||||||
COMMAND ${DOXYGEN_EXECUTABLE} ${work_dir}/Doxyfile
|
COMMAND ${DOXYGEN_EXECUTABLE} ${work_dir}/Doxyfile
|
||||||
WORKING_DIRECTORY ${work_dir}
|
WORKING_DIRECTORY ${work_dir}
|
||||||
COMMENT "Generating API documentation with Doxygen")
|
COMMENT "Generating API documentation with Doxygen")
|
||||||
install(DIRECTORY ${CMAKE_BINARY_DIR}/doc/doxygen/html/
|
install(
|
||||||
COMPONENT doc OPTIONAL
|
DIRECTORY ${CMAKE_BINARY_DIR}/doc/doxygen/html/
|
||||||
|
COMPONENT doc
|
||||||
|
OPTIONAL
|
||||||
DESTINATION ${CMAKE_INSTALL_DATADIR}/doc/doxygen)
|
DESTINATION ${CMAKE_INSTALL_DATADIR}/doc/doxygen)
|
||||||
else()
|
else()
|
||||||
message(STATUS "CMLIB warning:")
|
message(STATUS "CMLIB warning:")
|
||||||
|
@ -4,6 +4,10 @@ if(CMAKE_BUILD_TYPE)
|
|||||||
list(APPEND CMLIB_EXT_PROJ_DEFAULT_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE})
|
list(APPEND CMLIB_EXT_PROJ_DEFAULT_ARGS -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE})
|
||||||
endif()
|
endif()
|
||||||
|
|
||||||
|
if(CMLIB_MAIN_DIR)
|
||||||
|
list(APPEND CMLIB_EXT_PROJ_DEFAULT_ARGS -DCMLIB_MAIN_DIR=${CMLIB_MAIN_DIR})
|
||||||
|
endif()
|
||||||
|
|
||||||
if(CMAKE_C_COMPILER)
|
if(CMAKE_C_COMPILER)
|
||||||
list(APPEND CMLIB_EXT_PROJ_DEFAULT_ARGS -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER})
|
list(APPEND CMLIB_EXT_PROJ_DEFAULT_ARGS -DCMAKE_C_COMPILER=${CMAKE_C_COMPILER})
|
||||||
endif()
|
endif()
|
||||||
|
11
CMLibHighPrecisionMath.cmake
Normal file
11
CMLibHighPrecisionMath.cmake
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
find_package(Quadmath)
|
||||||
|
if(QUADMATH_FOUND)
|
||||||
|
add_definitions(-DHAVE_QUADMATH=1)
|
||||||
|
else()
|
||||||
|
find_package(MPFR)
|
||||||
|
if(MPFR_FOUND)
|
||||||
|
find_package(MPFRCppThirdparty)
|
||||||
|
else()
|
||||||
|
message(FATAL_ERROR "Nor Quadmath, nor MPFR found.")
|
||||||
|
endif()
|
||||||
|
endif()
|
68
thirdparty/PVS-Studio.cmake
vendored
68
thirdparty/PVS-Studio.cmake
vendored
@ -33,8 +33,9 @@ if (PVS_STUDIO_AS_SCRIPT)
|
|||||||
endforeach ()
|
endforeach ()
|
||||||
|
|
||||||
execute_process(COMMAND ${PVS_STUDIO_COMMAND} ${additional_args}
|
execute_process(COMMAND ${PVS_STUDIO_COMMAND} ${additional_args}
|
||||||
ERROR_VARIABLE error
|
RESULT_VARIABLE result
|
||||||
RESULT_VARIABLE result)
|
OUTPUT_VARIABLE output
|
||||||
|
ERROR_VARIABLE error)
|
||||||
|
|
||||||
set(stderr_type "")
|
set(stderr_type "")
|
||||||
|
|
||||||
@ -42,7 +43,7 @@ if (PVS_STUDIO_AS_SCRIPT)
|
|||||||
set(stderr_type FATAL_ERROR)
|
set(stderr_type FATAL_ERROR)
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
if (result OR error)
|
if (NOT error STREQUAL "" OR (result AND NOT output STREQUAL "No compilation units were found.\n"))
|
||||||
message(${stderr_type} "${error}")
|
message(${stderr_type} "${error}")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
@ -126,6 +127,11 @@ function (pvs_studio_set_target_flags TARGET CXX C)
|
|||||||
set(CXX_FLAGS "${${CXX}}")
|
set(CXX_FLAGS "${${CXX}}")
|
||||||
set(C_FLAGS "${${C}}")
|
set(C_FLAGS "${${C}}")
|
||||||
|
|
||||||
|
if (NOT MSVC)
|
||||||
|
list(APPEND CXX_FLAGS "$<$<BOOL:${CMAKE_SYSROOT}>:--sysroot=${CMAKE_SYSROOT}>")
|
||||||
|
list(APPEND C_FLAGS "$<$<BOOL:${CMAKE_SYSROOT}>:--sysroot=${CMAKE_SYSROOT}>")
|
||||||
|
endif ()
|
||||||
|
|
||||||
set(prop_incdirs "$<TARGET_PROPERTY:${TARGET},INCLUDE_DIRECTORIES>")
|
set(prop_incdirs "$<TARGET_PROPERTY:${TARGET},INCLUDE_DIRECTORIES>")
|
||||||
list(APPEND CXX_FLAGS "$<$<BOOL:${prop_incdirs}>:-I$<JOIN:${prop_incdirs},$<SEMICOLON>-I>>")
|
list(APPEND CXX_FLAGS "$<$<BOOL:${prop_incdirs}>:-I$<JOIN:${prop_incdirs},$<SEMICOLON>-I>>")
|
||||||
list(APPEND C_FLAGS "$<$<BOOL:${prop_incdirs}>:-I$<JOIN:${prop_incdirs},$<SEMICOLON>-I>>")
|
list(APPEND C_FLAGS "$<$<BOOL:${prop_incdirs}>:-I$<JOIN:${prop_incdirs},$<SEMICOLON>-I>>")
|
||||||
@ -134,6 +140,10 @@ function (pvs_studio_set_target_flags TARGET CXX C)
|
|||||||
list(APPEND CXX_FLAGS "$<$<BOOL:${prop_compdefs}>:-D$<JOIN:${prop_compdefs},$<SEMICOLON>-D>>")
|
list(APPEND CXX_FLAGS "$<$<BOOL:${prop_compdefs}>:-D$<JOIN:${prop_compdefs},$<SEMICOLON>-D>>")
|
||||||
list(APPEND C_FLAGS "$<$<BOOL:${prop_compdefs}>:-D$<JOIN:${prop_compdefs},$<SEMICOLON>-D>>")
|
list(APPEND C_FLAGS "$<$<BOOL:${prop_compdefs}>:-D$<JOIN:${prop_compdefs},$<SEMICOLON>-D>>")
|
||||||
|
|
||||||
|
set(prop_compopt "$<TARGET_PROPERTY:${TARGET},COMPILE_OPTIONS>")
|
||||||
|
list(APPEND CXX_FLAGS "$<$<BOOL:${prop_compopt}>:$<JOIN:${prop_compopt},$<SEMICOLON>>>")
|
||||||
|
list(APPEND C_FLAGS "$<$<BOOL:${prop_compopt}>:$<JOIN:${prop_compopt},$<SEMICOLON>>>")
|
||||||
|
|
||||||
set("${CXX}" "${CXX_FLAGS}" PARENT_SCOPE)
|
set("${CXX}" "${CXX_FLAGS}" PARENT_SCOPE)
|
||||||
set("${C}" "${C_FLAGS}" PARENT_SCOPE)
|
set("${C}" "${C_FLAGS}" PARENT_SCOPE)
|
||||||
endfunction ()
|
endfunction ()
|
||||||
@ -211,7 +221,7 @@ function (pvs_studio_analyze_file SOURCE SOURCE_DIR BINARY_DIR)
|
|||||||
COMMAND "${CMAKE_COMMAND}" -E remove_directory "${LOG}"
|
COMMAND "${CMAKE_COMMAND}" -E remove_directory "${LOG}"
|
||||||
COMMAND ${pvscmd}
|
COMMAND ${pvscmd}
|
||||||
WORKING_DIRECTORY "${BINARY_DIR}"
|
WORKING_DIRECTORY "${BINARY_DIR}"
|
||||||
DEPENDS "${SOURCE}" "${PVS_STUDIO_CONFIG}" "${PVS_STUDIO_SUPPRESS_BASE}"
|
DEPENDS "${SOURCE}" "${PVS_STUDIO_SUPPRESS_BASE}" "${PVS_STUDIO_DEPENDS}"
|
||||||
IMPLICIT_DEPENDS "${PVS_STUDIO_LANGUAGE}" "${SOURCE}"
|
IMPLICIT_DEPENDS "${PVS_STUDIO_LANGUAGE}" "${SOURCE}"
|
||||||
${depCommandArg}
|
${depCommandArg}
|
||||||
VERBATIM
|
VERBATIM
|
||||||
@ -303,6 +313,7 @@ option(PVS_STUDIO_DEBUG OFF "Add debug info")
|
|||||||
# C_FLAGS flags... additional C_FLAGS
|
# C_FLAGS flags... additional C_FLAGS
|
||||||
# CXX_FLAGS flags... additional CXX_FLAGS
|
# CXX_FLAGS flags... additional CXX_FLAGS
|
||||||
# ARGS args... additional pvs-studio-analyzer/CompilerCommandsAnalyzer.exe flags
|
# ARGS args... additional pvs-studio-analyzer/CompilerCommandsAnalyzer.exe flags
|
||||||
|
# CONVERTER_ARGS args... additional plog-converter/HtmlGenerator.exe flags
|
||||||
function (pvs_studio_add_target)
|
function (pvs_studio_add_target)
|
||||||
macro (default VAR VALUE)
|
macro (default VAR VALUE)
|
||||||
if ("${${VAR}}" STREQUAL "")
|
if ("${${VAR}}" STREQUAL "")
|
||||||
@ -319,19 +330,12 @@ function (pvs_studio_add_target)
|
|||||||
set(DEFAULT_PREPROCESSOR "gcc")
|
set(DEFAULT_PREPROCESSOR "gcc")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
set(OPTIONAL OUTPUT ALL RECURSIVE HIDE_HELP KEEP_COMBINED_PLOG COMPILE_COMMANDS)
|
set(OPTIONAL OUTPUT ALL RECURSIVE HIDE_HELP KEEP_COMBINED_PLOG COMPILE_COMMANDS KEEP_INTERMEDIATE_FILES)
|
||||||
set(SINGLE LICENSE CONFIG TARGET LOG FORMAT BIN CONVERTER PLATFORM PREPROCESSOR CFG_TEXT SUPPRESS_BASE)
|
set(SINGLE LICENSE CONFIG TARGET LOG FORMAT BIN CONVERTER PLATFORM PREPROCESSOR CFG_TEXT SUPPRESS_BASE)
|
||||||
set(MULTI SOURCES C_FLAGS CXX_FLAGS ARGS DEPENDS ANALYZE MODE)
|
set(MULTI SOURCES C_FLAGS CXX_FLAGS ARGS DEPENDS ANALYZE MODE CONVERTER_ARGS)
|
||||||
cmake_parse_arguments(PVS_STUDIO "${OPTIONAL}" "${SINGLE}" "${MULTI}" ${ARGN})
|
cmake_parse_arguments(PVS_STUDIO "${OPTIONAL}" "${SINGLE}" "${MULTI}" ${ARGN})
|
||||||
|
|
||||||
if ("${PVS_STUDIO_CONFIG}" STREQUAL "" OR NOT "${PVS_STUDIO_CFG_TEXT}" STREQUAL "")
|
|
||||||
set(PVS_STUDIO_EMPTY_CONFIG ON)
|
|
||||||
else ()
|
|
||||||
set(PVS_STUDIO_EMPTY_CONFIG OFF)
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
default(PVS_STUDIO_CFG_TEXT "analysis-mode=31")
|
|
||||||
default(PVS_STUDIO_CONFIG "${CMAKE_BINARY_DIR}/PVS-Studio.cfg")
|
|
||||||
default(PVS_STUDIO_C_FLAGS "")
|
default(PVS_STUDIO_C_FLAGS "")
|
||||||
default(PVS_STUDIO_CXX_FLAGS "")
|
default(PVS_STUDIO_CXX_FLAGS "")
|
||||||
default(PVS_STUDIO_TARGET "pvs")
|
default(PVS_STUDIO_TARGET "pvs")
|
||||||
@ -378,17 +382,18 @@ function (pvs_studio_add_target)
|
|||||||
|
|
||||||
string(REPLACE ";" "+" PVS_STUDIO_MODE "${PVS_STUDIO_MODE}")
|
string(REPLACE ";" "+" PVS_STUDIO_MODE "${PVS_STUDIO_MODE}")
|
||||||
|
|
||||||
if (PVS_STUDIO_EMPTY_CONFIG)
|
if ("${PVS_STUDIO_CONFIG}" STREQUAL "" AND NOT "${PVS_STUDIO_CFG_TEXT}" STREQUAL "")
|
||||||
|
set(PVS_STUDIO_CONFIG "${CMAKE_BINARY_DIR}/PVS-Studio.cfg")
|
||||||
|
|
||||||
set(PVS_STUDIO_CONFIG_COMMAND "${CMAKE_COMMAND}" -E echo "${PVS_STUDIO_CFG_TEXT}" > "${PVS_STUDIO_CONFIG}")
|
set(PVS_STUDIO_CONFIG_COMMAND "${CMAKE_COMMAND}" -E echo "${PVS_STUDIO_CFG_TEXT}" > "${PVS_STUDIO_CONFIG}")
|
||||||
else ()
|
|
||||||
set(PVS_STUDIO_CONFIG_COMMAND "${CMAKE_COMMAND}" -E touch "${PVS_STUDIO_CONFIG}")
|
|
||||||
endif ()
|
|
||||||
|
|
||||||
add_custom_command(OUTPUT "${PVS_STUDIO_CONFIG}"
|
add_custom_command(OUTPUT "${PVS_STUDIO_CONFIG}"
|
||||||
COMMAND ${PVS_STUDIO_CONFIG_COMMAND}
|
COMMAND ${PVS_STUDIO_CONFIG_COMMAND}
|
||||||
WORKING_DIRECTORY "${BINARY_DIR}"
|
WORKING_DIRECTORY "${BINARY_DIR}"
|
||||||
COMMENT "Generating PVS-Studio.cfg")
|
COMMENT "Generating PVS-Studio.cfg")
|
||||||
|
|
||||||
|
list(APPEND PVS_STUDIO_DEPENDS "${PVS_STUDIO_CONFIG}")
|
||||||
|
endif ()
|
||||||
if (NOT "${PVS_STUDIO_PREPROCESSOR}" MATCHES "^${PVS_STUDIO_SUPPORTED_PREPROCESSORS}$")
|
if (NOT "${PVS_STUDIO_PREPROCESSOR}" MATCHES "^${PVS_STUDIO_SUPPORTED_PREPROCESSORS}$")
|
||||||
message(FATAL_ERROR "Preprocessor ${PVS_STUDIO_PREPROCESSOR} isn't supported. Available options: ${PVS_STUDIO_SUPPORTED_PREPROCESSORS}.")
|
message(FATAL_ERROR "Preprocessor ${PVS_STUDIO_PREPROCESSOR} isn't supported. Available options: ${PVS_STUDIO_SUPPORTED_PREPROCESSORS}.")
|
||||||
endif ()
|
endif ()
|
||||||
@ -397,12 +402,14 @@ function (pvs_studio_add_target)
|
|||||||
pvs_studio_set_directory_flags("${CMAKE_CURRENT_SOURCE_DIR}" PVS_STUDIO_CXX_FLAGS PVS_STUDIO_C_FLAGS)
|
pvs_studio_set_directory_flags("${CMAKE_CURRENT_SOURCE_DIR}" PVS_STUDIO_CXX_FLAGS PVS_STUDIO_C_FLAGS)
|
||||||
|
|
||||||
if (NOT "${PVS_STUDIO_LICENSE}" STREQUAL "")
|
if (NOT "${PVS_STUDIO_LICENSE}" STREQUAL "")
|
||||||
pvs_studio_join_path(PVS_STUDIO_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}" "${PVS_STUDIO_LICENSE}")
|
|
||||||
list(APPEND PVS_STUDIO_ARGS --lic-file "${PVS_STUDIO_LICENSE}")
|
list(APPEND PVS_STUDIO_ARGS --lic-file "${PVS_STUDIO_LICENSE}")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
list(APPEND PVS_STUDIO_ARGS --cfg "${PVS_STUDIO_CONFIG}"
|
if (NOT ${PVS_STUDIO_CONFIG} STREQUAL "")
|
||||||
--platform "${PVS_STUDIO_PLATFORM}"
|
list(APPEND PVS_STUDIO_ARGS --cfg "${PVS_STUDIO_CONFIG}")
|
||||||
|
endif ()
|
||||||
|
|
||||||
|
list(APPEND PVS_STUDIO_ARGS --platform "${PVS_STUDIO_PLATFORM}"
|
||||||
--preprocessor "${PVS_STUDIO_PREPROCESSOR}")
|
--preprocessor "${PVS_STUDIO_PREPROCESSOR}")
|
||||||
|
|
||||||
if (NOT "${PVS_STUDIO_SUPPRESS_BASE}" STREQUAL "")
|
if (NOT "${PVS_STUDIO_SUPPRESS_BASE}" STREQUAL "")
|
||||||
@ -418,6 +425,15 @@ function (pvs_studio_add_target)
|
|||||||
list(APPEND PVS_STUDIO_ARGS --cc "${CMAKE_C_COMPILER}")
|
list(APPEND PVS_STUDIO_ARGS --cc "${CMAKE_C_COMPILER}")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
|
if (PVS_STUDIO_KEEP_INTERMEDIATE_FILES)
|
||||||
|
list(APPEND PVS_STUDIO_ARGS --dump-files)
|
||||||
|
endif()
|
||||||
|
|
||||||
|
string(REGEX REPLACE [123,:] "" ANALYZER_MODE ${PVS_STUDIO_MODE})
|
||||||
|
if (NOT "$ANALYZER_MODE" STREQUAL "GA")
|
||||||
|
list (APPEND PVS_STUDIO_ARGS -a "${ANALYZER_MODE}")
|
||||||
|
endif ()
|
||||||
|
|
||||||
set(PVS_STUDIO_PLOGS "")
|
set(PVS_STUDIO_PLOGS "")
|
||||||
|
|
||||||
set(PVS_STUDIO_RECURSIVE_TARGETS_NEW)
|
set(PVS_STUDIO_RECURSIVE_TARGETS_NEW)
|
||||||
@ -482,7 +498,7 @@ function (pvs_studio_add_target)
|
|||||||
${PVS_STUDIO_ARGS}
|
${PVS_STUDIO_ARGS}
|
||||||
COMMENT "Analyzing with PVS-Studio"
|
COMMENT "Analyzing with PVS-Studio"
|
||||||
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
|
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
|
||||||
DEPENDS "${PVS_STUDIO_CONFIG}" "${PVS_STUDIO_SUPPRESS_BASE}"
|
DEPENDS "${PVS_STUDIO_SUPPRESS_BASE}" "${PVS_STUDIO_DEPENDS}"
|
||||||
)
|
)
|
||||||
list(APPEND PVS_STUDIO_PLOGS_LOGS "${COMPILE_COMMANDS_LOG}.always")
|
list(APPEND PVS_STUDIO_PLOGS_LOGS "${COMPILE_COMMANDS_LOG}.always")
|
||||||
list(APPEND PVS_STUDIO_PLOGS_DEPENDENCIES "${COMPILE_COMMANDS_LOG}")
|
list(APPEND PVS_STUDIO_PLOGS_DEPENDENCIES "${COMPILE_COMMANDS_LOG}")
|
||||||
@ -494,9 +510,9 @@ function (pvs_studio_add_target)
|
|||||||
string(REPLACE / \\ PVS_STUDIO_PLOGS "${PVS_STUDIO_PLOGS}")
|
string(REPLACE / \\ PVS_STUDIO_PLOGS "${PVS_STUDIO_PLOGS}")
|
||||||
endif ()
|
endif ()
|
||||||
if (WIN32)
|
if (WIN32)
|
||||||
set(COMMANDS COMMAND type ${PVS_STUDIO_PLOGS} ${PVS_STUDIO_PLOGS_LOGS} > "${PVS_STUDIO_LOG}" 2>nul)
|
set(COMMANDS COMMAND type ${PVS_STUDIO_PLOGS} ${PVS_STUDIO_PLOGS_LOGS} > "${PVS_STUDIO_LOG}" 2>nul || cd .)
|
||||||
else ()
|
else ()
|
||||||
set(COMMANDS COMMAND cat ${PVS_STUDIO_PLOGS} ${PVS_STUDIO_PLOGS_LOGS} > "${PVS_STUDIO_LOG}")
|
set(COMMANDS COMMAND cat ${PVS_STUDIO_PLOGS} ${PVS_STUDIO_PLOGS_LOGS} > "${PVS_STUDIO_LOG}" 2>/dev/null || true)
|
||||||
endif ()
|
endif ()
|
||||||
set(COMMENT "Generating ${LOG_RELATIVE}")
|
set(COMMENT "Generating ${LOG_RELATIVE}")
|
||||||
if (NOT "${PVS_STUDIO_FORMAT}" STREQUAL "" OR PVS_STUDIO_OUTPUT)
|
if (NOT "${PVS_STUDIO_FORMAT}" STREQUAL "" OR PVS_STUDIO_OUTPUT)
|
||||||
@ -506,7 +522,7 @@ function (pvs_studio_add_target)
|
|||||||
list(APPEND COMMANDS
|
list(APPEND COMMANDS
|
||||||
COMMAND "${CMAKE_COMMAND}" -E remove -f "${PVS_STUDIO_LOG}.pvs.raw"
|
COMMAND "${CMAKE_COMMAND}" -E remove -f "${PVS_STUDIO_LOG}.pvs.raw"
|
||||||
COMMAND "${CMAKE_COMMAND}" -E rename "${PVS_STUDIO_LOG}" "${PVS_STUDIO_LOG}.pvs.raw"
|
COMMAND "${CMAKE_COMMAND}" -E rename "${PVS_STUDIO_LOG}" "${PVS_STUDIO_LOG}.pvs.raw"
|
||||||
COMMAND "${PVS_STUDIO_CONVERTER}" -t "${PVS_STUDIO_FORMAT}" "${PVS_STUDIO_LOG}.pvs.raw" -o "${PVS_STUDIO_LOG}" -a "${PVS_STUDIO_MODE}"
|
COMMAND "${PVS_STUDIO_CONVERTER}" "${PVS_STUDIO_CONVERTER_ARGS}" -t "${PVS_STUDIO_FORMAT}" "${PVS_STUDIO_LOG}.pvs.raw" -o "${PVS_STUDIO_LOG}" -a "${PVS_STUDIO_MODE}"
|
||||||
)
|
)
|
||||||
if(NOT PVS_STUDIO_KEEP_COMBINED_PLOG)
|
if(NOT PVS_STUDIO_KEEP_COMBINED_PLOG)
|
||||||
list(APPEND COMMANDS COMMAND "${CMAKE_COMMAND}" -E remove -f "${PVS_STUDIO_LOG}.pvs.raw")
|
list(APPEND COMMANDS COMMAND "${CMAKE_COMMAND}" -E remove -f "${PVS_STUDIO_LOG}.pvs.raw")
|
||||||
@ -545,7 +561,9 @@ function (pvs_studio_add_target)
|
|||||||
set(COMMANDS "")
|
set(COMMANDS "")
|
||||||
endif ()
|
endif ()
|
||||||
|
|
||||||
add_custom_target("${PVS_STUDIO_TARGET}" ${ALL} ${COMMANDS} WORKING_DIRECTORY "${CMAKE_BINARY_DIR}" DEPENDS ${PVS_STUDIO_DEPENDS} "${PVS_STUDIO_LOG}")
|
add_custom_target("${PVS_STUDIO_TARGET}" ${ALL} ${COMMANDS}
|
||||||
|
WORKING_DIRECTORY "${CMAKE_BINARY_DIR}"
|
||||||
|
DEPENDS ${PVS_STUDIO_DEPENDS} "${PVS_STUDIO_LOG}")
|
||||||
|
|
||||||
# A workaround to add implicit dependencies of source files from include directories
|
# A workaround to add implicit dependencies of source files from include directories
|
||||||
set_target_properties("${PVS_STUDIO_TARGET}" PROPERTIES INCLUDE_DIRECTORIES "${inc_path}")
|
set_target_properties("${PVS_STUDIO_TARGET}" PROPERTIES INCLUDE_DIRECTORIES "${inc_path}")
|
||||||
|
15
thirdparty/cotire.cmake
vendored
15
thirdparty/cotire.cmake
vendored
@ -640,6 +640,7 @@ function (cotire_get_target_include_directories _config _language _target _inclu
|
|||||||
endforeach()
|
endforeach()
|
||||||
list (REMOVE_DUPLICATES _includeDirs)
|
list (REMOVE_DUPLICATES _includeDirs)
|
||||||
list (REMOVE_DUPLICATES _systemIncludeDirs)
|
list (REMOVE_DUPLICATES _systemIncludeDirs)
|
||||||
|
list (REMOVE_ITEM _systemIncludeDirs "/usr/include")
|
||||||
if (CMAKE_${_language}_IMPLICIT_INCLUDE_DIRECTORIES)
|
if (CMAKE_${_language}_IMPLICIT_INCLUDE_DIRECTORIES)
|
||||||
list (REMOVE_ITEM _includeDirs ${CMAKE_${_language}_IMPLICIT_INCLUDE_DIRECTORIES})
|
list (REMOVE_ITEM _includeDirs ${CMAKE_${_language}_IMPLICIT_INCLUDE_DIRECTORIES})
|
||||||
endif()
|
endif()
|
||||||
@ -3706,7 +3707,7 @@ if (CMAKE_SCRIPT_MODE_FILE)
|
|||||||
COMPILER_VERSION "${CMAKE_${COTIRE_TARGET_LANGUAGE}_COMPILER_VERSION}"
|
COMPILER_VERSION "${CMAKE_${COTIRE_TARGET_LANGUAGE}_COMPILER_VERSION}"
|
||||||
LANGUAGE "${COTIRE_TARGET_LANGUAGE}"
|
LANGUAGE "${COTIRE_TARGET_LANGUAGE}"
|
||||||
IGNORE_PATH "${COTIRE_TARGET_IGNORE_PATH};${COTIRE_ADDITIONAL_PREFIX_HEADER_IGNORE_PATH}"
|
IGNORE_PATH "${COTIRE_TARGET_IGNORE_PATH};${COTIRE_ADDITIONAL_PREFIX_HEADER_IGNORE_PATH}"
|
||||||
INCLUDE_PATH ${COTIRE_TARGET_INCLUDE_PATH}
|
INCLUDE_PATH "${COTIRE_TARGET_INCLUDE_PATH};${COTIRE_ADDITIONAL_PREFIX_HEADER_INCLUDE_PATH}"
|
||||||
IGNORE_EXTENSIONS "${CMAKE_${COTIRE_TARGET_LANGUAGE}_SOURCE_FILE_EXTENSIONS};${COTIRE_ADDITIONAL_PREFIX_HEADER_IGNORE_EXTENSIONS}"
|
IGNORE_EXTENSIONS "${CMAKE_${COTIRE_TARGET_LANGUAGE}_SOURCE_FILE_EXTENSIONS};${COTIRE_ADDITIONAL_PREFIX_HEADER_IGNORE_EXTENSIONS}"
|
||||||
INCLUDE_PRIORITY_PATH ${COTIRE_TARGET_INCLUDE_PRIORITY_PATH}
|
INCLUDE_PRIORITY_PATH ${COTIRE_TARGET_INCLUDE_PRIORITY_PATH}
|
||||||
INCLUDE_DIRECTORIES ${_includeDirs}
|
INCLUDE_DIRECTORIES ${_includeDirs}
|
||||||
@ -3807,6 +3808,9 @@ else()
|
|||||||
set (COTIRE_ADDITIONAL_PREFIX_HEADER_IGNORE_PATH "" CACHE STRING
|
set (COTIRE_ADDITIONAL_PREFIX_HEADER_IGNORE_PATH "" CACHE STRING
|
||||||
"Ignore headers from these directories when generating the prefix header.")
|
"Ignore headers from these directories when generating the prefix header.")
|
||||||
|
|
||||||
|
set (COTIRE_ADDITIONAL_PREFIX_HEADER_INCLUDE_PATH "" CACHE STRING
|
||||||
|
"Include headers from these directories when generating the prefix header.")
|
||||||
|
|
||||||
set (COTIRE_UNITY_SOURCE_EXCLUDE_EXTENSIONS "m;mm" CACHE STRING
|
set (COTIRE_UNITY_SOURCE_EXCLUDE_EXTENSIONS "m;mm" CACHE STRING
|
||||||
"Ignore sources with the listed file extensions from the generated unity source.")
|
"Ignore sources with the listed file extensions from the generated unity source.")
|
||||||
|
|
||||||
@ -3883,6 +3887,15 @@ else()
|
|||||||
"If not defined, defaults to empty list."
|
"If not defined, defaults to empty list."
|
||||||
)
|
)
|
||||||
|
|
||||||
|
define_property(
|
||||||
|
CACHED_VARIABLE PROPERTY "COTIRE_ADDITIONAL_PREFIX_HEADER_INCLUDE_PATH"
|
||||||
|
BRIEF_DOCS "Include headers from these directories when generating the prefix header."
|
||||||
|
FULL_DOCS
|
||||||
|
"The variable can be set to a semicolon separated list of include directories."
|
||||||
|
"If a header file is found in one of these directories or sub-directories, it will be included in the generated prefix header."
|
||||||
|
"If not defined, defaults to empty list."
|
||||||
|
)
|
||||||
|
|
||||||
define_property(
|
define_property(
|
||||||
CACHED_VARIABLE PROPERTY "COTIRE_ADDITIONAL_PREFIX_HEADER_IGNORE_EXTENSIONS"
|
CACHED_VARIABLE PROPERTY "COTIRE_ADDITIONAL_PREFIX_HEADER_IGNORE_EXTENSIONS"
|
||||||
BRIEF_DOCS "Ignore includes with the listed file extensions from the generated prefix header."
|
BRIEF_DOCS "Ignore includes with the listed file extensions from the generated prefix header."
|
||||||
|
Reference in New Issue
Block a user