@@ -40,6 +40,7 @@ option(CROSS_COMPILE_AARCH64 "Cross-compile for 64-bit ARM" off)
4040option (COMPILE_WIN32 "Compile for Win32" off )
4141
4242set (ENABLE_LIBDW_SUPPORT ON )
43+ option (ENABLE_BACKWARD "Enable support for backtraces" ON )
4344
4445if (COMPILE_WIN32)
4546 set (ARCH amd64)
@@ -193,30 +194,35 @@ if (NOT DISABLE_WEBSOCKETS)
193194endif (NOT DISABLE_WEBSOCKETS )
194195
195196# elfutils (libdw-dev)
196- if (ENABLE_LIBDW_SUPPORT)
197- find_path (LIBDW_INCLUDE_DIR NAMES elfutils/libdw.h elfutils/libdwfl.h HINTS /usr /usr/local PATH_SUFFIXES include )
197+ if (ENABLE_BACKWARD)
198+ if (ENABLE_LIBDW_SUPPORT)
199+ find_path (LIBDW_INCLUDE_DIR NAMES elfutils/libdw.h elfutils/libdwfl.h HINTS /usr /usr/local PATH_SUFFIXES include )
198200
199- include (FindPackageHandleStandardArgs )
200- find_package_handle_standard_args (Libdw DEFAULT_MSG LIBDW_INCLUDE_DIR)
201+ include (FindPackageHandleStandardArgs )
202+ find_package_handle_standard_args (Libdw DEFAULT_MSG LIBDW_INCLUDE_DIR)
201203
202- if (LIBDW_FOUND)
203- message ("-- libdw (libdw-dev) found, detailed backtrace support enabled" )
204- add_definitions (-DBACKWARD_HAS_DW=1 )
205- set (LIBDW_LIBRARY "dw" )
204+ if (LIBDW_FOUND)
205+ message ("-- libdw (libdw-dev) found, detailed backtrace support enabled" )
206+ add_definitions (-DBACKWARD_HAS_DW=1 )
207+ set (LIBDW_LIBRARY "dw" )
208+ else ()
209+ message ("-- libdw (libdw-dev) not found, simple backtrace only" )
210+ add_definitions (-DBACKWARD_HAS_DW=0 -DBACKWARD_HAS_BACKTRACE_SYMBOL=1 )
211+ set (LIBDW_INCLUDE_DIR "" )
212+ set (LIBDW_LIBRARY "" )
213+ endif (LIBDW_FOUND )
214+
215+ mark_as_advanced (LIBDW_INCLUDE_DIR LIBDW_LIBRARY )
206216 else ()
207- message ("-- libdw (libdw-dev) not found , simple backtrace only" )
217+ message ("-- libdw (libdw-dev) disabled , simple backtrace only" )
208218 add_definitions (-DBACKWARD_HAS_DW=0 -DBACKWARD_HAS_BACKTRACE_SYMBOL=1 )
209219 set (LIBDW_INCLUDE_DIR "" )
210220 set (LIBDW_LIBRARY "" )
211- endif (LIBDW_FOUND )
212-
213- mark_as_advanced (LIBDW_INCLUDE_DIR LIBDW_LIBRARY )
221+ endif (ENABLE_LIBDW_SUPPORT )
214222else ()
215- message ("-- libdw (libdw-dev) disabled, simple backtrace only" )
216- add_definitions (-DBACKWARD_HAS_DW=0 -DBACKWARD_HAS_BACKTRACE_SYMBOL=1 )
217- set (LIBDW_INCLUDE_DIR "" )
218- set (LIBDW_LIBRARY "" )
219- endif (ENABLE_LIBDW_SUPPORT )
223+ message ("-- backtrace has been disabled per user request. Here be dragons!" )
224+ add_definitions (-DBACKWARD_HAS_BACKTRACE_SYMBOL=0 -DBACKWARD_SYSTEM_UNKNOWN=1 )
225+ endif (ENABLE_BACKWARD )
220226
221227# FinalCut
222228if (ENABLE_TUI_SUPPORT AND NOT FC_INCLUDED)
0 commit comments