|
|
@@ -4,7 +4,7 @@ set(mocRerunSrcDir "${CMAKE_CURRENT_SOURCE_DIR}/mocRerun")
|
|
|
set(mocRerunBinDir "${CMAKE_CURRENT_BINARY_DIR}/mocRerun")
|
|
|
|
|
|
# Initial build
|
|
|
-configure_file(mocRerun/test1a.h.in mocRerun/test1.h COPYONLY)
|
|
|
+configure_file("${mocRerunSrcDir}/test1a.h.in" "${mocRerunBinDir}/test1.h" COPYONLY)
|
|
|
try_compile(MOC_RERUN
|
|
|
"${mocRerunBinDir}"
|
|
|
"${mocRerunSrcDir}"
|
|
|
@@ -17,23 +17,44 @@ try_compile(MOC_RERUN
|
|
|
if (NOT MOC_RERUN)
|
|
|
message(SEND_ERROR "Initial build of mocRerun failed. Output: ${output}")
|
|
|
endif()
|
|
|
-
|
|
|
# Get name of the output binary
|
|
|
-file(STRINGS "${mocRerunBinDir}/target1.txt" target1List ENCODING UTF-8)
|
|
|
-list(GET target1List 0 binFile)
|
|
|
-
|
|
|
-file(TIMESTAMP "${binFile}" timeBegin "${timeformat}")
|
|
|
+file(STRINGS "${mocRerunBinDir}/mocRerun.txt" mocRerunList ENCODING UTF-8)
|
|
|
+list(GET mocRerunList 0 mocRerunBin)
|
|
|
|
|
|
-# Change header file content and rebuild
|
|
|
+message("Changing the header content for a MOC rerun")
|
|
|
+# - Acquire binary timestamps before the build
|
|
|
+file(TIMESTAMP "${mocRerunBin}" timeBefore "${timeformat}")
|
|
|
+# - Ensure that the timestamp will change
|
|
|
+# - Change header file content and rebuild
|
|
|
+# - Rebuild
|
|
|
execute_process(COMMAND "${CMAKE_COMMAND}" -E sleep 1)
|
|
|
-configure_file(mocRerun/test1b.h.in mocRerun/test1.h COPYONLY)
|
|
|
+configure_file("${mocRerunSrcDir}/test1b.h.in" "${mocRerunBinDir}/test1.h" COPYONLY)
|
|
|
execute_process(COMMAND "${CMAKE_COMMAND}" --build . WORKING_DIRECTORY "${mocRerunBinDir}" RESULT_VARIABLE result )
|
|
|
if (result)
|
|
|
message(SEND_ERROR "Second build of mocRerun failed.")
|
|
|
endif()
|
|
|
+# - Acquire binary timestamps after the build
|
|
|
+file(TIMESTAMP "${mocRerunBin}" timeAfter "${timeformat}")
|
|
|
+# - Test if timestamps changed
|
|
|
+if (NOT timeAfter GREATER timeBefore)
|
|
|
+ message(SEND_ERROR "File (${mocRerunBin}) should have changed!")
|
|
|
+endif()
|
|
|
|
|
|
-file(TIMESTAMP "${binFile}" timeStep1 "${timeformat}")
|
|
|
|
|
|
-if (NOT timeStep1 GREATER timeBegin)
|
|
|
- message(SEND_ERROR "File (${binFile}) should have changed in the first step!")
|
|
|
+message("Changing nothing for a MOC rerun")
|
|
|
+# - Acquire binary timestamps before the build
|
|
|
+file(TIMESTAMP "${mocRerunBin}" timeBefore "${timeformat}")
|
|
|
+# - Ensure that the timestamp would change
|
|
|
+# - Change nothing
|
|
|
+# - Rebuild
|
|
|
+execute_process(COMMAND "${CMAKE_COMMAND}" -E sleep 1)
|
|
|
+execute_process(COMMAND "${CMAKE_COMMAND}" --build . WORKING_DIRECTORY "${mocRerunBinDir}" RESULT_VARIABLE result )
|
|
|
+if (result)
|
|
|
+ message(SEND_ERROR "Third build of mocRerun failed.")
|
|
|
+endif()
|
|
|
+# - Acquire binary timestamps after the build
|
|
|
+file(TIMESTAMP "${mocRerunBin}" timeAfter "${timeformat}")
|
|
|
+# - Test if timestamps changed
|
|
|
+if (timeAfter GREATER timeBefore)
|
|
|
+ message(SEND_ERROR "File (${mocRerunBin}) should not have changed!")
|
|
|
endif()
|