mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-15 23:20:36 +01:00
CMake: Add WITH_BOOST_STACKTRACE option to use libbacktrace (#26119)
* CMake: Add WITH_BOOST_STACKTRACE option to use libbacktrace * Allow to specify where backtrace.h header is with cmake option -DBOOST_STACKTRACE_BACKTRACE_INCLUDE_FILE="/usr/lib/gcc/x86_64-linux-gnu/10/include/backtrace.h" Co-authored-by: Trond B. Krokli <38162891+illfated@users.noreply.github.com>
This commit is contained in:
@@ -171,6 +171,12 @@ if(WITH_STRICT_DATABASE_TYPE_CHECKS)
|
||||
add_definitions(-DTRINITY_STRICT_DATABASE_TYPE_CHECKS)
|
||||
endif()
|
||||
|
||||
if(WITH_BOOST_STACKTRACE)
|
||||
if (BOOST_STACKTRACE_BACKTRACE_INCLUDE_FILE)
|
||||
add_definitions(-DBOOST_STACKTRACE_BACKTRACE_INCLUDE_FILE="${BOOST_STACKTRACE_BACKTRACE_INCLUDE_FILE}")
|
||||
endif()
|
||||
endif()
|
||||
|
||||
if(BUILD_SHARED_LIBS)
|
||||
message("")
|
||||
message(" *** WITH_DYNAMIC_LINKING - INFO!")
|
||||
|
||||
@@ -83,3 +83,25 @@ endif()
|
||||
target_compile_definitions(boost
|
||||
INTERFACE
|
||||
-DTC_HAS_BROKEN_WSTRING_REGEX)
|
||||
|
||||
if (WITH_BOOST_STACKTRACE AND NOT WIN32)
|
||||
message("*** libbacktrace will be linked")
|
||||
|
||||
if (BOOST_STACKTRACE_BACKTRACE_INCLUDE_FILE)
|
||||
CHECK_INCLUDE_FILE(${BOOST_STACKTRACE_BACKTRACE_INCLUDE_FILE} HAS_BACKTRACE)
|
||||
else()
|
||||
CHECK_INCLUDE_FILE("backtrace.h" HAS_BACKTRACE)
|
||||
endif()
|
||||
|
||||
if (NOT HAS_BACKTRACE)
|
||||
message(FATAL_ERROR "Required header 'backtrace.h' not found. If building with a compiler other than GCC, please specify the full path in the CMake option BOOST_STACKTRACE_BACKTRACE_INCLUDE_FILE.")
|
||||
endif()
|
||||
|
||||
target_compile_definitions(boost
|
||||
INTERFACE
|
||||
-DBOOST_STACKTRACE_USE_BACKTRACE)
|
||||
|
||||
target_link_libraries(boost
|
||||
INTERFACE
|
||||
backtrace)
|
||||
endif()
|
||||
|
||||
Reference in New Issue
Block a user