@@ -71,22 +71,30 @@ endif()
7171stacktrace_check(BOOST_STACKTRACE_HAS_WINDBG has_windbg.cpp "" "dbgeng;ole32" "" )
7272stacktrace_check(BOOST_STACKTRACE_HAS_WINDBG_CACHED has_windbg_cached.cpp "${CMAKE_CURRENT_SOURCE_DIR} /../config/include" "dbgeng;ole32" "" )
7373
74+ set (_default_from_exception ON )
75+ if (NOT CMAKE_SYSTEM_PROCESSOR MATCHES "x86_64|AMD64|amd64|i386|i686|x86" )
76+ set (_default_from_exception OFF )
77+ endif ()
78+
7479option (BOOST_STACKTRACE_ENABLE_NOOP "Boost.Stacktrace: build boost_stacktrace_noop" ON )
7580option (BOOST_STACKTRACE_ENABLE_BACKTRACE "Boost.Stacktrace: build boost_stacktrace_backtrace" ${BOOST_STACKTRACE_HAS_BACKTRACE} )
7681option (BOOST_STACKTRACE_ENABLE_ADDR2LINE "Boost.Stacktrace: build boost_stacktrace_addr2line" ${_default_addr2line} )
7782option (BOOST_STACKTRACE_ENABLE_BASIC "Boost.Stacktrace: build boost_stacktrace_basic" ON )
7883option (BOOST_STACKTRACE_ENABLE_WINDBG "Boost.Stacktrace: build boost_stacktrace_windbg" ${BOOST_STACKTRACE_HAS_WINDBG} )
7984option (BOOST_STACKTRACE_ENABLE_WINDBG_CACHED "Boost.Stacktrace: build boost_stacktrace_windbg_cached" ${BOOST_STACKTRACE_HAS_WINDBG_CACHED} )
85+ option (BOOST_STACKTRACE_ENABLE_FROM_EXCEPTION "Boost.Stacktrace: build boost_stacktrace_from_exception" ${_default_from_exception} )
8086
8187unset (_default_addr2line)
88+ unset (_default_from_exception)
8289
8390message (STATUS "Boost.Stacktrace: "
8491 "noop ${BOOST_STACKTRACE_ENABLE_NOOP} , "
8592 "backtrace ${BOOST_STACKTRACE_ENABLE_BACKTRACE} , "
8693 "addr2line ${BOOST_STACKTRACE_ENABLE_ADDR2LINE} , "
8794 "basic ${BOOST_STACKTRACE_ENABLE_BASIC} , "
8895 "windbg ${BOOST_STACKTRACE_ENABLE_WINDBG} , "
89- "windbg_cached ${BOOST_STACKTRACE_ENABLE_WINDBG_CACHED} "
96+ "windbg_cached ${BOOST_STACKTRACE_ENABLE_WINDBG_CACHED} , "
97+ "from_exception ${BOOST_STACKTRACE_ENABLE_FROM_EXCEPTION} "
9098)
9199
92100stacktrace_add_library(noop ${BOOST_STACKTRACE_ENABLE_NOOP} "" "" )
@@ -95,6 +103,7 @@ stacktrace_add_library(addr2line ${BOOST_STACKTRACE_ENABLE_ADDR2LINE} "${CMAKE_D
95103stacktrace_add_library(basic ${BOOST_STACKTRACE_ENABLE_BASIC} "${CMAKE_DL_LIBS} " "" )
96104stacktrace_add_library(windbg ${BOOST_STACKTRACE_ENABLE_WINDBG} "dbgeng;ole32" "_GNU_SOURCE=1" )
97105stacktrace_add_library(windbg_cached ${BOOST_STACKTRACE_ENABLE_WINDBG_CACHED} "dbgeng;ole32" "_GNU_SOURCE=1" )
106+ stacktrace_add_library(from_exception ${BOOST_STACKTRACE_ENABLE_FROM_EXCEPTION} "${CMAKE_DL_LIBS} " "" )
98107
99108# boost_stacktrace, default library
100109
@@ -123,6 +132,10 @@ elseif(BOOST_STACKTRACE_ENABLE_NOOP)
123132
124133 target_link_libraries (boost_stacktrace INTERFACE Boost::stacktrace_noop)
125134
135+ elseif (BOOST_STACKTRACE_ENABLE_FROM_EXCEPTION)
136+
137+ target_link_libraries (boost_stacktrace INTERFACE Boost::stacktrace_from_exception)
138+
126139endif ()
127140
128141#
0 commit comments