1

我想为平台+配置的每个组合设置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"})

我尝试使用此代码,而它获得了正确的配置(调试/发布/最终)。它将所有内容都放在 Win64 中,因此 32 位文件和 64 位文件最终都在同一个目录中。

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

谢谢

4

1 回答 1

3

无意间看到了答案:

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}")
于 2016-04-19T22:37:51.653 回答