]> granicus.if.org Git - esp-idf/commitdiff
cmake: fix issue with fail at build time
authorRenz Christian Bagaporo <renz@espressif.com>
Wed, 12 Jun 2019 03:51:04 +0000 (11:51 +0800)
committerRenz Christian Bagaporo <renz@espressif.com>
Fri, 28 Jun 2019 02:54:21 +0000 (10:54 +0800)
Fix issue that next build retry does not succeed once the requirement is
satisfied.

tools/cmake/utilities.cmake

index 83403d9ce9c881e8d830251c66bcd270650413a4..758061307cf0e18b280c123c213fdd5e82da3b8f 100644 (file)
@@ -201,9 +201,15 @@ function(fail_at_build_time target_name message_line0)
     foreach(message_line ${ARGN})
         set(message_lines ${message_lines} COMMAND ${CMAKE_COMMAND} -E echo "${message_line}")
     endforeach()
+    # Generate a timestamp file that gets included. When deleted on build, this forces CMake
+    # to rerun.
+    string(RANDOM filename)
+    set(filename "${CMAKE_CURRENT_BINARY_DIR}/${filename}.cmake")
+    file(WRITE "${filename}" "")
+    include("${filename}")
     add_custom_target(${target_name} ALL
         ${message_lines}
-        COMMAND ${CMAKE_COMMAND} -E touch "${CMAKE_BINARY_DIR}/CMakeCache.txt"
+        COMMAND ${CMAKE_COMMAND} -E remove "${filename}"
         COMMAND ${CMAKE_COMMAND} -P ${idf_path}/tools/cmake/scripts/fail.cmake
         VERBATIM)
 endfunction()