在premake5中覆盖archFromConfig alpha12
问题描述:
我正在试图为Ps4配置的visual studio生成一个项目。 在项目中,我添加了这个:在premake5中覆盖archFromConfig alpha12
require "orbis"
...
platforms { "x64", "ORBIS" }
filter "platforms:ORBIS"
toolset "Clang"
targetextension(".elf")
architecture "Orbis"
,然后我写了一个orbis.lua
local p = premake
local vs = p.modules.vstudio
p.api.addAllowed("architecture", { "Orbis" })
local function archFromConfig_cb(base, cfg, win32)
if cfg.system == "Orbis" or cfg.architecture == "Orbis" then
return "ORBIS"
end
return base(cfg, win32)
end
p.override(vs, "archFromConfig", archFromConfig_cb)
我的设置是在Premake5的α4工作正常,但是当我更新到Premake5 alpha12我有这样的错误。
orbis.lua:54: unable to override 'archFromConfig'; no such function
我加了一些打印明白发生了什么appening我有这个...
Overriding
Building configurations...
loading modules vsstudio
Running action 'vs2017'...
所以,我orbis.lua是vsstudio模块之前加载,所以没有函数没有定义。我做错了什么?我该如何解决?
在此先感谢。
答
这花了一点困惑。 Visual Studio代码已被移入内部模块,该模块仅在实际需要时才加载。在尝试覆盖之前,您只需要使用该模块。
local p = premake
local vs = require("vstudio")
p.api.addAllowed("architecture", { "Orbis" })
local function archFromConfig_cb(base, cfg, win32)
if cfg.system == "Orbis" or cfg.architecture == "Orbis" then
return "ORBIS"
end
return base(cfg, win32)
end
p.override(vs, "archFromConfig", archFromConfig_cb)
这样做很有意义。万分感谢。 – ilmale