From a3c2d121a44d13a9927b18c05bab9298b8710651 Mon Sep 17 00:00:00 2001 From: Robert Buchholz Date: Mon, 9 Mar 2020 13:45:44 +0100 Subject: [PATCH] Update CMake-generated dummy sources only when their content changes - this prevents unnecessary rebuilds after each CMake run --- cmake/util.cmake | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/cmake/util.cmake b/cmake/util.cmake index 8c82f46..813146a 100644 --- a/cmake/util.cmake +++ b/cmake/util.cmake @@ -8,11 +8,17 @@ set(DRACO_CMAKE_UTIL_CMAKE_ 1) # parameter. function(create_dummy_source_file basename extension out_file_path) set(dummy_source_file "${draco_build_dir}/${basename}.${extension}") - file(WRITE "${dummy_source_file}" + file(WRITE "${dummy_source_file}.new" "// Generated file. DO NOT EDIT!\n" "// ${target_name} needs a ${extension} file to force link language, \n" "// or to silence a harmless CMake warning: Ignore me.\n" "void ${target_name}_dummy_function(void) {}\n") + + # Will replace ${dummy_source_file} only if the file content has changed. + # This prevents forced Draco rebuilds after CMake runs. + configure_file("${dummy_source_file}.new" "${dummy_source_file}") + file(REMOVE "${dummy_source_file}.new") + set(${out_file_path} ${dummy_source_file} PARENT_SCOPE) endfunction()