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

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

3.22.4, 3.22.5, 3.22.6

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