幾天前 CMake 3.15跨平台開源腳本生成器發布 它可以替代Autotools,並在KDE,LLVM / Clang,MySQL,MariaDB,ReactOS和Blender等項目中使用。
CMake是一種多平台代碼生成或自動化工具。 該名稱是“ cross platform make”(make跨平台,在名稱中使用“ make”的縮寫)的縮寫。,CMake是一個單獨的套件,並且比常見的make系統更高級別 Unix,類似於自動工具。
關於CMake
CMake的 以提供一種簡單的腳本語言而著稱, 工具,用於跨模塊擴展功能,最小數量的依賴項(不綁定到M4,Perl或Python),緩存支持,可用於交叉編譯的工具,支持生成廣泛的彙編文件的工具編譯器系統和編譯器。
ctest和cpack實用程序用於定義測試方案和程序包創建,而cmake-gui實用程序用於交互式配置構建參數。
CMake用於使用簡單且獨立的配置文件來控制軟件的編譯過程 平台。 Cmake生成可在所需開發環境中使用的本機makefile和工作區。
與Unix GNU構建系統相比,它的過程由配置文件控制(對於CMake,稱為CMakeLists.txt)。
與GNU構建系統不同,後者 僅限於Unix平台,CMake支持為各種操作系統生成文件,這有助於維護並消除了每個平台具有多組文件的需要。
通過在每個目錄(包括子目錄)中創建一個或多個CMakeLists.txt文件來控制構建過程。
CMake代碼是用C ++編寫的,並根據BSD許可證進行分發。
CMake 3.15主要新功能
這個新版本 最初的Swift語言支持開始出現 由Apple開發的Ninja Toolkit程序集腳本生成器已添加。
除此之外, 還提供了對Clang編譯器選項的支持 適用於使用ABI MSVC構建的Windows,但使用GNU樣式的命令行選項。
開發人員強調變量 CMAKE_MSVC_RUNTIME_LIBRARY
y MSVC_RUNTIME_LIBRARY
添加以選擇編譯器使用的運行時庫 ABI MSVC
(MS Visual Studio)。
對於像這樣的編譯器 MSVC
在 CMAKE__FLAGS
默認情況下,警告控制標誌列表(例如“ / W3”)將停止。
在此新版本發布的公告中突出顯示的其他改進中,我們發現以下內容:
- 添加了生成表達式'
COMPILE_LANG_AND_ID
:»為使用變量的目標文件定義編譯器選項CMAKE__COMPILER_ID
yLANGUAGE
對於每個代碼文件 - 生成器表達式
C_COMPILER_ID, CXX_COMPILER_ID, CUDA_COMPILER_ID,
Fortran_COMPILER_ID, COMPILE_LANGUAGE, COMPILE_LANG_AND_ID
yPLATFORM_ID
添加將值與列表匹配的支持,逗號分隔的項目 - 該變量已添加
CMAKE_FIND_PACKAGE_PREFER_CONFIG
,其中對find_package()的調用將首先搜索包配置文件,即使搜索模塊可用 - 對於接口庫,添加了對設置屬性的支持
PUBLIC_HEADER y PRIVATE_HEADER
,其頭可以通過安裝命令(TARGETS)傳遞參數來配置PUBLIC_HEADER
yPRIVATE_HEADER
- 該變量已添加
CMAKE_VS_JUST_MY_CODE_DEBUGGING
和目標屬性VS_JUST_MY_CODE_DEBUGGING
使用MSVC cl 19.05和更高版本進行編譯時,在Visual Studio調試器中啟用“僅我的代碼”模式。 - FindBoost模塊已被重新設計,現在在存在其他搜索模塊的情況下,可以在配置和模塊模式下更全面地工作
- 在消息()命令中添加了對NOTICE,VERBOSE,DEBUG和TRACE類型的支持
- 現在,“ export(PACKAGE)”命令將不執行任何操作,直到通過變量將其顯式啟用為止。
CMAKE_EXPORT_PACKAGE_REGISTRY
.
如果您想了解更多信息,可以諮詢 以下鏈接。