ab created this revision. ab added a reviewer: phosek. Herald added subscribers: mgorny, dberris.
Since r334468, my understanding is, we no longer always copy the libcxx headers by virtue of their presence when cmake runs. This is an attempt to make some of the later stages (compiler-rt, and the bootstrapped stages) depend on them being copied, via the cxx-headers target. Repository: rC Clang https://reviews.llvm.org/D48700 Files: CMakeLists.txt runtime/CMakeLists.txt Index: runtime/CMakeLists.txt =================================================================== --- runtime/CMakeLists.txt +++ runtime/CMakeLists.txt @@ -58,8 +58,12 @@ endif() endforeach() + if(TARGET cxx-headers) + set(COMPILER_RT_LIBCXX_DEPENDENCY "cxx-headers") + endif() + ExternalProject_Add(compiler-rt - DEPENDS llvm-config clang + DEPENDS llvm-config clang ${COMPILER_RT_LIBCXX_DEPENDENCY} PREFIX ${COMPILER_RT_PREFIX} SOURCE_DIR ${COMPILER_RT_SRC_ROOT} STAMP_DIR ${STAMP_DIR} Index: CMakeLists.txt =================================================================== --- CMakeLists.txt +++ CMakeLists.txt @@ -621,10 +621,15 @@ LLVM_ENABLE_PROJECTS LLVM_ENABLE_RUNTIMES) - # We don't need to depend on compiler-rt if we're building instrumented + # We don't need to depend on compiler-rt/libcxx if we're building instrumented # because the next stage will use the same compiler used to build this stage. - if(TARGET compiler-rt AND NOT LLVM_BUILD_INSTRUMENTED) - add_dependencies(clang-bootstrap-deps compiler-rt) + if(NOT LLVM_BUILD_INSTRUMENTED) + if(TARGET compiler-rt) + add_dependencies(clang-bootstrap-deps compiler-rt) + endif() + if(TARGET cxx-headers) + add_dependencies(clang-bootstrap-deps cxx-headers) + endif() endif() set(C_COMPILER "clang")
Index: runtime/CMakeLists.txt =================================================================== --- runtime/CMakeLists.txt +++ runtime/CMakeLists.txt @@ -58,8 +58,12 @@ endif() endforeach() + if(TARGET cxx-headers) + set(COMPILER_RT_LIBCXX_DEPENDENCY "cxx-headers") + endif() + ExternalProject_Add(compiler-rt - DEPENDS llvm-config clang + DEPENDS llvm-config clang ${COMPILER_RT_LIBCXX_DEPENDENCY} PREFIX ${COMPILER_RT_PREFIX} SOURCE_DIR ${COMPILER_RT_SRC_ROOT} STAMP_DIR ${STAMP_DIR} Index: CMakeLists.txt =================================================================== --- CMakeLists.txt +++ CMakeLists.txt @@ -621,10 +621,15 @@ LLVM_ENABLE_PROJECTS LLVM_ENABLE_RUNTIMES) - # We don't need to depend on compiler-rt if we're building instrumented + # We don't need to depend on compiler-rt/libcxx if we're building instrumented # because the next stage will use the same compiler used to build this stage. - if(TARGET compiler-rt AND NOT LLVM_BUILD_INSTRUMENTED) - add_dependencies(clang-bootstrap-deps compiler-rt) + if(NOT LLVM_BUILD_INSTRUMENTED) + if(TARGET compiler-rt) + add_dependencies(clang-bootstrap-deps compiler-rt) + endif() + if(TARGET cxx-headers) + add_dependencies(clang-bootstrap-deps cxx-headers) + endif() endif() set(C_COMPILER "clang")
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits