2016-04-19 19 views
1

我想爲每個平臺+配置組合設置outdir/targetdir。premake5如何設置基於平臺+配置的outdir?

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位文件都會在同一個目錄中結束。

我在這裏做錯了什麼?我希望平臺+配置的每個組合都有自己的輸出目錄和庫路徑。

感謝

回答

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}")