CMake 3.5 發行說明

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

新功能

GUI

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

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

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

命令列

  • -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 模組現在提供匯入的目標。

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

  • FindOpenMP 模組學習到支援 Clang。

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

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

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

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

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

平台

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

  • 新增了一個新的平台檔案,用於在 Cray Linux Environment 中交叉編譯以瞄準運算節點。有關使用詳細資訊,請參閱 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 版本。