premake5添加新的复杂字段

时间:2015-05-22 21:42:05

标签: premake

我正在尝试在premake5脚本中添加一个新的premake5字段,但我很难理解如何指定field.kind。

我想添加一个包含(路径,字符串)对列表的字段,但无法确定如何指定种类规范。 文档和示例不是特别清楚。

这是我注册新字段的方式

premake.api.register(   {
        name = "mypathmappings",
        scope = "config",
        kind = "list:path:string",   or "list:keyed:path:string" 
    }
)

在配置范围内我声明了这样的字段项

project myproject
    mypathmappings { ["path/to/file1"] = "stringvalue1", ["path/to/file2"] = "stringvalue2"}

然而,当涉及到处理时间时,我不能得到我在该领域期待的东西:

function processpathmappings(cfg)
    local pathmappings = cfg.mypathmappings
    for path, value in pairs(pathmappings) do
        --do something with the path and value but
        --value is not a string as expected
     end
end

有人可以解释如何从api.lua中注册的字段种类正确构建复杂类型吗?

我得到了" list:integer"指定一个整数列表,但不知道"键入"元素就是例如。

1 个答案:

答案 0 :(得分:1)

现在,无法控制键值中“键”的“种类”。你能用当前系统获得的最好的是kind =“keyed:string”,它应该给你你想要的值(字符串),但是Premake不会处理这些路径(绝对是绝对的,等等)。 )

如果可行,您可能需要将其翻转为kind =“keyed:path”并设置如下值:

mypathmappings { ["stringvalue1"] = "path/to/file1" }

但这取决于你的字符串值在地图中是唯一的。

理论上,Premake的字段API可以扩展为支持各种键;随意open a ticket或提交拉取请求。