set(oldname "${CMAKE_CURRENT_BINARY_DIR}/input") set(newname "${CMAKE_CURRENT_BINARY_DIR}/output") file(WRITE "${oldname}" "") execute_process(COMMAND "${CMAKE_COMMAND} -E sleep 1") file(WRITE "${newname}" "") file(TIMESTAMP "${newname}" before_copy UTC) file(COPY_FILE "${oldname}" "${newname}" RESULT result ONLY_IF_DIFFERENT) file(TIMESTAMP "${newname}" after_copy UTC) if (NOT before_copy STREQUAL after_copy) message(FATAL_ERROR "${newname} was modified even though ONLY_IF_DIFFERENT was specified") endif ()