From bcd08f86da7881bddd37e4c06b7a9423a1f87256 Mon Sep 17 00:00:00 2001 From: Alexey Edelev Date: Tue, 27 Sep 2022 19:14:14 +0200 Subject: Check if configure-time executable need to be recompiled Respect source files that belong to configure-time executable when reconfiguring Qt. Amends: ac74b60c9c1101288eb2c558420ba69f675a2ee2 Task-number: QTBUG-87480 Change-Id: I7e42ffe8b1b79686c0cf93a02101f0b8e6be0bea Reviewed-by: Alexandru Croitor --- cmake/QtExecutableHelpers.cmake | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) (limited to 'cmake/QtExecutableHelpers.cmake') 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} "") -- cgit v1.2.3