CMake 3.5 發行說明

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

新功能

GUI

  • cmake-gui(1) 增加了控制有關已棄用功能的警告的選項。

  • cmake-gui(1) 學習了一個選項,可以設定用於 VS IDE 和 Xcode 產生器的工具集,就像現有的 -T 選項用於 cmake(1) 一樣。

  • cmake-gui(1) 增加了一個正規表示式瀏覽器,可用於即時建立和評估正規表示式。瀏覽器視窗可透過 Tools 選單存取。

命令列

  • -Wdev-Wno-dev cmake(1) 選項現在也預設啟用和停用已棄用警告的輸出。

  • 現在可以使用新的 -Werror=dev-Wno-error=dev cmake(1) 選項來控制將開發人員警告視為錯誤的行為。

  • cmake(1) -E 命令列工具 copycopy_if_differentcopy_directorymake_directory 學會了支援多個輸入檔案或目錄。

指令

變數

屬性

  • 現在為 VS 2010 及更高版本實作了 VS_GLOBAL_<variable> 目標屬性。以前它僅在 VS 2008 及更低版本中有效。

模組

  • ExternalProject 模組學習了一個新的 GIT_REMOTE_NAME 選項,用於控制 git clone --origin 值。

  • FindBoost 模組現在提供導入的目標,例如 Boost::boostBoost::filesystem

  • FindFLEX 模組 FLEX_TARGET 巨集學習了一個新的 DEFINES_FILE 選項,用於指定要產生的自訂輸出標頭。

  • FindGTest 模組現在提供導入的目標。

  • 當啟用 GTK2_USE_IMPORTED_TARGETS 時,FindGTK2 模組現在將 GTK2_LIBRARIES 設定為包含導入的目標清單,而不是程式庫的路徑。此外,它現在設定一個新的 GTK2_TARGETS 變數,其中包含所有導入的目標。

  • FindOpenMP 模組學會了支援 Clang。

  • FindOpenSSL 模組增加了一個新的 OPENSSL_MSVC_STATIC_RT 選項,用於搜尋使用 MSVC 靜態執行階段的程式庫。

  • FindPNG 模組現在提供導入的目標。

  • FindTIFF 模組現在提供導入的目標。

  • 引入了 FindXalanC 模組,用於尋找 Apache Xalan-C++ XSL 轉換處理程式庫。

  • FindXercesC 模組現在提供導入的目標。

平台

  • 新增了對 ARM 編譯器 (arm.com) 的支援,編譯器 ID 為 ARMCC

  • 新增了一個用於在 Cray Linux 環境中進行交叉編譯以目標計算節點的平台檔案。詳細使用方式請參閱 針對 Cray Linux 環境的交叉編譯

  • 編譯功能 現在可以識別 Windows (MinGW) 上 Clang 編譯器支援的功能。

  • 當為 iOS 等嵌入式 Apple 平台建置時,CMake 學會了建置和安裝包含裝置和模擬器建置的合併目標。可以透過設定 IOS_INSTALL_COMBINED 目標屬性來啟用此行為。

CPack

其他

  • 現在預設會啟用關於已棄用功能的警告。可以使用 -Wno-deprecated 或將 CMAKE_WARN_DEPRECATED 變數設定為 false 來抑制這些警告。

已棄用和移除的功能

  • cmake(1) -E time 命令現在可以正確地將帶有空格或特殊字元的引數傳遞給子進程。這可能會破壞那些使用自己的額外引號或逸出來解決錯誤的腳本。

  • 已修復 Xcode 產生器,使其字串中的反斜線逸出方式與其他產生器一致。先前透過額外的反斜線層級並以 Xcode 產生器為條件來解決不一致性的專案,必須更新以移除 CMake 3.5 和更高版本的解決方法。

其他變更

  • Visual Studio 14 2015 產生器學會了將 /debug:fastlink 連結器旗標對應到 .vcxproj 檔案屬性。

  • FindGTK2 模組現在會組態 GTK2::sigc++ 匯入目標,以便在使用 sigc++ 2.5.1 或更高版本時,在其依賴項上啟用 c++11。

  • cmake.org 上提供的預編譯 Windows 二進制檔現在是 .msi 封裝,而不是安裝程式可執行檔。在安裝新封裝之前,可能需要手動解除安裝低於 3.5 的 CMake 版本。