在 Premake 5 中获取 #defines 列表作为令牌或字符串
Get list of #defines as Token or string in Premake 5
我在我的 C++ 项目的 .asm
文件上使用自定义构建命令 运行 nasm 汇编程序。我在汇编代码中使用 %idef
s 来只编译我需要的代码。我正在检查与 C++ 代码中相同的 #define
s,并在 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", "", " ")} [...]')
我在我的 C++ 项目的 .asm
文件上使用自定义构建命令 运行 nasm 汇编程序。我在汇编代码中使用 %idef
s 来只编译我需要的代码。我正在检查与 C++ 代码中相同的 #define
s,并在 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", "", " ")} [...]')