Skip to content

Commit

Permalink
[CMake] Fix issues building runtimes
Browse files Browse the repository at this point in the history
This resolves two issues:
(1) LIBCXX_HEADER_DIR is a very misleadingly named variable because it shouldn't be set to the header directory, instead it needs to be the root binary dir.
(2) If you build runtimes without libcxx, we can't depend on the libcxx header target, so we should instaed refer to it by the variable name which will be unset if libcxx isn't present.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@361646 91177308-0d34-0410-b5e6-96231b3b80d8
  • Loading branch information
llvm-beanz committed May 24, 2019
1 parent 6a29119 commit 668b968
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions runtimes/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -210,7 +210,9 @@ if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_CURRENT_SOURCE_DIR})
else() # if this is included from LLVM's CMake
include(LLVMExternalProjectUtils)
if (LLVM_EXTERNAL_LIBCXX_SOURCE_DIR AND "libcxx" IN_LIST LLVM_ENABLE_RUNTIMES)
set(LIBCXX_HEADER_DIR ${LLVM_INCLUDE_DIR}/c++/v1/)
# This looks wrong, but libcxx's build actually wants the header dir to be
# the root build dir, not the include directory.
set(LIBCXX_HEADER_DIR ${LLVM_BINARY_DIR})
set(CXX_HEADER_TARGET runtime-libcxx-headers)
add_subdirectory(${LLVM_EXTERNAL_LIBCXX_SOURCE_DIR}/include ${CXX_HEADER_TARGET})
endif()
Expand Down Expand Up @@ -363,7 +365,7 @@ else() # if this is included from LLVM's CMake

llvm_ExternalProject_Add(runtimes
${CMAKE_CURRENT_SOURCE_DIR}
DEPENDS ${ARG_DEPENDS} runtime-libcxx-headers
DEPENDS ${ARG_DEPENDS} ${CXX_HEADER_TARGET}
# Builtins were built separately above
CMAKE_ARGS -DCOMPILER_RT_BUILD_BUILTINS=Off
-DLLVM_INCLUDE_TESTS=${LLVM_INCLUDE_TESTS}
Expand Down Expand Up @@ -454,7 +456,7 @@ else() # if this is included from LLVM's CMake

llvm_ExternalProject_Add(runtimes-${name}
${CMAKE_CURRENT_SOURCE_DIR}
DEPENDS ${${name}_deps} runtime-libcxx-headers
DEPENDS ${${name}_deps} ${CXX_HEADER_TARGET}
# Builtins were built separately above
CMAKE_ARGS -DCOMPILER_RT_BUILD_BUILTINS=Off
-DLLVM_INCLUDE_TESTS=${LLVM_INCLUDE_TESTS}
Expand Down

0 comments on commit 668b968

Please sign in to comment.