diff options
author | Hugh Sorby <h.sorby@auckland.ac.nz> | 2020-02-13 02:38:52 (GMT) |
---|---|---|
committer | Brad King <brad.king@kitware.com> | 2020-02-14 13:50:15 (GMT) |
commit | e46e3442fdea8297d27d765a77d48176cf50a83b (patch) | |
tree | 22388c8267de7e1a43044a6dbd6e308682f62e88 /Tests | |
parent | cb967317e4f4f91dd7840035ae1a2b2f800d3ea7 (diff) | |
download | CMake-e46e3442fdea8297d27d765a77d48176cf50a83b.zip CMake-e46e3442fdea8297d27d765a77d48176cf50a83b.tar.gz CMake-e46e3442fdea8297d27d765a77d48176cf50a83b.tar.bz2 |
Makefiles: Re-run CMake if file configured in subdirectory is missing
Add files configured by all subdirectories to `CMAKE_MAKEFILE_PRODUCTS`
rather than just those from the top level.
Fixes: #19719
Diffstat (limited to 'Tests')
-rw-r--r-- | Tests/RunCMake/configure_file/RerunCMake.cmake | 6 | ||||
-rw-r--r-- | Tests/RunCMake/configure_file/RerunCMake/CMakeLists.txt | 5 | ||||
-rw-r--r-- | Tests/RunCMake/configure_file/RunCMakeTest.cmake | 4 |
3 files changed, 8 insertions, 7 deletions
diff --git a/Tests/RunCMake/configure_file/RerunCMake.cmake b/Tests/RunCMake/configure_file/RerunCMake.cmake index 890cc1f..98387d0 100644 --- a/Tests/RunCMake/configure_file/RerunCMake.cmake +++ b/Tests/RunCMake/configure_file/RerunCMake.cmake @@ -1,8 +1,4 @@ message("Running CMake on RerunCMake") # write to stderr if cmake reruns -configure_file( - "${CMAKE_CURRENT_BINARY_DIR}/ConfigureFileInput.txt.in" - "${CMAKE_CURRENT_BINARY_DIR}/ConfigureFileOutput.txt" - @ONLY - ) +add_subdirectory(RerunCMake) # make sure CMakeCache.txt is newer than ConfigureFileOutput.txt execute_process(COMMAND ${CMAKE_COMMAND} -E sleep 1) diff --git a/Tests/RunCMake/configure_file/RerunCMake/CMakeLists.txt b/Tests/RunCMake/configure_file/RerunCMake/CMakeLists.txt new file mode 100644 index 0000000..c9681c7 --- /dev/null +++ b/Tests/RunCMake/configure_file/RerunCMake/CMakeLists.txt @@ -0,0 +1,5 @@ +configure_file( + "${CMAKE_CURRENT_BINARY_DIR}/ConfigureFileInput.txt.in" + "${CMAKE_CURRENT_BINARY_DIR}/ConfigureFileOutput.txt" + @ONLY + ) diff --git a/Tests/RunCMake/configure_file/RunCMakeTest.cmake b/Tests/RunCMake/configure_file/RunCMakeTest.cmake index de14468..32a0770 100644 --- a/Tests/RunCMake/configure_file/RunCMakeTest.cmake +++ b/Tests/RunCMake/configure_file/RunCMakeTest.cmake @@ -22,7 +22,7 @@ if(RunCMake_GENERATOR MATCHES "Make") set(RunCMake_TEST_NO_CLEAN 1) file(REMOVE_RECURSE "${RunCMake_TEST_BINARY_DIR}") file(MAKE_DIRECTORY "${RunCMake_TEST_BINARY_DIR}") - set(in_conf "${RunCMake_TEST_BINARY_DIR}/ConfigureFileInput.txt.in") + set(in_conf "${RunCMake_TEST_BINARY_DIR}/RerunCMake/ConfigureFileInput.txt.in") file(WRITE "${in_conf}" "1") message(STATUS "RerunCMake: first configuration...") @@ -42,7 +42,7 @@ if(RunCMake_GENERATOR MATCHES "Make") run_cmake_command(RerunCMake-nowork ${CMAKE_COMMAND} --build .) message(STATUS "RerunCMake: remove configure_file output...") - file(REMOVE "${RunCMake_TEST_BINARY_DIR}/ConfigureFileOutput.txt") + file(REMOVE "${RunCMake_TEST_BINARY_DIR}/RerunCMake/ConfigureFileOutput.txt") run_cmake_command(RerunCMake-rerun ${CMAKE_COMMAND} --build .) run_cmake_command(RerunCMake-nowork ${CMAKE_COMMAND} --build .) |