CMake 3.17.0 建置系統發布

介紹 發布跨平台開放建置腳本產生器 CMake的3.17,它作為 Autotools 的替代品,用於 KDE、LLVM/Clang、MySQL、MariaDB、ReactOS 和 Blender 等專案。 CMake 程式碼是用 C++ 編寫的,並在 BSD 許可證下分發。

CMake 因提供簡單的腳本語言、透過模組擴展功能的方法、最少數量的依賴項(不綁定到 M4、Perl 或 Python)、快取支援、交叉編譯工具的存在、生成構建的支援而聞名。用於各種建置系統和編譯器的文件,用於定義測試腳本和建置套件的ctest 和cpack 實用程序,用於互動式設定建置參數的cmake-gui 實用程式。

主要的 改進:

  • 新增了基於 Ninja 工具包的新彙編腳本產生器 - “Ninja Multi-Config”,它與舊生成器的不同之處在於能夠同時處理多個彙編配置。
  • 在 Visual Studio 的組合腳本產生器中 出現 能夠定義與每個配置關聯的來源檔案(每個配置來源)。
  • 設定 CUDA 元參數(「cuda_std_03」、「cuda_std_14」等)的功能已新增至設定編譯器參數(編譯功能)的工具。
  • 新增了變數“CMAKE_CUDA_RUNTIME_LIBRARY”和“CUDA_RUNTIME_LIBRARY”以在使用 CUDA 時選擇運行時庫的類型。
  • 新增了「FindCUDAToolkit」模組,無需啟用 CUDA 語言即可確定係統上可用的 CUDA 工具包。
  • 在 cmake 中新增了「--debug-find」命令,以便在執行搜尋操作時輸出額外的可讀診斷資訊。 出於類似目的,新增了 CMAKE_FIND_DEBUG_MODE 變數。
  • 在「FindCURL」模組中新增了對使用 cmake 產生的設定檔「CURLConfig.cmake」搜尋 CURL 工具的支援。 若要停用此行為,提供了 CURL_NO_CURL_CMAKE 變數。
  • FindPython 模組增加了在使用「conda」管理的虛擬環境中搜尋 Python 元件的功能。
  • ctest 實用程式新增了「--no-tests=[error|ignore]」選項來定義沒有測試情況下的行為,並新增了「--repeat」來設定重新執行測試的條件(直到通過,逾時後) 。
  • 彙編目標屬性 INTERFACE_LINK_OPTIONS、INTERFACE_LINK_DIRECTORIES 和 INTERFACE_LINK_DEPENDS 現在在靜態彙編函式庫的內部相依性之間傳送。
  • 使用 MinGW 工具包時,預設會停用使用 find_library 指令搜尋 DLL 檔案(相反,預設會嘗試匯入「.dll.a」庫)。
  • 現在,在 Ninja 產生器中選擇 ninja 實用程式的邏輯不依賴可執行檔的名稱 - 使用透過 PATH 環境變數定義的路徑中找到的第一個 ninja-build、ninja 或 samu 實用程式。
  • 在 cmake 新增了「-E rm」指令,可用於刪除檔案和目錄,而不是單獨的「-E remove」和「-E remove_directory」指令。

來源: opennet.ru

添加評論