CMake 3.16 建置系統發布

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

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

主要的 改進:

  • 新增了對 Objective C (“OBJC”) 和 Objective 語言的支持
    C++(「OBJCXX」),可以透過project()和enable_language()指令啟用,之後「.m」「.mm」檔案中的程式碼將編譯為Objective C和Objective C++程式碼,而不是作為C++,和先前一樣;

  • 新增了對 Solaris 平台上的 Clang 編譯器的支援;
  • 新增了新的命令列選項:「cmake -E true|false」以列印返回碼 0 和 1; “cmake --trace-redirect=” 將追蹤資訊重新導向至文件
    “標準錯誤”; “cmake --loglevel”指令已重新命名為“--log-level”,以使其與其他指令的名稱保持一致;

  • 新增了「target_precompile_headers()」指令來列出預編譯期間使用的頭檔清單(減少建置時間);
  • 新增了「UNITY_BUILD」屬性,該屬性會啟動批次模式來處理生成器中的來源檔案以加快建置速度;
  • 新增了指令「find_file()」、「find_library()」、「find_path()」、
    「find_package()」和「find_program()」根據定義各種檔案類別的搜尋路徑的變數來搜尋檔案、函式庫、路徑、套件和執行檔。
    變數“CMAKE_FIND_USE_CMAKE_ENVIRONMENT_PATH”、“CMAKE_FIND_USE_CMAKE_PATH”、“CMAKE_FIND_USE_CMAKE_SYSTEM_PATH”、“CMAKE_FIND_USE_PACKAGE_POR_PATH”、“CMAKE_FIND_PACK_Fel_D.PACK_Fel_PATH”、“CMA_E_FVI_PACK_Fel_Fel”、”用於控制基本搜尋路徑RY」;

  • 在「file()」指令中新增了「file(GET_RUNTIME_DEPENDENCIES)」模式,該模式可讓您遞歸檢索動態連結執行檔或程式庫時所使用的庫清單。該模式取代了 GetPrecessions() 指令,該指令現已被棄用;
  • “ctest(1)”命令實現了根據每個測試所需的資源來序列化測試的能力;
  • 變數“CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY”已被棄用,應替換為“CMAKE_FIND_USE_PACKAGE_REGISTRY”;
  • 改進了 AIX 平台支援。使用「ENABLE_EXPORTS」屬性時,除了可執行檔之外,現在還會產生連結器的匯入文件,並以「.imp」副檔名儲存。在透過使用“MODULE”選項呼叫“add_library()”建立的插件中,可以在使用“target_link_libraries()”命令連結時使用此檔案。預設情況下,AIX 上的執行時間連結是停用的,因為 CMake 現在提供了載入時連結所需的所有符號資訊。若要使用動態程式庫或可載入模組的執行時間鏈接,必須在連結器啟動標誌清單中明確指定選項“-Wl、-G”,透過變數“CMAKE_SHARED_LINKER_FLAGS”和“CMAKE_MODULE_LINKER_FLAGS”定義。

來源: opennet.ru

添加評論