https://github.com/Kitware/CMake
Raw File
Tip revision: 6c0b3d2b7e3cfdf62e895d6827f103e2b3fd8ef8 authored by Brad King on 01 March 2023, 14:43:05 UTC
CMake 3.26.0-rc5
Tip revision: 6c0b3d2
CMP0135.rst
CMP0135
-------

.. versionadded:: 3.24

When using the ``URL`` download method with the :command:`ExternalProject_Add`
command, CMake 3.23 and below sets the timestamps of the extracted contents
to the same as the timestamps in the archive. When the ``URL`` changes, the
new archive is downloaded and extracted, but the timestamps of the extracted
contents might not be newer than the previous contents. Anything that depends
on the extracted contents might not be rebuilt, even though the contents may
change.

CMake 3.24 and above prefers to set the timestamps of all extracted contents
to the time of the extraction. This ensures that anything that depends on the
extracted contents will be rebuilt whenever the ``URL`` changes.

The ``DOWNLOAD_EXTRACT_TIMESTAMP`` option to the
:command:`ExternalProject_Add` command can be used to explicitly specify how
timestamps should be handled. When ``DOWNLOAD_EXTRACT_TIMESTAMP`` is not
given, this policy controls the default behavior. The ``OLD`` behavior for
this policy is to restore the timestamps from the archive. The ``NEW``
behavior sets the timestamps of extracted contents to the time of extraction.

This policy was introduced in CMake version 3.24.  CMake version |release|
warns when the policy is not set and uses ``OLD`` behavior.  Use the
:command:`cmake_policy` command to set it to ``OLD`` or ``NEW`` explicitly.

.. include:: DEPRECATED.txt
back to top