CMP0135

在版本 3.24 中新增。

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

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

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

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

注意

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