aboutsummaryrefslogtreecommitdiff
path: root/cmake/FindLibunwind.cmake
diff options
context:
space:
mode:
authormoneromooo-monero <moneromooo-monero@users.noreply.github.com>2016-12-10 11:17:27 +0000
committermoneromooo-monero <moneromooo-monero@users.noreply.github.com>2016-12-24 00:00:45 +0000
commit0020ad7d99580e246f472e6978afe41788cf9e0f (patch)
tree753aeb7084c2c11c6628a2815fd6425f79d72f8d /cmake/FindLibunwind.cmake
parentMerge pull request #1483 (diff)
downloadmonero-0020ad7d99580e246f472e6978afe41788cf9e0f.tar.xz
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
Diffstat (limited to '')
-rw-r--r--cmake/FindLibunwind.cmake16
1 files changed, 16 insertions, 0 deletions
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)