在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) 
+0

这样做很有意义。万分感谢。 – ilmale