diff options
author | Alexey Edelev <alexey.edelev@qt.io> | 2022-09-27 19:14:14 +0200 |
---|---|---|
committer | Alexey Edelev <alexey.edelev@qt.io> | 2022-09-28 21:47:14 +0200 |
commit | bcd08f86da7881bddd37e4c06b7a9423a1f87256 (patch) | |
tree | d93b618dd1359130d34e0ed3fd488ad02cb438fe /cmake/QtExecutableHelpers.cmake | |
parent | fdd1d54bc4c8c42174fd9ab03ed02dc274acb3f5 (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.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} "") |