diff options
author | Jeremy Day <jeremy@thebrowser.company> | 2023-12-15 20:18:39 (GMT) |
---|---|---|
committer | Jeremy Day <jeremy@thebrowser.company> | 2024-01-04 21:20:05 (GMT) |
commit | 1161ad76ac569a38ad767d98ea7c5963a076696a (patch) | |
tree | e811988ff976bffb89dcdc3f96d817ff0c30b2a0 /Tests | |
parent | edb10c53256a4c308548af298eafc9ddf90b3bda (diff) | |
download | CMake-1161ad76ac569a38ad767d98ea7c5963a076696a.zip CMake-1161ad76ac569a38ad767d98ea7c5963a076696a.tar.gz CMake-1161ad76ac569a38ad767d98ea7c5963a076696a.tar.bz2 |
Swift/Ninja: Always restat swift build commands
The swift toolchain leaves output files untouched
if there are no meaningful input changes; without
restat, this causes ninja to needlessly rebuild
targets that are not actually out-of-date
Fixes: #25496
Diffstat (limited to 'Tests')
-rw-r--r-- | Tests/RunCMake/Swift/NoWorkToDo-norelink-stdout.txt | 2 | ||||
-rw-r--r-- | Tests/RunCMake/Swift/NoWorkToDo.cmake | 7 | ||||
-rw-r--r-- | Tests/RunCMake/Swift/RunCMakeTest.cmake | 3 |
3 files changed, 10 insertions, 2 deletions
diff --git a/Tests/RunCMake/Swift/NoWorkToDo-norelink-stdout.txt b/Tests/RunCMake/Swift/NoWorkToDo-norelink-stdout.txt new file mode 100644 index 0000000..e7b31b7 --- /dev/null +++ b/Tests/RunCMake/Swift/NoWorkToDo-norelink-stdout.txt @@ -0,0 +1,2 @@ +.*\[1\/4\].* +.*\[2\/3\].* diff --git a/Tests/RunCMake/Swift/NoWorkToDo.cmake b/Tests/RunCMake/Swift/NoWorkToDo.cmake index 02b9195..b58f8ff 100644 --- a/Tests/RunCMake/Swift/NoWorkToDo.cmake +++ b/Tests/RunCMake/Swift/NoWorkToDo.cmake @@ -1,6 +1,9 @@ cmake_policy(SET CMP0157 NEW) enable_language(Swift) -add_executable(hello1 hello.swift) + +file(WRITE ${CMAKE_CURRENT_BINARY_DIR}/hello.swift "") + +add_executable(hello1 ${CMAKE_CURRENT_BINARY_DIR}/hello.swift) set_target_properties(hello1 PROPERTIES ENABLE_EXPORTS TRUE) -add_executable(hello2 hello.swift) +add_executable(hello2 ${CMAKE_CURRENT_BINARY_DIR}/hello.swift) diff --git a/Tests/RunCMake/Swift/RunCMakeTest.cmake b/Tests/RunCMake/Swift/RunCMakeTest.cmake index 68d10ea..ba5bf44 100644 --- a/Tests/RunCMake/Swift/RunCMakeTest.cmake +++ b/Tests/RunCMake/Swift/RunCMakeTest.cmake @@ -27,6 +27,9 @@ elseif(RunCMake_GENERATOR STREQUAL Ninja) set(RunCMake_TEST_OUTPUT_MERGE 1) run_cmake_command(NoWorkToDo-build ${CMAKE_COMMAND} --build .) run_cmake_command(NoWorkToDo-nowork ${CMAKE_COMMAND} --build . -- -d explain) + file(WRITE ${RunCMake_TEST_BINARY_DIR}/hello.swift "//No-op change\n") + run_cmake_command(NoWorkToDo-norelink ${CMAKE_COMMAND} --build . -- -d explain) + run_cmake_command(NoWorkToDo-nowork ${CMAKE_COMMAND} --build . -- -d explain) endblock() # Test that intermediate static libraries are rebuilt when the public |