OSDN Git Service

Make libcxx tests work when llvm sources are not present.
authorZachary Turner <zturner@google.com>
Wed, 20 Sep 2017 16:01:50 +0000 (16:01 +0000)
committerZachary Turner <zturner@google.com>
Wed, 20 Sep 2017 16:01:50 +0000 (16:01 +0000)
Despite a strong CMake warning that this is an unsupported
libcxx build configuration, some bots still rely on being
able to check out lit and libcxx independently with no
LLVM sources, and then run lit against libcxx.

A previous patch broke that workflow, so this is making it work
again.  Unfortunately, it breaks generation of the llvm-lit
script for libcxx, but we will just have to live with that until
a solution is found that allows libcxx to make more use of
llvm build pieces.  libcxx can still run tests by using the
ninja check target, or by running lit.py directly against the
build tree or source tree.

Differential Revision: https://reviews.llvm.org/D38057

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@313763 91177308-0d34-0410-b5e6-96231b3b80d8

cmake/modules/AddLLVM.cmake

index 06840fb..7c26e39 100644 (file)
@@ -1198,7 +1198,12 @@ function(get_llvm_lit_path base_dir file_name)
   cmake_parse_arguments(ARG "ALLOW_EXTERNAL" "" "" ${ARGN})
 
   if (ARG_ALLOW_EXTERNAL)
+    set(LLVM_DEFAULT_EXTERNAL_LIT "${LLVM_EXTERNAL_LIT}")
     set (LLVM_EXTERNAL_LIT "" CACHE STRING "Command used to spawn lit")
+    if ("${LLVM_EXTERNAL_LIT}" STREQUAL "")
+      set(LLVM_EXTERNAL_LIT "${LLVM_DEFAULT_EXTERNAL_LIT}")
+    endif()
+
     if (NOT "${LLVM_EXTERNAL_LIT}" STREQUAL "")
       if (EXISTS ${LLVM_EXTERNAL_LIT})
         get_filename_component(LIT_FILE_NAME ${LLVM_EXTERNAL_LIT} NAME)
@@ -1230,9 +1235,7 @@ function(get_llvm_lit_path base_dir file_name)
   elseif(NOT "${LLVM_RUNTIME_OUTPUT_INTDIR}" STREQUAL "")
     set(LLVM_LIT_BASE_DIR ${LLVM_RUNTIME_OUTPUT_INTDIR})
   else()
-    message(WARNING "Could not find suitable output location for llvm-lit."
-                    "Using default ${CMAKE_CURRENT_BINARY_DIR}/llvm-lit")
-    set(LLVM_LIT_BASE_DIR ${CMAKE_CURRENT_BINARY_DIR}/llvm-lit)
+    set(LLVM_LIT_BASE_DIR "")
   endif()
 
   # Cache this so we don't have to do it again and have subsequent calls