@@ -71,22 +71,30 @@ endif()
71
71
stacktrace_check(BOOST_STACKTRACE_HAS_WINDBG has_windbg.cpp "" "dbgeng;ole32" "" )
72
72
stacktrace_check(BOOST_STACKTRACE_HAS_WINDBG_CACHED has_windbg_cached.cpp "${CMAKE_CURRENT_SOURCE_DIR} /../config/include" "dbgeng;ole32" "" )
73
73
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
+
74
79
option (BOOST_STACKTRACE_ENABLE_NOOP "Boost.Stacktrace: build boost_stacktrace_noop" ON )
75
80
option (BOOST_STACKTRACE_ENABLE_BACKTRACE "Boost.Stacktrace: build boost_stacktrace_backtrace" ${BOOST_STACKTRACE_HAS_BACKTRACE} )
76
81
option (BOOST_STACKTRACE_ENABLE_ADDR2LINE "Boost.Stacktrace: build boost_stacktrace_addr2line" ${_default_addr2line} )
77
82
option (BOOST_STACKTRACE_ENABLE_BASIC "Boost.Stacktrace: build boost_stacktrace_basic" ON )
78
83
option (BOOST_STACKTRACE_ENABLE_WINDBG "Boost.Stacktrace: build boost_stacktrace_windbg" ${BOOST_STACKTRACE_HAS_WINDBG} )
79
84
option (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} )
80
86
81
87
unset (_default_addr2line)
88
+ unset (_default_from_exception)
82
89
83
90
message (STATUS "Boost.Stacktrace: "
84
91
"noop ${BOOST_STACKTRACE_ENABLE_NOOP} , "
85
92
"backtrace ${BOOST_STACKTRACE_ENABLE_BACKTRACE} , "
86
93
"addr2line ${BOOST_STACKTRACE_ENABLE_ADDR2LINE} , "
87
94
"basic ${BOOST_STACKTRACE_ENABLE_BASIC} , "
88
95
"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} "
90
98
)
91
99
92
100
stacktrace_add_library(noop ${BOOST_STACKTRACE_ENABLE_NOOP} "" "" )
@@ -95,6 +103,7 @@ stacktrace_add_library(addr2line ${BOOST_STACKTRACE_ENABLE_ADDR2LINE} "${CMAKE_D
95
103
stacktrace_add_library(basic ${BOOST_STACKTRACE_ENABLE_BASIC} "${CMAKE_DL_LIBS} " "" )
96
104
stacktrace_add_library(windbg ${BOOST_STACKTRACE_ENABLE_WINDBG} "dbgeng;ole32" "_GNU_SOURCE=1" )
97
105
stacktrace_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} " "" )
98
107
99
108
# boost_stacktrace, default library
100
109
@@ -123,6 +132,10 @@ elseif(BOOST_STACKTRACE_ENABLE_NOOP)
123
132
124
133
target_link_libraries (boost_stacktrace INTERFACE Boost::stacktrace_noop)
125
134
135
+ elseif (BOOST_STACKTRACE_ENABLE_FROM_EXCEPTION)
136
+
137
+ target_link_libraries (boost_stacktrace INTERFACE Boost::stacktrace_from_exception)
138
+
126
139
endif ()
127
140
128
141
#
0 commit comments