diff --git a/CMakeLists.txt b/CMakeLists.txt index 0816499c..1cfe878a 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -40,6 +40,7 @@ option(CROSS_COMPILE_AARCH64 "Cross-compile for 64-bit ARM" off) option(COMPILE_WIN32 "Compile for Win32" off) set(ENABLE_LIBDW_SUPPORT ON) +option(ENABLE_BACKWARD "Enable support for backtraces" ON) if (COMPILE_WIN32) set(ARCH amd64) @@ -193,30 +194,35 @@ if (NOT DISABLE_WEBSOCKETS) endif (NOT DISABLE_WEBSOCKETS) # elfutils (libdw-dev) -if (ENABLE_LIBDW_SUPPORT) - find_path(LIBDW_INCLUDE_DIR NAMES elfutils/libdw.h elfutils/libdwfl.h HINTS /usr /usr/local PATH_SUFFIXES include) +if (ENABLE_BACKWARD) + if (ENABLE_LIBDW_SUPPORT) + find_path(LIBDW_INCLUDE_DIR NAMES elfutils/libdw.h elfutils/libdwfl.h HINTS /usr /usr/local PATH_SUFFIXES include) - include(FindPackageHandleStandardArgs) - find_package_handle_standard_args(Libdw DEFAULT_MSG LIBDW_INCLUDE_DIR) + include(FindPackageHandleStandardArgs) + find_package_handle_standard_args(Libdw DEFAULT_MSG LIBDW_INCLUDE_DIR) - if (LIBDW_FOUND) - message("-- libdw (libdw-dev) found, detailed backtrace support enabled") - add_definitions(-DBACKWARD_HAS_DW=1) - set(LIBDW_LIBRARY "dw") + if (LIBDW_FOUND) + message("-- libdw (libdw-dev) found, detailed backtrace support enabled") + add_definitions(-DBACKWARD_HAS_DW=1) + set(LIBDW_LIBRARY "dw") + else() + message("-- libdw (libdw-dev) not found, simple backtrace only") + add_definitions(-DBACKWARD_HAS_DW=0 -DBACKWARD_HAS_BACKTRACE_SYMBOL=1) + set(LIBDW_INCLUDE_DIR "") + set(LIBDW_LIBRARY "") + endif (LIBDW_FOUND) + + mark_as_advanced(LIBDW_INCLUDE_DIR LIBDW_LIBRARY) else() - message("-- libdw (libdw-dev) not found, simple backtrace only") + message("-- libdw (libdw-dev) disabled, simple backtrace only") add_definitions(-DBACKWARD_HAS_DW=0 -DBACKWARD_HAS_BACKTRACE_SYMBOL=1) set(LIBDW_INCLUDE_DIR "") set(LIBDW_LIBRARY "") - endif (LIBDW_FOUND) - - mark_as_advanced(LIBDW_INCLUDE_DIR LIBDW_LIBRARY) + endif (ENABLE_LIBDW_SUPPORT) else() - message("-- libdw (libdw-dev) disabled, simple backtrace only") - add_definitions(-DBACKWARD_HAS_DW=0 -DBACKWARD_HAS_BACKTRACE_SYMBOL=1) - set(LIBDW_INCLUDE_DIR "") - set(LIBDW_LIBRARY "") -endif (ENABLE_LIBDW_SUPPORT) + message("-- backtrace has been disabled per user request. Here be dragons!") + add_definitions(-DBACKWARD_HAS_BACKTRACE_SYMBOL=0 -DBACKWARD_SYSTEM_UNKNOWN=1) +endif (ENABLE_BACKWARD) # FinalCut if (ENABLE_TUI_SUPPORT AND NOT FC_INCLUDED)