diff --git a/libcxxabi/CMakeLists.txt b/libcxxabi/CMakeLists.txt --- a/libcxxabi/CMakeLists.txt +++ b/libcxxabi/CMakeLists.txt @@ -131,10 +131,21 @@ message(FATAL_ERROR "libc++abi must be built as either a shared or static library.") endif() -# TODO: Remove this, which shouldn't be necessary since we know we're being built -# side-by-side with libc++. set(LIBCXXABI_LIBCXX_INCLUDES "" CACHE PATH "Specify path to libc++ includes.") +if (NOT libcxx IN_LIST LLVM_ENABLE_RUNTIMES) + if (NOT IS_DIRECTORY ${LIBCXXABI_LIBCXX_INCLUDES}) + message(FATAL_ERROR + "LIBCXXABI_LIBCXX_INCLUDES=${LIBCXXABI_LIBCXX_INCLUDES} is not a valid directory. " + "Please provide the path to where the libc++ headers have been installed.") + endif() + add_library(cxx-headers INTERFACE) + if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "MSVC" OR "${CMAKE_CXX_SIMULATE_ID}" STREQUAL "MSVC") + target_compile_options(cxx-headers INTERFACE /I "${LIBCXXABI_LIBCXX_INCLUDES}") + else() + target_compile_options(cxx-headers INTERFACE -I "${LIBCXXABI_LIBCXX_INCLUDES}") + endif() +endif() set(LIBCXXABI_HERMETIC_STATIC_LIBRARY_DEFAULT OFF) if (WIN32) diff --git a/libcxxabi/test/CMakeLists.txt b/libcxxabi/test/CMakeLists.txt --- a/libcxxabi/test/CMakeLists.txt +++ b/libcxxabi/test/CMakeLists.txt @@ -61,9 +61,13 @@ list(APPEND LIBCXXABI_TEST_DEPS cxx_external_threads) endif() -list(APPEND LIBCXXABI_TEST_DEPS cxx) -if (LIBCXXABI_USE_LLVM_UNWINDER AND TARGET unwind) - list(APPEND LIBCXXABI_TEST_DEPS unwind) +if(libcxx IN_LIST LLVM_ENABLE_RUNTIMES) + list(APPEND LIBCXXABI_TEST_DEPS cxx) +endif() +if(libunwind IN_LIST LLVM_ENABLE_RUNTIMES) + if (LIBCXXABI_USE_LLVM_UNWINDER AND TARGET unwind) + list(APPEND LIBCXXABI_TEST_DEPS unwind) + endif() endif() set(AUTO_GEN_COMMENT "## Autogenerated by libcxxabi configuration.\n# Do not edit!")