获取Premake 5中的宏定义列表作为标记或字符串

我正在使用自定义构建命令在我的 C++ 项目中运行 nasm 汇编器来编译一个 .asm 文件。我在汇编器代码中使用 %idef 仅编译我需要的代码。我检查了与 C++ 代码相同的 #define,并在 Premake 5 中使用 define() 设置它们,但我还需要将它们传递给 nasm 在其命令行引用中调用我的自定义构建命令。我正在寻找的是一种方法,将 Premake 内部 #define 的列表连接或字符串替换成 buildcommands() 调用的命令行引用字符串。是否存在 Premake Token 或一种从中检索 lua 变量并生成列表的方法?

请注意,我的命令行引用具体是

buildcommands "nasm.exe -f win32 -o %{cfg.objdir}%{file.basename}.lib %{file.abspath} -DNDEBUG"

假设我在我的 premake5.lua 中设置 defines { "FEAT_A", "FEAT_B" }。然后我想自动将 -DFEAT_A -DFEAT_B 添加到构建命令中类似于 -DNDEBUG,所以我不能简单地插入一个简单的 token。我想我必须做类似这样的事情(lua 伪代码,因为我不真正了解语法):

define_flags = wks.defines.join(" -D")
buildcoommands("nasm.exe [...]"..define_flags)

你知道这是否可能?

点赞
用户93921
用户93921

如何像下面这样做?

buildcommands('nasm.exe [...] %{table.implode(cfg.defines, "-D", "", " ")} [...]')
2015-09-14 19:39:08