premake5如何设置基于平台+配置的目录



我想为平台+配置的每个组合设置outdir/targetdir。

function SetLibTargetDir(platforms, configs)
for i2,c in ipairs(configs) do
        for i,p in ipairs(platforms) do
            filter ("configurations:" .. c, "platforms:" .. p)
                targetdir("bin/" .. p .. "/" .. c)
                libdirs ("bin/" .. p .. "/" .. c)
                libdirs ("bin_prebuilt/" .. p .. "/" .. c)--manually generated libs/dlls that premake5 can't handle
    end
end
end
SetLibTargetDir({"Win32", "Win64"}, {"Debug", "Release", "Final"})

我试着使用这段代码,但它得到了正确的配置(debug/release/final)。它将所有内容都放在Win64中,因此32位文件&64个文件最终都在同一个目录中。

我在这里做错了什么?我希望平台+配置的每个组合都有自己的输出目录和库路径。

感谢

偶然发现答案:

https://github.com/premake/premake-core/wiki/Tokens

"%{cfg.buildcfg}"获取配置"%{cfg.platform}"获取平台

所以这个代码有效:

targetdir("bin/" .. "%{cfg.platform}" .. "/" .. "%{cfg.buildcfg}")
libdirs("bin/" .. "%{cfg.platform}" .. "/" .. "%{cfg.buildcfg}")
libdirs("bin_prebuilt/" .. "%{cfg.platform}" .. "/" .. "%{cfg.buildcfg}")

最新更新