From: Angus Gratton Date: Fri, 10 Aug 2018 02:30:32 +0000 (+1000) Subject: cmake: Only rewrite componend_depends.cmake if it changes X-Git-Tag: v3.1-rc2~9^2~13^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=48bd67524dc3dd461f3616ac1d9a6bfe3ee6fb06;p=esp-idf cmake: Only rewrite componend_depends.cmake if it changes --- diff --git a/tools/cmake/scripts/expand_requirements.cmake b/tools/cmake/scripts/expand_requirements.cmake index d602801bba..a825a76473 100644 --- a/tools/cmake/scripts/expand_requirements.cmake +++ b/tools/cmake/scripts/expand_requirements.cmake @@ -184,10 +184,10 @@ debug("components in build: ${build_component_paths}") debug("components not found: ${not_found}") function(line contents) - file(APPEND "${DEPENDENCIES_FILE}" "${contents}\n") + file(APPEND "${DEPENDENCIES_FILE}.tmp" "${contents}\n") endfunction() -file(WRITE "${DEPENDENCIES_FILE}" "# Component requirements generated by expand_requirements.cmake\n\n") +file(WRITE "${DEPENDENCIES_FILE}.tmp" "# Component requirements generated by expand_requirements.cmake\n\n") line("set(BUILD_COMPONENTS ${build_components})") line("set(BUILD_COMPONENT_PATHS ${build_component_paths})") line("") @@ -216,3 +216,7 @@ endforeach() line(" message(FATAL_ERROR \"Component not found: \${component}\")") line("endfunction()") + +# only replace DEPENDENCIES_FILE if it has changed (prevents ninja/make build loops.) +execute_process(COMMAND ${CMAKE_COMMAND} -E copy_if_different "${DEPENDENCIES_FILE}.tmp" "${DEPENDENCIES_FILE}") +execute_process(COMMAND ${CMAKE_COMMAND} -E remove "${DEPENDENCIES_FILE}.tmp")