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

时间:2015-09-11 20:39:12

标签: lua nasm premake

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

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

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

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

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

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

1 个答案:

答案 0 :(得分:1)

这样的事情怎么样?

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