我正在尝试在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"指定一个整数列表,但不知道"键入"元素就是例如。
答案 0 :(得分:1)
现在,无法控制键值中“键”的“种类”。你能用当前系统获得的最好的是kind =“keyed:string”,它应该给你你想要的值(字符串),但是Premake不会处理这些路径(绝对是绝对的,等等)。 )
如果可行,您可能需要将其翻转为kind =“keyed:path”并设置如下值:
mypathmappings { ["stringvalue1"] = "path/to/file1" }
但这取决于你的字符串值在地图中是唯一的。
理论上,Premake的字段API可以扩展为支持各种键;随意open a ticket或提交拉取请求。