在 premake5 alpha12 中覆盖 archFromConfig
Overriding archFromConfig in premake5 alpha12
我正在尝试为 visual studio 生成一个为 Ps4 配置的项目。
在我的项目中,我添加了这个:
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 alpha4 中运行正常,但当我更新到 Premake5 alpha12 时出现此错误。
orbis.lua:54: unable to override 'archFromConfig'; no such function
我添加了一些印刷品以了解发生了什么我有这个...
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 )
我正在尝试为 visual studio 生成一个为 Ps4 配置的项目。 在我的项目中,我添加了这个:
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 alpha4 中运行正常,但当我更新到 Premake5 alpha12 时出现此错误。
orbis.lua:54: unable to override 'archFromConfig'; no such function
我添加了一些印刷品以了解发生了什么我有这个...
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 )