我正在使用自定义构建命令在我的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)
你知道这样的事情是否可行?
答案 0 :(得分:1)
这样的事情怎么样?
buildcommands('nasm.exe [...] %{table.implode(cfg.defines, "-D", "", " ")} [...]')