mirror of
https://github.com/f4exb/sdrangel.git
synced 2025-10-17 14:10:25 -04:00
Add memory buffer to Logger, so last 500 log messages can be included in crash report. Generate and include stripped pdb files so stack trace can include function names.
59 lines
2.1 KiB
CMake
59 lines
2.1 KiB
CMake
include_guard(GLOBAL)
|
|
|
|
include(DetectArchitecture)
|
|
|
|
if (NOT APPLE)
|
|
set(CMAKE_INTERPROCEDURAL_OPTIMIZATION ON)
|
|
message(STATUS "Interprocedural optimization enabled")
|
|
else()
|
|
message(STATUS "Interprocedural optimization is disabled for Mac OS")
|
|
endif()
|
|
|
|
if(WIN32)
|
|
add_compile_definitions(
|
|
NOMINMAX
|
|
_USE_MATH_DEFINES
|
|
_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES
|
|
_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT
|
|
)
|
|
endif()
|
|
|
|
if(NOT MSVC)
|
|
add_compile_options(-Wall -Wextra -Wvla -ffast-math -fno-finite-math-only -ftree-vectorize)
|
|
add_compile_options($<$<COMPILE_LANGUAGE:CXX>:-Woverloaded-virtual>)
|
|
if (CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
|
|
add_compile_options(-Wno-inconsistent-missing-override)
|
|
endif()
|
|
else()
|
|
# Disable some warnings, so more useful warnings aren't hidden in the noise
|
|
# 4996 'fopen': This function or variable may be unsafe. Consider using fopen_s instead.
|
|
# C4267: 'return': conversion from 'size_t' to 'int', possible loss of data
|
|
# C4305: 'initializing': truncation from 'double' to 'Real'
|
|
add_compile_options(/wd4996 /wd4267 /wd4305)
|
|
|
|
if(CMAKE_BUILD_TYPE MATCHES "Release")
|
|
# Include stripped debug info in release builds so crash handler can generate stack trace with function names
|
|
add_compile_options(/Zi)
|
|
add_link_options(/Zi /PDBSTRIPPED:$<TARGET_PROPERTY:RUNTIME_OUTPUT_DIRECTORY>/$<TARGET_PROPERTY:NAME>stripped.pdb)
|
|
endif()
|
|
endif()
|
|
|
|
if (SANITIZE_ADDRESS)
|
|
message(STATUS "Activate address sanitization")
|
|
if(MSVC)
|
|
set(ASAN_LIB_ARCH ${MSVC_CXX_ARCHITECTURE_ID})
|
|
string(TOLOWER ${ASAN_LIB_ARCH} ASAN_LIB_ARCH)
|
|
if(ASAN_LIB_ARCH STREQUAL "x86")
|
|
set(ASAN_LIB_ARCH "i386")
|
|
elseif(ASAN_LIB_ARCH STREQUAL "x64")
|
|
set(ASAN_LIB_ARCH "x86_64")
|
|
endif()
|
|
add_compile_options(/fsanitize=address)
|
|
link_libraries(clang_rt.asan_dynamic-${ASAN_LIB_ARCH} clang_rt.asan_dynamic_runtime_thunk-${ASAN_LIB_ARCH})
|
|
add_link_options(/wholearchive:clang_rt.asan_dynamic_runtime_thunk-${ASAN_LIB_ARCH}.lib)
|
|
else()
|
|
add_compile_options(-fsanitize=address -fno-omit-frame-pointer -g)
|
|
add_link_options(-fsanitize=address)
|
|
endif()
|
|
endif()
|