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的分支、循环、函数等语法,进行更加灵活的配置。。