XMake 基于 Lua 的跨平台构建工具 项目简介
简介XMake是一个基于Lua的轻量级跨平台自动构建工具,支持在各种主流平台上构建项目xmake的目标是开发者更加关注于项目本身开发,简化项目的描述和构建,并且提供平台无关性,使得一次编写,随处构建它跟cmake、automake、premake有点类似,但是机制不同,它默认不会去生成IDE相关的工程文件,采用直接编译,并且更加的方便易用 采用lua的工程描述语法更简洁直观,支持在大部分常用平台上进行构建,以及交叉编译并且xmake提供了创建、配置、编译、打包、安装、卸载、运行等一些actions,使得开发和构建更加的方便和流程化。不仅如此,它还提供了许多更加高级的特性,例如插件扩展、脚本宏记录、批量打包、自动文档生成等等。。如果你想要了解更多,请参考:在线文档 项目主页 Github Gitee_
__ ___ __ __ __ _| | ______
\ \/ / | \/ |/ _ | |/ / __ \
>安装使用curlbash
使用wget
bash
使用powershell
Invoke-Expression (Invoke-Webrequest 'https://raw.githubusercontent.com/tboox/xmake/master/scripts/get.ps1' -UseBasicParsing).Content简单的工程描述包依赖描述官方的xmake包管理仓库: xmake-repo构建工程$ xmake运行目标$ xmake run console调试程序$ xmake run -d console配置平台$ xmake f -p [windows|linux|macosx|android|iphoneos ..] -a [x86|arm64 ..] -m [debug|release]
$ xmake图形化菜单配置$ xmake f --menu包依赖管理支持平台Windows (x86, x64) Macosx (i386, x86_64) Linux (i386, x86_64, cross-toolchains ...) Android (armv5te, armv6, armv7-a, armv8-a, arm64-v8a) iPhoneOS (armv7, armv7s, arm64, i386, x86_64) WatchOS (armv7k, i386) Mingw (i386, x86_64)支持语言C/C++ Objc/Objc++ Swift Assembly Golang Rust Dlang Cuda工程类型静态库程序 动态库类型 控制台程序 Cuda程序 Qt应用程序 WDK驱动程序 WinSDK应用程序内置插件宏记录脚本和回放插件$ xmake m -b # 开始记录
$ xmake f -p iphoneos -m debug
$ xmake
$ xmake f -p android --ndk=~/files/android-ndk-r16b
$ xmake
$ xmake m -e # 结束记录
$ xmake m . # 回放命令加载自定义lua脚本插件$ xmake l ./test.lua
$ xmake l -c "print('hello xmake!')"
$ xmake l lib.detect.find_tool gcc生成IDE工程文件插件(makefile, vs2002 - vs2017, ...)$ xmake project -k vs2017 -m "debug,release"生成doxygen文档插件$ xmake doxygen [srcdir]更多插件请到插件仓库进行下载安装: xmake-plugins.IDE和编辑器插件xmake-vscodexmake-sublimexmake-ideaxmake.vim (third-party, thanks @luzhlon)更多例子Debug和Release模式:add_rules("mode.debug", "mode.release")
target("console")
set_kind("binary")
add_files("src/*.c")
if is_plat("windows", "mingw") then
add_defines("XXX")
end自定义脚本:target("test")
set_kind("static")
add_files("src/*.cpp")
after_build(function (target)
print("build %s ok!", target:targetfile())
end)使用扩展模块:target("test")
set_kind("shared")
add_files("src/*.c")
on_load(function (target)
import("lib.detect.find_package")
target:add(find_package("zlib"))
end)项目例子一些使用xmake的项目:tbox gbox vm86 更多演示视频联系方式邮箱:[email protected] 主页:tboox.org 社区:Reddit论坛 聊天:Telegram群组, Gitter聊天室 源码:Github, Gitee QQ群:343118190 微信公众号:tboox-os
__ ___ __ __ __ _| | ______
\ \/ / | \/ |/ _ | |/ / __ \
>安装使用curlbash
使用wget
bash
使用powershell
Invoke-Expression (Invoke-Webrequest 'https://raw.githubusercontent.com/tboox/xmake/master/scripts/get.ps1' -UseBasicParsing).Content简单的工程描述包依赖描述官方的xmake包管理仓库: xmake-repo构建工程$ xmake运行目标$ xmake run console调试程序$ xmake run -d console配置平台$ xmake f -p [windows|linux|macosx|android|iphoneos ..] -a [x86|arm64 ..] -m [debug|release]
$ xmake图形化菜单配置$ xmake f --menu包依赖管理支持平台Windows (x86, x64) Macosx (i386, x86_64) Linux (i386, x86_64, cross-toolchains ...) Android (armv5te, armv6, armv7-a, armv8-a, arm64-v8a) iPhoneOS (armv7, armv7s, arm64, i386, x86_64) WatchOS (armv7k, i386) Mingw (i386, x86_64)支持语言C/C++ Objc/Objc++ Swift Assembly Golang Rust Dlang Cuda工程类型静态库程序 动态库类型 控制台程序 Cuda程序 Qt应用程序 WDK驱动程序 WinSDK应用程序内置插件宏记录脚本和回放插件$ xmake m -b # 开始记录
$ xmake f -p iphoneos -m debug
$ xmake
$ xmake f -p android --ndk=~/files/android-ndk-r16b
$ xmake
$ xmake m -e # 结束记录
$ xmake m . # 回放命令加载自定义lua脚本插件$ xmake l ./test.lua
$ xmake l -c "print('hello xmake!')"
$ xmake l lib.detect.find_tool gcc生成IDE工程文件插件(makefile, vs2002 - vs2017, ...)$ xmake project -k vs2017 -m "debug,release"生成doxygen文档插件$ xmake doxygen [srcdir]更多插件请到插件仓库进行下载安装: xmake-plugins.IDE和编辑器插件xmake-vscodexmake-sublimexmake-ideaxmake.vim (third-party, thanks @luzhlon)更多例子Debug和Release模式:add_rules("mode.debug", "mode.release")
target("console")
set_kind("binary")
add_files("src/*.c")
if is_plat("windows", "mingw") then
add_defines("XXX")
end自定义脚本:target("test")
set_kind("static")
add_files("src/*.cpp")
after_build(function (target)
print("build %s ok!", target:targetfile())
end)使用扩展模块:target("test")
set_kind("shared")
add_files("src/*.c")
on_load(function (target)
import("lib.detect.find_package")
target:add(find_package("zlib"))
end)项目例子一些使用xmake的项目:tbox gbox vm86 更多演示视频联系方式邮箱:[email protected] 主页:tboox.org 社区:Reddit论坛 聊天:Telegram群组, Gitter聊天室 源码:Github, Gitee QQ群:343118190 微信公众号:tboox-os