-- genie gets a tiny bit confused if the same project appears in multiple -- solutions in a single run. genie adds a bogus $projectname path to the -- intermediate objects directory in that case. work-around using multiple -- invocations of genie and a custom option to distinguish them. newoption { trigger = "group", value = "PROJECTS", description = "OpenMPT project group", allowed = { { "libopenmpt", "libopenmpt" }, } } newoption { trigger = "target", value = "PROJECTS", description = "windows target platform", allowed = { { "windesktop81", "windesktop81" }, { "winphone8" , "winphone8" }, { "winphone81" , "winphone81" }, { "winstore81" , "winstore81" }, { "winstore82" , "winstore82" }, { "winstore10" , "winstore10" }, } } if _ACTION == "vs2019" then if _OPTIONS["target"] == "windesktop81" then mpt_projectpathname = "vs2019win81" mpt_bindirsuffix = "win81" end if _OPTIONS["target"] == "winstore10" then mpt_projectpathname = "vs2019uwp" mpt_bindirsuffix = "uwp" end end if _ACTION == "vs2017" then if _OPTIONS["target"] == "windesktop81" then mpt_projectpathname = "vs2017win81" mpt_bindirsuffix = "win81" end if _OPTIONS["target"] == "winstore82" then mpt_projectpathname = "vs2017uwp" mpt_bindirsuffix = "uwp" end end --mpt_projectpathname = _OPTIONS["target"] --mpt_bindirsuffix = _OPTIONS["target"] solution "libopenmpt" location ( "../../build/" .. mpt_projectpathname ) configurations { "Debug", "Release", "DebugShared", "ReleaseShared" } if _OPTIONS["target"] == "winstore10" then platforms { "x32", "x64", "ARM", "ARM64" } else platforms { "x32", "x64", "ARM" } end dofile "../../build/genie/mpt-libopenmpt.lua" dofile "../../build/genie/ext-mpg123.lua" dofile "../../build/genie/ext-ogg.lua" dofile "../../build/genie/ext-vorbis.lua" dofile "../../build/genie/ext-zlib.lua"