如何获得system()的价值?

时间:2015-07-01 11:38:18

标签: premake

如何在premake5中获取system()的当前值? (更常见的功能如architecture()或platform())

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

1 个答案:

答案 0 :(得分: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]}"

有用吗?