premake5如何根据平台+配置设置outdir?

时间:2016-04-19 22:26:10

标签: premake

我想为平台+配置的每个组合设置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个文件都在同一目录中。

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

由于

1 个答案:

答案 0 :(得分: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}")