CMP0135ΒΆ
Added in version 3.24.
When using the URL
download method with the ExternalProject_Add()
or FetchContent_Declare()
commands, 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 ExternalProject_Add()
and FetchContent_Declare()
commands 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.
It may be set by cmake_policy()
or cmake_minimum_required()
.
If it is not set, CMake warns, and uses OLD
behavior.
Note
The OLD
behavior of a policy is
deprecated by definition
and may be removed in a future version of CMake.