CMake 3.22 發行說明

自 CMake 3.21 以來所做的變更包括以下內容。

新功能

指令

變數

屬性

模組

CTest

  • ctest(1) 學會了在執行時辨識附加到測試的標籤。先前只能在設定時透過使用 LABELS 測試屬性將標籤附加到測試。更多資訊請參閱 額外的測試量測

  • ctest(1) 學會了透過 ENVIRONMENT_MODIFICATION 屬性修改測試的環境。這允許根據測試時存在的環境來更新環境變數。

  • 現在 ctest_memcheck() 命令也會產生一個 DynamicAnalysis-Test.xml 檔案,可用於向 CDash 提交測試結果。

CPack

已棄用和移除的功能

其他變更

  • 編譯功能 現在可以在未指定標準級別時正確地停用或啟用編譯器擴充功能,並在請求的設定與編譯器的預設值相符時,避免不必要地添加語言標準標誌。請參閱 CMP0128

  • 編譯功能 現在會忽略未啟用的語言的功能。

  • 現在 Ninja 產生器 使用 ccmake(1)(如果可用)實作 edit_cache 目標。

  • 現在 NinjaNMake Makefiles 產生器使用 MSVC -external:I 標誌用於系統包含。這從 VS 16.10(工具鏈版本 14.29.30037)開始可用。

  • 現在 CPack NSIS 產生器 需要 NSIS 3.03 或更高版本。

更新

自 CMake 3.22.0 以來的變更包括以下內容。

3.22.1

  • 此版本未對已記錄的功能或介面進行任何變更。進行了一些實作更新,以支援生態系統變更和/或修復回歸問題。

3.22.2

  • 修復了 CMP0128OLD 行為,即使指定的標準與編譯器預設值相符,也會添加標誌。

3.22.3

  • while() 命令再次忽略條件評估中的錯誤,就像 CMake 3.21 和更早版本一樣。此錯誤已在 3.22.0 中修復,但暴露了現有專案中的錯誤。該修復已還原以恢復相容性。該修復可能會在未來版本的 CMake 中透過政策恢復。

3.22.4、3.22.5、3.22.6

  • 這些版本未對已記錄的功能或介面進行任何變更。進行了一些實作更新,以支援生態系統變更和/或修復回歸問題。