diff options
-rw-r--r-- | cmake/QtExecutableHelpers.cmake | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/cmake/QtExecutableHelpers.cmake b/cmake/QtExecutableHelpers.cmake index 4bd03c8f8c..9633cc00a9 100644 --- a/cmake/QtExecutableHelpers.cmake +++ b/cmake/QtExecutableHelpers.cmake @@ -404,7 +404,23 @@ function(qt_internal_add_configure_time_executable target) "${timestamp_file}" ) - if(NOT EXISTS "${target_binary_path}") + set(should_build_at_configure_time TRUE) + if(EXISTS "${target_binary_path}") + set(last_ts 0) + foreach(source IN LISTS sources) + file(TIMESTAMP "${source}" ts "%s") + if(${ts} GREATER ${last_ts}) + set(last_ts ${ts}) + endif() + endforeach() + + file(TIMESTAMP "${target_binary_path}" ts "%s") + if(${ts} GREATER_EQUAL ${last_ts}) + set(should_build_at_configure_time FALSE) + endif() + endif() + + if(should_build_at_configure_time) foreach(arg IN LISTS multi_value_args) string(TOLOWER "${arg}" template_arg_name) set(${template_arg_name} "") |