summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPetr Hosek <phosek@chromium.org>2017-02-16 05:18:08 +0000
committerPetr Hosek <phosek@chromium.org>2017-02-16 05:18:08 +0000
commit43ce8ac924648715b6db77ee2156650c24ed92e7 (patch)
tree8549b6c6adb2bf8eae508f72713f3a3b728f5aa0
parent3d49b5dd4a3adbf4c6d4f49e7446933737e50012 (diff)
downloadlibunwind_llvm-43ce8ac924648715b6db77ee2156650c24ed92e7.tar.gz
[libunwind][CMake] Use libc++ headers when available
libunwind depends on C++ library headers. When building libunwind as part of LLVM and libc++ is available, use its headers. Differential Revision: https://reviews.llvm.org/D29997 git-svn-id: https://llvm.org/svn/llvm-project/libunwind/trunk@295285 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--CMakeLists.txt20
1 files changed, 20 insertions, 0 deletions
diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3ba4b65..32c215c 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -282,4 +282,24 @@ endif()
include_directories(include)
+find_path(
+ LIBUNWIND_LIBCXX_INCLUDES_INTERNAL
+ __libcpp_version
+ PATHS ${LLVM_MAIN_SRC_DIR}/projects/libcxx/include
+ ${LLVM_MAIN_SRC_DIR}/runtimes/libcxx/include
+ NO_DEFAULT_PATH
+)
+if ((NOT LIBUNWIND_STANDALONE_BUILD OR HAVE_LIBCXX) AND
+ IS_DIRECTORY "${LIBUNWIND_LIBCXX_INCLUDES_INTERNAL}")
+ set(LIBUNWIND_CXX_INCLUDE_PATHS_DEFAULT "${LIBUNWIND_LIBCXX_INCLUDES_INTERNAL}")
+endif()
+
+set(LIBUNWIND_CXX_INCLUDE_PATHS "${LIBUNWIND_CXX_INCLUDE_PATHS_DEFAULT}" CACHE PATH
+ "Paths to C++ header directories separated by ';'.")
+
+if (NOT LIBUNWIND_CXX_INCLUDE_PATHS STREQUAL "")
+ list(APPEND LIBUNWIND_CXX_FLAGS -nostdinc++)
+ include_directories("${LIBUNWIND_CXX_INCLUDE_PATHS}")
+endif()
+
add_subdirectory(src)