From 0020ad7d99580e246f472e6978afe41788cf9e0f Mon Sep 17 00:00:00 2001 From: moneromooo-monero Date: Sat, 10 Dec 2016 11:17:27 +0000 Subject: [PATCH] cmake: link against liblzma when found, for libunwind Some versions of libunwind need liblzma. If liblzma is found, we link against it unconditionally. If the installed libunwind didn't need it, this is a nop. Tested and fine tuned by iDunk --- cmake/FindLibunwind.cmake | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/cmake/FindLibunwind.cmake b/cmake/FindLibunwind.cmake index 9946e7cdd..af657cad1 100644 --- a/cmake/FindLibunwind.cmake +++ b/cmake/FindLibunwind.cmake @@ -17,6 +17,22 @@ find_path(LIBUNWIND_INCLUDE_DIR libunwind.h ) find_library(LIBUNWIND_LIBRARIES NAMES unwind ) +if(NOT LIBUNWIND_LIBRARIES STREQUAL "LIBUNWIND_LIBRARIES-NOTFOUND") + if (CMAKE_COMPILER_IS_GNUCC) + set(LIBUNWIND_LIBRARIES "gcc_eh;${LIBUNWIND_LIBRARIES}") + endif() +endif() + +# some versions of libunwind need liblzma, and we don't use pkg-config +# so we just look whether liblzma is installed, and add it if it is. +# It might not be actually needed, but doesn't hurt if it is not. +# We don't need any headers, just the lib, as it's privately needed. +message(STATUS "looking for liblzma") +find_library(LIBLZMA_LIBRARIES lzma ) +if(NOT LIBLZMA_LIBRARIES STREQUAL "LIBLZMA_LIBRARIES-NOTFOUND") + message(STATUS "liblzma found") + set(LIBUNWIND_LIBRARIES "${LIBUNWIND_LIBRARIES};${LIBLZMA_LIBRARIES}") +endif() include(FindPackageHandleStandardArgs) find_package_handle_standard_args(Libunwind "Could not find libunwind" LIBUNWIND_INCLUDE_DIR LIBUNWIND_LIBRARIES)