在 Premake 5 中获取 #defines 列表作为令牌或字符串

Get list of #defines as Token or string in Premake 5

我在我的 C++ 项目的 .asm 文件上使用自定义构建命令 运行 nasm 汇编程序。我在汇编代码中使用 %idefs 来只编译我需要的代码。我正在检查与 C++ 代码中相同的 #defines,并在 Premake 5 中使用 define() 来设置它们,但另外我需要在其命令行调用中将它们传递给 nasm在我的自定义生成命令中。我正在寻找的是一种将 #define 的 Premake 内部列表连接或字符串替换为 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 的构建命令中,所以我不能简单地插入一个简单的标记。我想我确实必须做这样的事情(lua 伪代码,因为我真的不知道语法):

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

你知道这样的事情是否可能吗?

这样的怎么样?

buildcommands('nasm.exe [...] %{table.implode(cfg.defines, "-D", "", " ")} [...]')