您的位置:首页 > 其它

xmake 工程描述语法更新

2016-11-16 13:40 246 查看
最近对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 = {}
}
}


个人主页:TBOOX开源工程
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: