2016-04-19 6 views
1

Ich möchte das outdir/targetdir für jede Kombination von Plattform + Konfiguration festlegen.premake5 Wie setze ich outdir basierend auf Plattform + Konfiguration?

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

Ich habe versucht, mit diesem Code, während es die Konfiguration richtig (debug/release/final) bekommt. Es legt alles in Win64, also die 32-Bit-Dateien & 64 Dateien landen alle im selben Verzeichnis.

Was mache ich hier falsch? Ich möchte, dass jede Kombination aus Plattform + Konfiguration über eigene Ausgabeverzeichnis- und Bibliothekspfade verfügt.

Dank

Antwort

3

über die Antwort gestolpert:

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

"% {cfg.buildcfg}" die Config erhalten "% {cfg.platform}" erhält die Plattform

So funktioniert dieser Code:

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