CMP0135¶
添加于版本 3.24。
当使用 URL
下载方法与 ExternalProject_Add()
或 FetchContent_Declare()
命令时,CMake 3.23 及更低版本会将解压内容的 timestamps 设置为与 archive 中的 timestamps 相同。当 URL
更改时,新的 archive 会被下载和解压,但解压内容的 timestamps 可能不比之前的内容新。任何依赖于解压内容的东西可能不会被重新构建,即使内容可能已更改。
CMake 3.24 及更高版本倾向于将所有解压内容的 timestamps 设置为解压的时间。这确保了每当 URL
更改时,任何依赖于解压内容的东西都将被重新构建。
DOWNLOAD_EXTRACT_TIMESTAMP
选项,用于 ExternalProject_Add()
和 FetchContent_Declare()
命令,可以被用来显式指定如何处理 timestamps。当没有给出 DOWNLOAD_EXTRACT_TIMESTAMP
时,此策略控制默认行为。此策略的 OLD
行为是从 archive 恢复 timestamps。NEW
行为将解压内容的 timestamps 设置为解压的时间。
此策略在 CMake 版本 3.24 中引入。它可以通过 cmake_policy()
或 cmake_minimum_required()
设置。如果未设置,CMake 会发出警告,并使用 OLD
行为。
注意
策略的 OLD
行为根据定义是 deprecated by definition
,并可能在未来的 CMake 版本中移除。