xmake的工程描述文件,摈弃了makefile的繁琐复杂,借鉴了premake的简洁明了,原生支持lua脚本,使得更加的灵活、方便扩展。
工程默认描述文件名为xmake.lua,支持多级目录嵌套,也可以通过以下命令,指定其他文件作为工程描述文件:
xmake -f /tmp/xxx.lua
xmake --file=xxx.lua
下面先来看一个最简单的例子:
-- 添加一个名为demo的目标到工程
add_target("demo")
-- 设置目标程序类型为二进制可执行程序,一般为console的终端命令行程序
set_kind("binary")
-- 添加src目录下的所有c文件
add_files("src/*.c")
怎么样简单吧,这样就已经完成了一个最简单的工程描述。。
下面我们看一个稍微复杂一点的例子,这个例子中对release、debug模式进行了不同的设置:
-- 如果当前编译的是debug模式
if modes("debug") then
-- 启用调试符号
set_symbols("debug")
-- 禁用优化
set_optimize("none")
end
-- 如果当前编译的是release模式
if modes("release") then
-- 设置符号可见性为不可见
set_symbols("hidden")
-- 启用最快优化模式
set_optimize("fastest")
-- 去除所有符号信息,包括调试符号
set_strip("all")
end
-- 添加一个名为test的目标
add_target("test")
-- 将test编译成为静态库类型
set_kind("static")
-- 添加所有c++文件,包括子目录(注:**表明多级递归匹配模式)
add_files("src/**.cpp")
其实也不是很复杂吧,由于采用lua语法,所以逻辑上更加的灵活,你完全可以用lua的分支、循环、函数等语法,进行更加灵活的配置。。