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