44 lines
1.9 KiB
CMake
44 lines
1.9 KiB
CMake
|
# Taken from https://github.com/monero-project/monero/blob/31bdf7bd113c2576fe579ef3a25a2d8fef419ffc/cmake/FindLibunwind.cmake
|
||
|
# modifications:
|
||
|
# - remove linkage against gcc_eh because it was causing segfaults in various of our unit tests
|
||
|
|
||
|
# - Try to find libunwind
|
||
|
# Once done this will define
|
||
|
#
|
||
|
# LIBUNWIND_FOUND - system has libunwind
|
||
|
# LIBUNWIND_INCLUDE_DIR - the libunwind include directory
|
||
|
# LIBUNWIND_LIBRARIES - Link these to use libunwind
|
||
|
# LIBUNWIND_DEFINITIONS - Compiler switches required for using libunwind
|
||
|
|
||
|
# Copyright (c) 2006, Alexander Dymo, <adymo@kdevelop.org>
|
||
|
#
|
||
|
# Redistribution and use is allowed according to the terms of the BSD license.
|
||
|
# For details see the accompanying COPYING-CMAKE-SCRIPTS file.
|
||
|
|
||
|
find_path(LIBUNWIND_INCLUDE_DIR libunwind.h
|
||
|
/usr/include
|
||
|
/usr/local/include
|
||
|
)
|
||
|
|
||
|
find_library(LIBUNWIND_LIBRARIES NAMES unwind )
|
||
|
if(NOT LIBUNWIND_LIBRARIES STREQUAL "LIBUNWIND_LIBRARIES-NOTFOUND")
|
||
|
if (CMAKE_COMPILER_IS_GNUCC)
|
||
|
set(LIBUNWIND_LIBRARIES "${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)
|
||
|
# show the LIBUNWIND_INCLUDE_DIR and LIBUNWIND_LIBRARIES variables only in the advanced view
|
||
|
mark_as_advanced(LIBUNWIND_INCLUDE_DIR LIBUNWIND_LIBRARIES )
|