[cfe-dev] [PATCH] Support building libc++ using an in-tree libc++abi
Russell Harmon
eatnumber1 at google.com
Thu Jul 24 13:14:11 PDT 2014
Awesome! I'll change it up to implement your suggestions.
On Thu Jul 24 2014 at 11:42:12 AM, Dan Albert <danalbert at google.com> wrote:
> 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.
>
> https://github.com/llvm-mirror/libcxxabi/blob/master/CMakeLists.txt#L118
> 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).
>
>
> On Thu, Jul 24, 2014 at 11:09 AM, <eatnumber1 at google.com> wrote:
>
>> From: Russell Harmon <eatnumber1 at google.com>
>>
>> This adds a new LIBCXX_CXX_ABI called "libcxxabi-in-tree", which will add
>> "${CMAKE_SOURCE_DIR}/projects/libcxxabi/include" to
>> LIBCXX_LIBCXXABI_INCLUDE_PATHS and will add "cxxabi" as a proper
>> dependency.
>> ---
>> CMakeLists.txt | 8 +++++++-
>> 1 file changed, 7 insertions(+), 1 deletion(-)
>>
>> diff --git a/CMakeLists.txt b/CMakeLists.txt
>> index c20e5d1..fd3e808 100644
>> --- a/CMakeLists.txt
>> +++ b/CMakeLists.txt
>> @@ -44,7 +44,7 @@ option(LIBCXX_ENABLE_CXX0X "Enable -std=c++0x and use
>> of c++0x language features
>> option(LIBCXX_ENABLE_SHARED "Build libc++ as a shared library." ON)
>> option(LIBCXX_INSTALL_SUPPORT_HEADERS "Install libc++ support headers."
>> ON)
>>
>> -set(CXXABIS none libcxxabi libcxxrt libstdc++ libsupc++)
>> +set(CXXABIS none libcxxabi libcxxrt libstdc++ libsupc++
>> libcxxabi-in-tree)
>> if (NOT DEFINED LIBCXX_CXX_ABI)
>> set(LIBCXX_CXX_ABI "none")
>> endif()
>> @@ -149,6 +149,12 @@ elseif ("${LIBCXX_CXX_ABI}" STREQUAL "libcxxabi")
>> setup_abi_lib("LIBCXX_LIBCXXABI_INCLUDE_PATHS" ""
>> "c++abi" "cxxabi.h" ""
>> )
>> +elseif ("${LIBCXX_CXX_ABI}" STREQUAL "libcxxabi-in-tree")
>> + set(LIBCXX_LIBCXXABI_INCLUDE_PATHS "${CMAKE_SOURCE_DIR}/projects/
>> libcxxabi/include")
>> + setup_abi_lib("LIBCXX_LIBCXXABI_INCLUDE_PATHS" ""
>> + "cxxabi" "cxxabi.h" ""
>> + )
>> + add_dependencies(LIBCXX_CXX_ABI_DEPS cxxabi)
>> elseif ("${LIBCXX_CXX_ABI}" STREQUAL "libcxxrt")
>> setup_abi_lib("LIBCXX_LIBCXXRT_INCLUDE_PATHS" "-DLIBCXXRT"
>> "cxxrt" "cxxabi.h;unwind.h;unwind-arm.h;unwind-itanium.h" ""
>>
> --
>> 2.0.0.526.g5318336
>>
>> _______________________________________________
>> cfe-dev mailing list
>> cfe-dev at cs.uiuc.edu
>> http://lists.cs.uiuc.edu/mailman/listinfo/cfe-dev
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/cfe-dev/attachments/20140724/dba1c351/attachment.html>
More information about the cfe-dev
mailing list