<div dir="ltr">This has been a change I've been meaning to make for a while. I think a better approach would be to still use 'libcxxabi' for LIBCXX_CXX_ABI, but automatically use the headers in projects/libcxxabi/include in the case of an in-tree build. I might even go as far as saying that libcxxabi is the the default cxx abi for an in-tree build. As it is now, libc++ defaults to cxxabi=none, which means you can't run the tests iirc. As a side note, LIT_EXECUTABLE should also be picked up automatically for an in-tree build.<div>

<br></div><div><a href="https://github.com/llvm-mirror/libcxxabi/blob/master/CMakeLists.txt#L118">https://github.com/llvm-mirror/libcxxabi/blob/master/CMakeLists.txt#L118</a> shows how I tackled the reverse of this (automatically finding libc++ headers for libc++abi). Essentially, take the first available of the user defined path, the in tree path, or the system headers (the ${CMAKE_BINARY_DIR}/${LIBCXXABI_LIBCXX_INCLUDES} bit is to ensure that the user provided path works as an abspath or a relative path).</div>

</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Thu, Jul 24, 2014 at 11:09 AM,  <span dir="ltr"><<a href="mailto:eatnumber1@google.com" target="_blank">eatnumber1@google.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">From: Russell Harmon <<a href="mailto:eatnumber1@google.com">eatnumber1@google.com</a>><br>
<br>
This adds a new LIBCXX_CXX_ABI called "libcxxabi-in-tree", which will add<br>
"${CMAKE_SOURCE_DIR}/projects/libcxxabi/include" to<br>
LIBCXX_LIBCXXABI_INCLUDE_PATHS and will add "cxxabi" as a proper dependency.<br>
---<br>
 CMakeLists.txt | 8 +++++++-<br>
 1 file changed, 7 insertions(+), 1 deletion(-)<br>
<br>
diff --git a/CMakeLists.txt b/CMakeLists.txt<br>
index c20e5d1..fd3e808 100644<br>
--- a/CMakeLists.txt<br>
+++ b/CMakeLists.txt<br>
@@ -44,7 +44,7 @@ option(LIBCXX_ENABLE_CXX0X "Enable -std=c++0x and use of c++0x language features<br>
 option(LIBCXX_ENABLE_SHARED "Build libc++ as a shared library." ON)<br>
 option(LIBCXX_INSTALL_SUPPORT_HEADERS "Install libc++ support headers." ON)<br>
<br>
-set(CXXABIS none libcxxabi libcxxrt libstdc++ libsupc++)<br>
+set(CXXABIS none libcxxabi libcxxrt libstdc++ libsupc++ libcxxabi-in-tree)<br>
 if (NOT DEFINED LIBCXX_CXX_ABI)<br>
   set(LIBCXX_CXX_ABI "none")<br>
 endif()<br>
@@ -149,6 +149,12 @@ elseif ("${LIBCXX_CXX_ABI}" STREQUAL "libcxxabi")<br>
   setup_abi_lib("LIBCXX_LIBCXXABI_INCLUDE_PATHS" ""<br>
     "c++abi" "cxxabi.h" ""<br>
     )<br>
+elseif ("${LIBCXX_CXX_ABI}" STREQUAL "libcxxabi-in-tree")<br>
+  set(LIBCXX_LIBCXXABI_INCLUDE_PATHS "${CMAKE_SOURCE_DIR}/projects/libcxxabi/include")<br>
+  setup_abi_lib("LIBCXX_LIBCXXABI_INCLUDE_PATHS" ""<br>
+    "cxxabi" "cxxabi.h" ""<br>
+    )<br>
+  add_dependencies(LIBCXX_CXX_ABI_DEPS cxxabi)<br>
 elseif ("${LIBCXX_CXX_ABI}" STREQUAL "libcxxrt")<br>
   setup_abi_lib("LIBCXX_LIBCXXRT_INCLUDE_PATHS" "-DLIBCXXRT"<br>
     "cxxrt" "cxxabi.h;unwind.h;unwind-arm.h;unwind-itanium.h" ""<br>
<span class="HOEnZb"><font color="#888888">--<br>
2.0.0.526.g5318336<br>
<br>
_______________________________________________<br>
cfe-dev mailing list<br>
<a href="mailto:cfe-dev@cs.uiuc.edu">cfe-dev@cs.uiuc.edu</a><br>
<a href="http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev" target="_blank">http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev</a><br>
</font></span></blockquote></div><br></div>