aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--cmake/showoptions.cmake6
-rw-r--r--dep/boost/CMakeLists.txt22
2 files changed, 28 insertions, 0 deletions
diff --git a/cmake/showoptions.cmake b/cmake/showoptions.cmake
index 5a80136312d..ae303259bda 100644
--- a/cmake/showoptions.cmake
+++ b/cmake/showoptions.cmake
@@ -170,6 +170,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!")
diff --git a/dep/boost/CMakeLists.txt b/dep/boost/CMakeLists.txt
index 81ff5c04761..e8c0d687e8c 100644
--- a/dep/boost/CMakeLists.txt
+++ b/dep/boost/CMakeLists.txt
@@ -80,3 +80,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()