Skip to content

Commit 52e380a

Browse files
attempt to add a flag to disable backtrace (#120)
1 parent ed028fd commit 52e380a

1 file changed

Lines changed: 23 additions & 17 deletions

File tree

CMakeLists.txt

Lines changed: 23 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ option(CROSS_COMPILE_AARCH64 "Cross-compile for 64-bit ARM" off)
4040
option(COMPILE_WIN32 "Compile for Win32" off)
4141

4242
set(ENABLE_LIBDW_SUPPORT ON)
43+
option(ENABLE_BACKWARD "Enable support for backtraces" ON)
4344

4445
if (COMPILE_WIN32)
4546
set(ARCH amd64)
@@ -193,30 +194,35 @@ if (NOT DISABLE_WEBSOCKETS)
193194
endif (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)
214222
else()
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
222228
if (ENABLE_TUI_SUPPORT AND NOT FC_INCLUDED)

0 commit comments

Comments
 (0)