跨平臺自動構建工具v1.0.2 釋出
XMake是一個跨平臺自動構建工具,支援在各種主流平臺上構建專案,類似cmake、automake、premake,但是更加的方便易用,工程描述語法更簡潔直觀,支援平臺更多,並且集建立、配置、編譯、打包、安裝、解除安裝、運行於一體。
支援特性
支援windows、mac、linux、ios、android等平臺,自動檢測不同平臺上的編譯工具鏈(也可手動配置)
編譯windows專案採用原生vs的工具鏈,不需要使用cygwin、mingw(當然這些也支援)支援自定義平臺編譯配置,可以很方便的擴充套件第三方平臺支援
採用lua指令碼語法描述專案,描述規則簡單高效,邏輯規則可靈活修改,並且不會生成相關平臺的工程檔案,是工程更加簡單明瞭
支援建立模板工程、配置專案、編譯專案、執行、打包、安裝和解除安裝等常用功能(後續還會增加:自動生成文件、除錯等模組)
支援編譯c/c++/objc成靜態庫、動態庫、命令列可執行程式(後續還會增加:mac、ios、android的app的生成規則)
提供豐富的工程描述api,使用簡單靈活,例如新增編譯檔案只需(還支援過濾排除):
add_files("src/*.c", "src/asm/**.S", "src/*.m")
支援標頭檔案、介面、連結庫依賴、型別的自動檢測,並可自動生成配置標頭檔案config.h
支援自定義編譯配置開關,例如如果在工程描述檔案中增加了enable_xxx的開關,那麼配置編譯的時候就可以手動進行配置來啟用它:
xmake config --enable_xxx=true
提供一鍵打包功能,不管在哪個平臺上進行打包,都只需要執行一條相同的命令,非常的方便
支援自定義編譯工具和規則,例如想要增加對masm/yasm的編譯規則,只需將自己寫的masm.lua/yasm.lua規則檔案,放到當前專案目錄下即可。。
支援全域性配置,一些常用的專案配置,例如工具鏈、規則描述等等,都可以進行全域性配置,這樣就不需要每次編譯不同工程,都去配置一遍
除了可以自動檢測依賴模組,也支援手動強制配置模組,還有各種編譯flags。
也可以參考使用xmake的實際專案:TBOX
後續工作
- 完善打包模組,支援對ios、mac、android的app進行一鍵打包和簽名,生成.ipa、.apk、.app的應用程式檔案
- 完善安裝功能,支援對ios、android的app進行安裝到裝置
- 實現除錯功能
- 實現自動生成doxygen文件功能
- 增加一些實用的工程描述api,例如:下載api,可以自動下載缺少的依賴庫等等。。
- 解析automake、cmake的工程,並自動生成xmake的描述檔案,實現無縫編譯(如果這個實現成功的話,以後移植編譯一些開原始碼就更方便了)