[PATCH] D109625: [compiler-rt] Ensure required deps for tests targets are actually built

Leonard Chan via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Wed Sep 22 16:04:46 PDT 2021


leonardchan updated this revision to Diff 374393.
leonardchan retitled this revision from "[compiler-rt] Ensure LIT_TEST_DEP targets are actually built" to "[compiler-rt] Ensure required deps for tests targets are actually built".

Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D109625/new/

https://reviews.llvm.org/D109625

Files:
  compiler-rt/test/CMakeLists.txt


Index: compiler-rt/test/CMakeLists.txt
===================================================================
--- compiler-rt/test/CMakeLists.txt
+++ compiler-rt/test/CMakeLists.txt
@@ -1,5 +1,6 @@
 # Needed for lit support in standalone builds.
 include(AddLLVM)
+include(LLVMExternalProjectUtils)
 
 option(COMPILER_RT_TEST_STANDALONE_BUILD_LIBS
   "When set to ON and testing in a standalone build, test the runtime \
@@ -28,14 +29,34 @@
 # When ANDROID, we build tests with the host compiler (i.e. CMAKE_C_COMPILER),
 # and run tests with tools from the host toolchain.
 if(NOT ANDROID)
-  if(NOT COMPILER_RT_STANDALONE_BUILD AND NOT LLVM_RUNTIMES_BUILD)
-    # Use LLVM utils and Clang from the same build tree.
-    list(APPEND SANITIZER_COMMON_LIT_TEST_DEPS
+  set(LIT_TEST_DEPS
       clang clang-resource-headers FileCheck count not llvm-config llvm-nm llvm-objdump
       llvm-readelf llvm-readobj llvm-size llvm-symbolizer compiler-rt-headers sancov)
-    if (WIN32)
-      list(APPEND SANITIZER_COMMON_LIT_TEST_DEPS KillTheDoctor)
-    endif()
+  if (WIN32)
+    list(APPEND LIT_TEST_DEPS KillTheDoctor)
+  endif()
+
+  if(NOT COMPILER_RT_STANDALONE_BUILD AND NOT LLVM_RUNTIMES_BUILD)
+    # Use LLVM utils and Clang from the same build tree.
+    list(APPEND SANITIZER_COMMON_LIT_TEST_DEPS ${LIT_TEST_DEPS})
+  elseif(COMPILER_RT_STANDALONE_BUILD)
+    # If we are making a standalone build, we need to ensure some targets used
+    # for testing are known and built as deps.
+    list(APPEND SANITIZER_COMMON_LIT_TEST_DEPS ${LIT_TEST_DEPS})
+
+    # These are tools needed for testing in a standalone/runtimes build, but we
+    # don't have a corresponding CMAKE_* flag for. These will need to be rebuilt.
+    set(LIT_ONLY_TOOLS
+        FileCheck count not)
+    foreach(dep ${LIT_ONLY_TOOLS})
+      if (NOT TARGET ${dep})
+        llvm_ExternalProject_BuildCmd(build_${dep} ${dep} ${BINARY_DIR})
+        add_custom_target(${dep}
+          COMMAND ${build_${dep}}
+          WORKING_DIRECTORY ${BINARY_DIR}
+          VERBATIM USES_TERMINAL)
+      endif()
+    endforeach()
   endif()
   # Tests use C++ standard library headers.
   if (TARGET cxx-headers OR HAVE_LIBCXX)


-------------- next part --------------
A non-text attachment was scrubbed...
Name: D109625.374393.patch
Type: text/x-patch
Size: 2190 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/cfe-commits/attachments/20210922/74bf2f32/attachment.bin>


More information about the cfe-commits mailing list