diff options
author | Craig Scott <craig.scott@crascit.com> | 2024-09-08 22:32:10 (GMT) |
---|---|---|
committer | Kitware Robot <kwrobot@kitware.com> | 2024-09-08 22:32:40 (GMT) |
commit | 012d116260ee6f7eafc72f44949af48918ff1691 (patch) | |
tree | d501aa5ec57540e9869de0beebf9060e65086a21 | |
parent | 26791532be40d882628e050a5e456e248564e7c4 (diff) | |
parent | cbb727ca6b394aed1852d47be052a73ed8450bee (diff) | |
download | CMake-012d116260ee6f7eafc72f44949af48918ff1691.zip CMake-012d116260ee6f7eafc72f44949af48918ff1691.tar.gz CMake-012d116260ee6f7eafc72f44949af48918ff1691.tar.bz2 |
Merge topic 'cmp0168-populate-nondeclare-regression'
cbb727ca6b FetchContent: Don't update verify script timestamp if it doesn't change
795e7b44f2 Help: file(CONFIGURE) only updates output file timestamp if it changes
Acked-by: Kitware Robot <kwrobot@kitware.com>
Merge-request: !9799
-rw-r--r-- | Help/command/file.rst | 4 | ||||
-rw-r--r-- | Modules/ExternalProject/shared_internal_commands.cmake | 4 |
2 files changed, 6 insertions, 2 deletions
diff --git a/Help/command/file.rst b/Help/command/file.rst index 0ac49f4..a72b652 100644 --- a/Help/command/file.rst +++ b/Help/command/file.rst @@ -302,7 +302,9 @@ Writing variable values referenced as ``@VAR@`` or ``${VAR}`` contained therein. The substitution rules behave the same as the :command:`configure_file` command. In order to match :command:`configure_file`'s behavior, generator expressions - are not supported for both ``OUTPUT`` and ``CONTENT``. + are not supported for both ``OUTPUT`` and ``CONTENT``, and the output file + is only modified and its timestamp updated if the content is changed or the + file previously didn't exist. The arguments are: diff --git a/Modules/ExternalProject/shared_internal_commands.cmake b/Modules/ExternalProject/shared_internal_commands.cmake index 41ce55b..149a8a7 100644 --- a/Modules/ExternalProject/shared_internal_commands.cmake +++ b/Modules/ExternalProject/shared_internal_commands.cmake @@ -1213,7 +1213,9 @@ hash=${hash} endif () set(comment "Performing download step (${steps}) for '${name}'") # already verified by 'download_script' - file(WRITE "${verify_script}" "") + # We use file(CONFIGURE) instead of file(WRITE) to avoid updating the + # timestamp when the file already existed and was empty. + file(CONFIGURE OUTPUT "${verify_script}" CONTENT "") # Rather than adding everything to the RepositoryInfo.txt file, it is # more robust to just depend on the download script. That way, we will |