cmake: print which stack trace lib is used

To avoid the suprize of stack tracing being enabled
but libunwind not being linked in.
This commit is contained in:
redfish 2017-10-07 12:13:31 -04:00
parent 86e9de588c
commit 885c773af3

View File

@ -293,11 +293,13 @@ add_definitions("-DBLOCKCHAIN_DB=${BLOCKCHAIN_DB}")
# Can't install hook in static build on OSX, because OSX linker does not support --wrap # Can't install hook in static build on OSX, because OSX linker does not support --wrap
# On ARM, having libunwind package (with .so's only) installed breaks static link. # On ARM, having libunwind package (with .so's only) installed breaks static link.
# When possible, avoid stack tracing using libunwind in favor of using easylogging++.
if (APPLE) if (APPLE)
set(DEFAULT_STACK_TRACE OFF) set(DEFAULT_STACK_TRACE OFF)
set(LIBUNWIND_LIBRARIES "") set(LIBUNWIND_LIBRARIES "")
elseif(CMAKE_C_COMPILER_ID STREQUAL "GNU" AND NOT MINGW) elseif(CMAKE_C_COMPILER_ID STREQUAL "GNU" AND NOT MINGW)
set(DEFAULT_STACK_TRACE ON) set(DEFAULT_STACK_TRACE ON)
set(STACK_TRACE_LIB "easylogging++") # for diag output only
set(LIBUNWIND_LIBRARIES "") set(LIBUNWIND_LIBRARIES "")
elseif (ARM AND STATIC) elseif (ARM AND STATIC)
set(DEFAULT_STACK_TRACE OFF) set(DEFAULT_STACK_TRACE OFF)
@ -306,6 +308,7 @@ else()
find_package(Libunwind) find_package(Libunwind)
if(LIBUNWIND_FOUND) if(LIBUNWIND_FOUND)
set(DEFAULT_STACK_TRACE ON) set(DEFAULT_STACK_TRACE ON)
set(STACK_TRACE_LIB "libunwind") # for diag output only
else() else()
set(DEFAULT_STACK_TRACE OFF) set(DEFAULT_STACK_TRACE OFF)
set(LIBUNWIND_LIBRARIES "") set(LIBUNWIND_LIBRARIES "")
@ -315,7 +318,7 @@ endif()
option(STACK_TRACE "Install a hook that dumps stack on exception" ${DEFAULT_STACK_TRACE}) option(STACK_TRACE "Install a hook that dumps stack on exception" ${DEFAULT_STACK_TRACE})
if(STACK_TRACE) if(STACK_TRACE)
message(STATUS "Stack trace on exception enabled") message(STATUS "Stack trace on exception enabled (using ${STACK_TRACE_LIB})")
else() else()
message(STATUS "Stack trace on exception disabled") message(STATUS "Stack trace on exception disabled")
endif() endif()