forked from OSchip/llvm-project
[libcxxabi] Copy headers into build location
Prior to D120727, the libcxx build was responsible for copying libcxxabi headers into the right location, both in the build and install trees, but now it's the responsibility of the libcxxabi build. While the build already did the right thing for the install tree, it wouldn't copy headers into the build tree, resulting in errors when trying to use the just built toolchain as is the case in the runtimes build when building compiler-rt runtimes. Differential Revision: https://reviews.llvm.org/D125597
This commit is contained in:
parent
acbad5086a
commit
6f5f847a36
|
@ -78,7 +78,14 @@ set(LIBCXXABI_LIBDIR_SUFFIX "${LLVM_LIBDIR_SUFFIX}" CACHE STRING
|
|||
"Define suffix of library directory name (32/64)")
|
||||
option(LIBCXXABI_INSTALL_HEADERS "Install the libc++abi headers." ON)
|
||||
option(LIBCXXABI_INSTALL_LIBRARY "Install the libc++abi library." ON)
|
||||
set(LIBCXXABI_INSTALL_INCLUDE_DIR "include/c++/v1" CACHE PATH "Path to install the libc++abi headers at.")
|
||||
|
||||
set(LIBCXXABI_INSTALL_INCLUDE_DIR "${CMAKE_INSTALL_INCLUDEDIR}/c++/v1" CACHE PATH "Path to install the libc++abi headers at.")
|
||||
|
||||
if(LLVM_LIBRARY_OUTPUT_INTDIR)
|
||||
set(LIBCXXABI_GENERATED_INCLUDE_DIR "${LLVM_BINARY_DIR}/include/c++/v1")
|
||||
else()
|
||||
set(LIBCXXABI_GENERATED_INCLUDE_DIR "${CMAKE_BINARY_DIR}/include/c++/v1")
|
||||
endif()
|
||||
|
||||
# TODO: Remove this after branching for LLVM 15
|
||||
if(LIBCXXABI_SYSROOT OR LIBCXXABI_TARGET_TRIPLE OR LIBCXXABI_GCC_TOOLCHAIN)
|
||||
|
|
|
@ -3,7 +3,20 @@ set(files
|
|||
cxxabi.h
|
||||
)
|
||||
|
||||
foreach(f ${files})
|
||||
set(src "${CMAKE_CURRENT_SOURCE_DIR}/${f}")
|
||||
set(dst "${LIBCXXABI_GENERATED_INCLUDE_DIR}/${f}")
|
||||
add_custom_command(OUTPUT ${dst}
|
||||
DEPENDS ${src}
|
||||
COMMAND ${CMAKE_COMMAND} -E copy_if_different ${src} ${dst}
|
||||
COMMENT "Copying CXXABI header ${f}")
|
||||
list(APPEND _all_includes "${dst}")
|
||||
endforeach()
|
||||
|
||||
add_custom_target(generate-cxxabi-headers ALL DEPENDS ${_all_includes})
|
||||
|
||||
add_library(cxxabi-headers INTERFACE)
|
||||
add_dependencies(cxxabi-headers generate-cxxabi-headers)
|
||||
target_include_directories(cxxabi-headers INTERFACE "${CMAKE_CURRENT_SOURCE_DIR}")
|
||||
|
||||
if (LIBCXXABI_INSTALL_HEADERS)
|
||||
|
|
Loading…
Reference in New Issue