3

如何在 premake5 中获取 system() 的当前值?(以及更普遍的功能,如架构()或平台())

我试图打印它,但它是一个函数,当我尝试打印 system() 的返回值时,我得到“'tostring' 的错误参数 #1(预期值)”。

4

1 回答 1

1

Premake 不能那样工作,没有“当前”版本的数据。您必须指定要应用当前过滤器集的上下文;查看 src/base/oven.lua 以了解最终数据集是如何构建的。

如果您只是想在流程后期将系统(或架构或平台)的值放入表达式中(并且您正在使用 Premake 5),请查看tokens

targetdir "bin/%{cfg.system}/%{cfg.architecture}"

令牌也可以评估任意 Lua 表达式。

my_system_map = {   -- must be global, so token evaluator can find it
   windows = "Win32",
   linux = "Posix",
   macosx = "Mac"
}

targetdir "bin/%{my_system_map[cfg.system]}"

有帮助吗?

于 2015-07-01T18:17:42.850 回答