summaryrefslogtreecommitdiffstats
path: root/cmake/QtExecutableHelpers.cmake
diff options
context:
space:
mode:
authorAlexey Edelev <alexey.edelev@qt.io>2022-09-27 19:14:14 +0200
committerAlexey Edelev <alexey.edelev@qt.io>2022-09-28 21:47:14 +0200
commitbcd08f86da7881bddd37e4c06b7a9423a1f87256 (patch)
treed93b618dd1359130d34e0ed3fd488ad02cb438fe /cmake/QtExecutableHelpers.cmake
parentfdd1d54bc4c8c42174fd9ab03ed02dc274acb3f5 (diff)
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 <alexandru.croitor@qt.io>
Diffstat (limited to 'cmake/QtExecutableHelpers.cmake')
-rw-r--r--cmake/QtExecutableHelpers.cmake18
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} "")