xmake 工程描述语法更新
2016-11-16 13:40
246 查看
最近对xmake.lua的工程描述语法进行了增强,现已可以同时支持两种不同语法风格。
set-add描述风格
key-val描述风格
优势:控制灵活,可以根据各种条件,通过if-then进行灵活的条件编译,可以驾驭各种高度复杂的配置需求。
劣势:作用域控制不明显,需要手动规范化缩进
优势:更加的精简可读
劣势:条件编译虽然也支持,但是不太灵活
这两种风格,目前xmake都是同时兼容支持的,可以根据个人喜好,随意使用,但是这边的建议是:
针对简单的工程,不需要太过复杂的条件编译,可以使用key-val方式,更加精简,可读性好
针对复杂工程,需要更高的可控性,和灵活性的话,建议使用set-add方式
尽量不要两种风格混着写,虽然是支持的,但是这样对整个工程描述会感觉很乱,因此尽量统一风格作为自己的描述规范
另外,不仅对target,像option, task, template都是支持两种方式设置的,例如:
自定义的任务或者插件可以这么写:
个人主页:TBOOX开源工程
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 = {} } }
个人主页:TBOOX开源工程
相关文章推荐
- 使用xmake优雅地描述工程
- xmake 描述语法和作用域详解
- 使用xmake优雅地描述工程
- mysql 连接其他表更新字段语法
- mongodb 创建更新语法
- Kotlin开发安卓APP笔记-创建工程及基础语法
- (更新)knockout.js学习——1.8例子——绑定的详细语法
- Mybatis批量更新问题SQL语法错误
- cordova的安装,更新及工程bulid问题的分析和解决
- Xcode 打开SVN更新后的工程提示,cannot be opened because the project file cannot be parsed解决办法
- 关于java项目工程一下乱七八糟问题记录(持续更新)
- OSPF详解(九):数据库描述、请求、更新、确认数据包格式
- dedecms 获取描述信息限制字数的语法
- 【不断更新贴】总结编程的技巧、语法等,需要多敲代码、记忆掌握
- Swift2.0语法更新(2)
- 添加设备以及更新描述文件
- 【软件工程基础】课本学习过程中碰到的问题(3.19更新三个问题)
- 所见的GCC和标准C不同的一些语法(长期更新)
- 注解描述(持续更新)