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("")
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")