mirror of
https://github.com/llvm/llvm-project.git
synced 2025-04-18 12:16:49 +00:00
[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
This commit is contained in:
parent
a4ace22c05
commit
2a66abb17e
@ -209,13 +209,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/runtimes-bins/lit.tests")
|
||||
list(APPEND test_targets runtimes-test-depends check-runtimes)
|
||||
endif()
|
||||
|
||||
@ -291,13 +285,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/runtimes-${name}-bins/lit.tests")
|
||||
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})
|
||||
@ -490,5 +478,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()
|
||||
|
@ -244,15 +244,12 @@ if(LLVM_INCLUDE_TESTS)
|
||||
${CMAKE_CURRENT_BINARY_DIR}/llvm-lit)
|
||||
endif()
|
||||
|
||||
if(LLVM_RUNTIMES_TARGET)
|
||||
configure_file(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/Tests.cmake.in
|
||||
${LLVM_BINARY_DIR}/runtimes/${LLVM_RUNTIMES_TARGET}/Tests.cmake)
|
||||
else()
|
||||
configure_file(
|
||||
${CMAKE_CURRENT_SOURCE_DIR}/Tests.cmake.in
|
||||
${LLVM_BINARY_DIR}/runtimes/Tests.cmake)
|
||||
endif()
|
||||
get_property(LLVM_RUNTIMES_LIT_TESTSUITES GLOBAL PROPERTY LLVM_RUNTIMES_LIT_TESTSUITES)
|
||||
string(REPLACE ";" "\n" LLVM_RUNTIMES_LIT_TESTSUITES "${LLVM_RUNTIMES_LIT_TESTSUITES}")
|
||||
file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/lit.tests ${LLVM_RUNTIMES_LIT_TESTSUITES})
|
||||
else()
|
||||
# Create empty files so the parent build can use these unconditionally.
|
||||
file(TOUCH ${CMAKE_CURRENT_BINARY_DIR}/lit.tests)
|
||||
endif()
|
||||
|
||||
get_property(SUB_COMPONENTS GLOBAL PROPERTY SUB_COMPONENTS)
|
||||
|
@ -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@)
|
Loading…
x
Reference in New Issue
Block a user