xmake工程描述入门

2016-02-03 ruki 更多博文 » 博客 » GitHub »

xmake premake

原文链接 https://waruqi.github.io/2016/02/03/project-description.cn/
注:以下为加速网络访问所做的原文缓存,经过重新格式化,可能存在格式方面的问题,或偶有遗漏信息,请以原文为准。


xmake的工程描述文件,摈弃了makefile的繁琐复杂,借鉴了premake的简洁明了,原生支持lua脚本,使得更加的灵活、方便扩展。

工程默认描述文件名为xmake.lua,支持多级目录嵌套,也可以通过以下命令,指定其他文件作为工程描述文件:

    xmake -f /tmp/xxx.lua
    xmake --file=xxx.lua

下面先来看一个最简单的例子:

    -- 添加一个名为demo的目标到工程
    target("demo")

        -- 设置目标程序类型为二进制可执行程序,一般为console的终端命令行程序
        set_kind("binary")

        -- 添加src目录下的所有c文件
        add_files("src/*.c") 

怎么样简单吧,这样就已经完成了一个最简单的工程描述。。

下面我们看一个稍微复杂一点的例子,这个例子中对release、debug模式进行了不同的设置:

    -- 如果当前编译的是debug模式
    if is_mode("debug") then

        -- 启用调试符号
        set_symbols("debug")

        -- 禁用优化
        set_optimize("none")
    end

    -- 如果当前编译的是release模式
    if is_mode("release") then

        -- 设置符号可见性为不可见
        set_symbols("hidden")

        -- 启用最快优化模式
        set_optimize("fastest")

        -- 去除所有符号信息,包括调试符号
        set_strip("all")
    end

    -- 添加一个名为test的目标
    target("test")

        -- 将test编译成为静态库类型
        set_kind("static")

        -- 添加所有c++文件,包括子目录(注:**表明多级递归匹配模式)
        add_files("src/**.cpp") 

其实也不是很复杂吧,由于采用lua语法,所以逻辑上更加的灵活,你完全可以用lua的分支、循环、函数等语法,进行更加灵活的配置。。