博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
xmake 工程描述语法更新
阅读量:7082 次
发布时间:2019-06-28

本文共 1777 字,大约阅读时间需要 5 分钟。

  hot3.png

最近对xmake.lua的工程描述语法进行了增强,现已可以同时支持两种不同语法风格。

  • set-add描述风格
  • key-val描述风格

set-add描述风格

这种是xmake经典的设置风格,例如:

target("test")    set_kind("static")    add_defines("DEBUG")    add_files("src/*.c", "test/*.cpp")
  • 优势:控制灵活,可以根据各种条件,通过if-then进行灵活的条件编译,可以驾驭各种高度复杂的配置需求。
  • 劣势:作用域控制不明显,需要手动规范化缩进

key-val描述风格

这种是xmake最近新加的风格,例如:

target{    name = "test",    defines = "DEBUG",    files = {"src/*.c", "test/*.cpp"}}
  • 优势:更加的精简可读
  • 劣势:条件编译虽然也支持,但是不太灵活

这两种风格,目前xmake都是同时兼容支持的,可以根据个人喜好,随意使用,但是这边的建议是:

  • 针对简单的工程,不需要太过复杂的条件编译,可以使用key-val方式,更加精简,可读性好
  • 针对复杂工程,需要更高的可控性,和灵活性的话,建议使用set-add方式
  • 尽量不要两种风格混着写,虽然是支持的,但是这样对整个工程描述会感觉很乱,因此尽量统一风格作为自己的描述规范

另外,不仅对target,像option, task, template都是支持两种方式设置的,例如:

-- set-add风格option("demo")    set_default(true)    set_showmenu(true)    set_category("option")    set_description("Enable or disable the demo module", "    =y|n")-- key-val风格option{    name = "demo",    default = true,    showmenu = true,    category = "option",    desciption = {"Enable or disable the demo module", "    =y|n"}}

自定义的任务或者插件可以这么写:

-- set-add风格task("hello")    -- on run    on_run(function ()        -- trace        print("hello xmake!")    end)    -- set menu    set_menu({                    -- usage                    usage = "xmake hello [options]"                    -- description                ,   description = "Hello xmake!"                    -- options                ,   options = {}                }) -- key-val风格task{    name = "hello",    run = (function ()        -- trace        print("hello xmake!")    end),    menu = {                -- usage                usage = "xmake hello [options]"                -- description            ,   description = "Hello xmake!"                -- options            ,   options = {}            }}

个人主页:

转载于:https://my.oschina.net/tboox/blog/789056

你可能感兴趣的文章
java中substring的用法
查看>>
Mysql DBA 高级运维学习之路-Mysql常见多实例配置方案及多实例安装
查看>>
800号业务和400号业务
查看>>
dns配置
查看>>
VMware Horizon View 5.x系列之使用Linked Clone配置Automated Pools
查看>>
ping一个主机的几种最常见回应信息
查看>>
关于malloc内存申请的深入研究
查看>>
利用Rsync配置双机主备同步WEB网站文件同步,K哥
查看>>
文字渐变效果:图层中的mask属性
查看>>
输入一个正整数num 求N(2~9)进制数
查看>>
nagios nsclient 安装
查看>>
System Center系列Blog链接
查看>>
初创企业存活的4个秘诀
查看>>
升级ios
查看>>
此库在手,好片无忧
查看>>
Windows服务器时间不断修改(时间不同步已解决)
查看>>
Zabbix使用自带模板监控MySQL
查看>>
[Asp.net]绝对路径和相对路径
查看>>
struts2
查看>>
java分页之页面分页
查看>>