diff -uNr a/cmake/FindLibunwind.cmake b/cmake/FindLibunwind.cmake
--- a/cmake/FindLibunwind.cmake	1970-01-01 01:00:00.000000000 +0100
+++ b/cmake/FindLibunwind.cmake	2018-11-20 15:53:48.799078114 +0100
@@ -0,0 +1,54 @@
+# - Try to find libunwind
+# Once done this will define
+#
+#  Libunwind_FOUND - system has libunwind
+#  unwind - cmake target for libunwind
+
+find_library (UNWIND_LIBRARY NAMES unwind DOC "unwind library")
+include (CheckIncludeFile)
+check_include_file (libunwind.h HAVE_LIBUNWIND_H)
+check_include_file (unwind.h HAVE_UNWIND_H)
+
+if (CMAKE_SYSTEM_PROCESSOR MATCHES "^arm")
+    set(LIBUNWIND_ARCH "arm")
+elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^aarch64")
+    set(LIBUNWIND_ARCH "aarch64")
+elseif (CMAKE_SYSTEM_PROCESSOR STREQUAL "x86_64" OR
+        CMAKE_SYSTEM_PROCESSOR STREQUAL "amd64" OR
+        CMAKE_SYSTEM_PROCESSOR STREQUAL "corei7-64")
+    set(LIBUNWIND_ARCH "x86_64")
+elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^i.86$")
+    set(LIBUNWIND_ARCH "x86")
+elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^ppc64")
+    set(LIBUNWIND_ARCH "ppc64")
+elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^ppc")
+    set(LIBUNWIND_ARCH "ppc32")
+elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^mips")
+    set(LIBUNWIND_ARCH "mips")
+elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^hppa")
+    set(LIBUNWIND_ARCH "hppa")
+elseif (CMAKE_SYSTEM_PROCESSOR MATCHES "^ia64")
+    set(LIBUNWIND_ARCH "ia64")
+endif()
+
+find_library (UNWIND_LIBRARY_PLATFORM NAMES "unwind-${LIBUNWIND_ARCH}" DOC "unwind library platform")
+if (UNWIND_LIBRARY_PLATFORM)
+    set(HAVE_LIB_UNWIND "1")
+endif()
+
+include(FindPackageHandleStandardArgs)
+# handle the QUIETLY and REQUIRED arguments and set Libunwind_FOUND to TRUE
+# if all listed variables are TRUE
+find_package_handle_standard_args(Libunwind DEFAULT_MSG
+    UNWIND_LIBRARY HAVE_LIBUNWIND_H HAVE_UNWIND_H HAVE_LIB_UNWIND)
+
+mark_as_advanced (UNWIND_LIBRARY UNWIND_LIBRARY_PLATFORM)
+
+if (Libunwind_FOUND)
+    add_library(unwind INTERFACE IMPORTED)
+    set_target_properties(unwind PROPERTIES
+        INTERFACE_LINK_LIBRARIES "${UNWIND_LIBRARY};${UNWIND_LIBRARY_PLATFORM}"
+    )
+else()
+    message("Can't find libunwind library")
+endif()
diff -uNr a/CMakeLists.txt b/CMakeLists.txt
--- a/CMakeLists.txt	2018-11-20 15:49:07.576278417 +0100
+++ b/CMakeLists.txt	2018-11-20 15:49:32.106819928 +0100
@@ -58,7 +58,6 @@
 check_include_file (execinfo.h HAVE_EXECINFO_H)
 check_include_file (glob.h HAVE_GLOB_H)
 check_include_file (inttypes.h HAVE_INTTYPES_H)
-check_include_file (libunwind.h HAVE_LIBUNWIND_H)
 check_include_file (memory.h HAVE_MEMORY_H)
 check_include_file (pwd.h HAVE_PWD_H)
 check_include_file (stdint.h HAVE_STDINT_H)
@@ -74,7 +73,6 @@
 check_include_file (syslog.h HAVE_SYSLOG_H)
 check_include_file (ucontext.h HAVE_UCONTEXT_H)
 check_include_file (unistd.h HAVE_UNISTD_H)
-check_include_file (unwind.h HAVE_UNWIND_H)
 
 check_include_file_cxx ("ext/hash_map" HAVE_EXT_HASH_MAP)
 check_include_file_cxx ("ext/hash_set" HAVE_EXT_HASH_SET)
@@ -109,10 +107,7 @@
 # snprintf as an inline function
 check_symbol_exists (snprintf stdio.h HAVE_SNPRINTF)
 
-check_library_exists (unwind get_static_proc_name "" HAVE_LIB_UNWIND)
-
-find_library (UNWIND_LIBRARY NAMES unwind DOC "unwind library")
-mark_as_advanced (UNWIND_LIBRARY)
+find_package(Libunwind)
 
 check_c_source_compiles ("
 #include <stdlib.h>
@@ -376,9 +371,9 @@
 
 set_target_properties (glog PROPERTIES POSITION_INDEPENDENT_CODE ON)
 
-if (UNWIND_LIBRARY)
-  target_link_libraries (glog PUBLIC ${UNWIND_LIBRARY})
-endif (UNWIND_LIBRARY)
+if (Libunwind_FOUND)
+  target_link_libraries (glog PUBLIC unwind)
+endif (Libunwind_FOUND)
 
 if (HAVE_PTHREAD)
   target_link_libraries (glog PUBLIC ${CMAKE_THREAD_LIBS_INIT})
@@ -571,6 +566,7 @@
 install (FILES
   ${CMAKE_CURRENT_BINARY_DIR}/glog-config.cmake
   ${CMAKE_CURRENT_BINARY_DIR}/glog-config-version.cmake
+  ${CMAKE_CURRENT_SOURCE_DIR}/cmake/FindLibunwind.cmake
   DESTINATION lib/cmake/glog)
 
 install (EXPORT glog-targets NAMESPACE glog:: DESTINATION lib/cmake/glog)
diff -uNr a/glog-config.cmake.in b/glog-config.cmake.in
--- a/glog-config.cmake.in	2018-11-20 15:49:07.576278417 +0100
+++ b/glog-config.cmake.in	2018-11-20 15:52:32.330418489 +0100
@@ -4,4 +4,6 @@
 
 @gflags_DEPENDENCY@
 
+find_dependency (Libunwind)
+
 include ("${CMAKE_CURRENT_LIST_DIR}/glog-targets.cmake")
