From 3a481d4491b7a63008183f0c0fe689bcbb4ec624 Mon Sep 17 00:00:00 2001 From: Petr Hosek Date: Thu, 18 Aug 2022 08:25:13 +0000 Subject: [PATCH] [runtimes] Use a response file for runtimes test suites We don't know which test suites are going to be included by runtimes builds so we cannot include those before running the sub-build, but that's not possible during the LLVM build configuration. We instead use a response file that's populated by the runtimes build as a level of indirection. This addresses the issue described in: https://discourse.llvm.org/t/cmake-regeneration-is-broken/62788 Differential Revision: https://reviews.llvm.org/D132438 (cherry picked from commit 992e10a3fce41255e4b11782f51d0f4b26dca14d) --- llvm/runtimes/CMakeLists.txt | 18 ++++-------------- runtimes/CMakeLists.txt | 10 ++++------ runtimes/Tests.cmake.in | 3 --- 3 files changed, 8 insertions(+), 23 deletions(-) delete mode 100644 runtimes/Tests.cmake.in diff --git a/llvm/runtimes/CMakeLists.txt b/llvm/runtimes/CMakeLists.txt index 1ba462c51ae8..701d35c0a2c9 100644 --- a/llvm/runtimes/CMakeLists.txt +++ b/llvm/runtimes/CMakeLists.txt @@ -219,13 +219,7 @@ function(runtime_default_target) endforeach() if(LLVM_INCLUDE_TESTS) - include(${LLVM_BINARY_DIR}/runtimes/Tests.cmake OPTIONAL RESULT_VARIABLE have_tests) - set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${LLVM_BINARY_DIR}/runtimes/Tests.cmake) - if(have_tests) - set_property(GLOBAL APPEND PROPERTY LLVM_ALL_LIT_TESTSUITES ${SUB_LIT_TESTSUITES}) - set_property(GLOBAL APPEND PROPERTY LLVM_ALL_LIT_PARAMS ${SUB_LIT_PARAMS}) - set_property(GLOBAL APPEND PROPERTY LLVM_ALL_LIT_EXTRA_ARGS ${SUB_LIT_EXTRA_ARGS}) - endif() + set_property(GLOBAL APPEND PROPERTY LLVM_ALL_LIT_TESTSUITES "@${LLVM_BINARY_DIR}/runtimes/Tests.rsp") list(APPEND test_targets runtimes-test-depends check-runtimes) endif() @@ -301,13 +295,7 @@ function(runtime_register_target name target) endforeach() if(LLVM_INCLUDE_TESTS) - include(${LLVM_BINARY_DIR}/runtimes/${name}/Tests.cmake OPTIONAL RESULT_VARIABLE have_tests) - set_property(DIRECTORY APPEND PROPERTY CMAKE_CONFIGURE_DEPENDS ${LLVM_BINARY_DIR}/runtimes/${name}/Tests.cmake) - if(have_tests) - set_property(GLOBAL APPEND PROPERTY LLVM_ALL_LIT_TESTSUITES ${SUB_LIT_TESTSUITES}) - set_property(GLOBAL APPEND PROPERTY LLVM_ALL_LIT_PARAMS ${SUB_LIT_PARAMS}) - set_property(GLOBAL APPEND PROPERTY LLVM_ALL_LIT_EXTRA_ARGS ${SUB_LIT_EXTRA_ARGS}) - endif() + set_property(GLOBAL APPEND PROPERTY LLVM_ALL_LIT_TESTSUITES "@${LLVM_BINARY_DIR}/runtimes/${name}/Tests.rsp") set(runtimes-test-depends-${name} runtimes-test-depends) set(check-runtimes-${name} check-runtimes) list(APPEND ${name}_test_targets runtimes-test-depends-${name} check-runtimes-${name}) @@ -497,5 +485,7 @@ if(runtimes) foreach(target ${test_targets} ${SUB_CHECK_TARGETS}) add_dependencies(${target} ${RUNTIMES_TEST_DEPENDS}) endforeach() + + set_property(GLOBAL APPEND PROPERTY LLVM_ALL_ADDITIONAL_TEST_TARGETS runtimes ${RUNTIMES_TEST_DEPENDS}) endif() endif() diff --git a/runtimes/CMakeLists.txt b/runtimes/CMakeLists.txt index d333de9ee845..f48a4c2075e0 100644 --- a/runtimes/CMakeLists.txt +++ b/runtimes/CMakeLists.txt @@ -244,14 +244,12 @@ if(LLVM_INCLUDE_TESTS) ${CMAKE_CURRENT_BINARY_DIR}/llvm-lit) endif() + get_property(LLVM_RUNTIMES_LIT_TESTSUITES GLOBAL PROPERTY LLVM_RUNTIMES_LIT_TESTSUITES) + string(REPLACE ";" "\n" LLVM_RUNTIMES_LIT_TESTSUITES "${LLVM_RUNTIMES_LIT_TESTSUITES}") if(LLVM_RUNTIMES_TARGET) - configure_file( - ${CMAKE_CURRENT_SOURCE_DIR}/Tests.cmake.in - ${LLVM_BINARY_DIR}/runtimes/${LLVM_RUNTIMES_TARGET}/Tests.cmake) + file(WRITE ${LLVM_BINARY_DIR}/runtimes/${LLVM_RUNTIMES_TARGET}/Tests.rsp ${LLVM_RUNTIMES_LIT_TESTSUITES}) else() - configure_file( - ${CMAKE_CURRENT_SOURCE_DIR}/Tests.cmake.in - ${LLVM_BINARY_DIR}/runtimes/Tests.cmake) + file(WRITE ${LLVM_BINARY_DIR}/runtimes/Tests.rsp ${LLVM_RUNTIMES_LIT_TESTSUITES}) endif() endif() diff --git a/runtimes/Tests.cmake.in b/runtimes/Tests.cmake.in deleted file mode 100644 index 8108349bec41..000000000000 --- a/runtimes/Tests.cmake.in +++ /dev/null @@ -1,3 +0,0 @@ -set(SUB_LIT_TESTSUITES @LLVM_RUNTIMES_LIT_TESTSUITES@) -set(SUB_LIT_PARAMS @LLVM_RUNTIMES_LIT_PARAMS@) -set(SUB_LIT_EXTRA_ARGS @LLVM_RUNTIMES_LIT_EXTRA_ARGS@)