summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--libcxx/cmake/Modules/HandleOutOfTreeLLVM.cmake10
-rw-r--r--libcxx/include/CMakeLists.txt2
2 files changed, 10 insertions, 2 deletions
diff --git a/libcxx/cmake/Modules/HandleOutOfTreeLLVM.cmake b/libcxx/cmake/Modules/HandleOutOfTreeLLVM.cmake
index 934dfcd7bb1..349d234e198 100644
--- a/libcxx/cmake/Modules/HandleOutOfTreeLLVM.cmake
+++ b/libcxx/cmake/Modules/HandleOutOfTreeLLVM.cmake
@@ -61,8 +61,16 @@ macro(find_llvm_parts)
set(LLVM_FOUND ON)
endmacro(find_llvm_parts)
+# If this is a standalone build not running as an external project of LLVM
+# we need to later make some decisions differently.
+if(CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR)
+ # The intent is that this doesn't necessarily mean the LLVM is installed (it
+ # could be a build directory), but it means we need to treat the LLVM
+ # directory as read-only.
+ set(LIBCXX_USING_INSTLLED_LLVM 1)
+endif()
-if (CMAKE_SOURCE_DIR STREQUAL CMAKE_CURRENT_SOURCE_DIR OR LIBCXX_STANDALONE_BUILD)
+if (LIBCXX_USING_INSTLLED_LLVM OR LIBCXX_STANDALONE_BUILD)
set(LIBCXX_STANDALONE_BUILD 1)
message(STATUS "Configuring for standalone build.")
diff --git a/libcxx/include/CMakeLists.txt b/libcxx/include/CMakeLists.txt
index 40ab262cd2b..1ad6aa1d0bd 100644
--- a/libcxx/include/CMakeLists.txt
+++ b/libcxx/include/CMakeLists.txt
@@ -10,7 +10,7 @@ set(LIBCXX_HEADER_PATTERN
${LIBCXX_SUPPORT_HEADER_PATTERN}
)
-if(LLVM_BINARY_DIR)
+if(NOT LIBCXX_USING_INSTLLED_LLVM)
file(COPY .
DESTINATION "${LLVM_BINARY_DIR}/include/c++/v1"
FILES_MATCHING
OpenPOWER on IntegriCloud