CMP0135

在版本 3.24 中新增。

當使用 URL 下載方法與 ExternalProject_Add()FetchContent_Declare() 命令時,CMake 3.23 及更低版本會將解壓縮內容的時間戳記設定為與封存檔中的時間戳記相同。當 URL 變更時,新的封存檔會被下載並解壓縮,但解壓縮內容的時間戳記可能不比先前的內容新。任何依賴解壓縮內容的項目可能不會被重建,即使內容可能已變更。

CMake 3.24 及更高版本偏好將所有解壓縮內容的時間戳記設定為解壓縮的時間。這確保了每當 URL 變更時,任何依賴解壓縮內容的項目都將被重建。

DOWNLOAD_EXTRACT_TIMESTAMP 選項用於 ExternalProject_Add()FetchContent_Declare() 命令,可用於明確指定應如何處理時間戳記。當未給定 DOWNLOAD_EXTRACT_TIMESTAMP 時,此策略控制預設行為。此策略的 OLD 行為是從封存檔還原時間戳記。NEW 行為將解壓縮內容的時間戳記設定為解壓縮的時間。

此策略在 CMake 版本 3.24 中引入。它可以使用 cmake_policy()cmake_minimum_required() 進行設定。如果未設定,CMake 會發出警告,並使用 OLD 行為。

注意

策略的 OLD 行為依定義為已棄用,並可能在 CMake 的未來版本中移除。