123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341 |
- if charset == "Unicode" then
- if stringmode == "WCHAR" then
- project "OpenMPT"
- mpt_projectname = "OpenMPT"
- uuid "37FC32A4-8DDC-4A9C-A30C-62989DD8ACE9"
- else
- project "OpenMPT-UTF8"
- mpt_projectname = "OpenMPT-UTF8"
- uuid "e89507fa-a251-457e-9957-f6b453c77daf"
- end
- else
- project "OpenMPT-ANSI"
- mpt_projectname = "OpenMPT-ANSI"
- uuid "ba66db50-e2f0-4c9e-b650-0cca6c66e1c1"
- end
- language "C++"
- location ( "../../build/" .. mpt_projectpathname )
- vpaths { ["*"] = "../../" }
- dofile "../../build/premake/premake-defaults-EXEGUI.lua"
- dofile "../../build/premake/premake-defaults.lua"
- if stringmode == "UTF8" then
- targetname "OpenMPT-UTF8"
- elseif charset == "MBCS" then
- targetname "OpenMPT-ANSI"
- else
- targetname "OpenMPT"
- end
- filter {}
- local extincludedirs = {
- "../../include",
- "../../include/ancient/api",
- "../../include/asiomodern/include",
- "../../include/ASIOSDK2/common",
- "../../include/flac/include",
- "../../include/lame/include",
- "../../include/lhasa/lib/public",
- "../../include/mpg123/ports/MSVC++",
- "../../include/mpg123/src/libmpg123",
- "../../include/nlohmann-json/include",
- "../../include/ogg/include",
- "../../include/opus/include",
- "../../include/opusenc/include",
- "../../include/opusfile/include",
- "../../include/portaudio/include",
- "../../include/rtaudio",
- "../../include/vorbis/include",
- "../../include/zlib",
- }
- filter { "action:vs*" }
- includedirs ( extincludedirs )
- filter { "not action:vs*" }
- sysincludedirs ( extincludedirs )
- filter {}
- includedirs {
- "../../src",
- "../../common",
- "../../soundlib",
- "$(IntDir)/svn_version",
- "../../build/svn_version",
- }
- if _OPTIONS["win10"] then
- files {
- "../../mptrack/res/OpenMPT-win10.manifest",
- }
- elseif _OPTIONS["win81"] then
- files {
- "../../mptrack/res/OpenMPT-win81.manifest",
- }
- elseif _OPTIONS["win7"] then
- files {
- "../../mptrack/res/OpenMPT-win7.manifest",
- }
- end
- if not _OPTIONS["winxp"] then
- files {
- "../../include/asiomodern/include/ASIOModern/*.hpp",
- }
- end
- files {
- "../../src/mpt/**.cpp",
- "../../src/mpt/**.hpp",
- "../../src/openmpt/**.cpp",
- "../../src/openmpt/**.hpp",
- "../../common/*.cpp",
- "../../common/*.h",
- "../../soundlib/*.cpp",
- "../../soundlib/*.h",
- "../../soundlib/plugins/*.cpp",
- "../../soundlib/plugins/*.h",
- "../../soundlib/plugins/dmo/*.cpp",
- "../../soundlib/plugins/dmo/*.h",
- "../../sounddsp/*.cpp",
- "../../sounddsp/*.h",
- "../../unarchiver/*.cpp",
- "../../unarchiver/*.h",
- "../../misc/*.cpp",
- "../../misc/*.h",
- "../../tracklib/*.cpp",
- "../../tracklib/*.h",
- "../../mptrack/*.cpp",
- "../../mptrack/*.h",
- "../../mptrack/plugins/*.cpp",
- "../../mptrack/plugins/*.h",
- "../../test/*.cpp",
- "../../test/*.h",
- "../../pluginBridge/BridgeCommon.h",
- "../../pluginBridge/BridgeWrapper.cpp",
- "../../pluginBridge/BridgeWrapper.h",
- }
- files {
- "../../mptrack/mptrack.rc",
- "../../mptrack/res/*.*", -- resource data files
- }
- if _OPTIONS["win10"] then
- excludes {
- "../../mptrack/res/OpenMPT-win7.manifest",
- "../../mptrack/res/OpenMPT-win81.manifest",
- }
- elseif _OPTIONS["win81"] then
- excludes {
- "../../mptrack/res/OpenMPT-win7.manifest",
- "../../mptrack/res/OpenMPT-win10.manifest",
- }
- elseif _OPTIONS["win7"] then
- excludes {
- "../../mptrack/res/OpenMPT-win81.manifest",
- "../../mptrack/res/OpenMPT-win10.manifest",
- }
- else
- excludes {
- "../../mptrack/res/OpenMPT-win7.manifest",
- "../../mptrack/res/OpenMPT-win81.manifest",
- "../../mptrack/res/OpenMPT-win10.manifest",
- }
- end
- defines { "MPT_BUILD_ENABLE_PCH" }
- pchsource "../../build/pch/PCH.cpp"
- pchheader "PCH.h"
- files {
- "../../build/pch/PCH.cpp",
- "../../build/pch/PCH.h"
- }
- includedirs {
- "../../build/pch"
- }
- forceincludes {
- "PCH.h"
- }
- defines { "MODPLUG_TRACKER" }
- dpiawareness "None"
- largeaddressaware ( true )
- characterset(charset)
- if charset == "Unicode" then
- else
- defines { "NO_WARN_MBCS_MFC_DEPRECATION" }
- end
- if stringmode == "UTF8" then
- defines { "MPT_USTRING_MODE_UTF8_FORCE" }
- end
- flags { "MFC" }
- -- work-around https://developercommunity.visualstudio.com/t/link-errors-when-building-mfc-application-with-cla/1617786
- if _OPTIONS["clang"] then
- filter {}
- filter { "configurations:Debug" }
- if true then -- _AFX_NO_MFC_CONTROLS_IN_DIALOGS
- ignoredefaultlibraries { "afxnmcdd.lib" }
- links { "afxnmcdd.lib" }
- end
- if charset == "Unicode" then
- ignoredefaultlibraries { "uafxcwd.lib", "libcmtd.lib" }
- links { "uafxcwd.lib", "libcmtd.lib" }
- else
- ignoredefaultlibraries { "nafxcwd.lib", "libcmtd.lib" }
- links { "nafxcwd.lib", "libcmtd.lib" }
- end
- filter { "configurations:DebugShared" }
- if charset == "Unicode" then
- ignoredefaultlibraries { "mfc140ud.lib", "msvcrtd.lib" }
- links { "mfc140ud.lib", "msvcrtd.lib" }
- else
- ignoredefaultlibraries { "mfc140d.lib", "msvcrtd.lib" }
- links { "mfc140d.lib", "msvcrtd.lib" }
- end
- filter { "configurations:Checked" }
- if true then -- _AFX_NO_MFC_CONTROLS_IN_DIALOGS
- ignoredefaultlibraries { "afxnmcd.lib" }
- links { "afxnmcd.lib" }
- end
- if charset == "Unicode" then
- ignoredefaultlibraries { "uafxcw.lib", "libcmt.lib" }
- links { "uafxcw.lib", "libcmt.lib" }
- else
- ignoredefaultlibraries { "nafxcw.lib", "libcmt.lib" }
- links { "nafxcw.lib", "libcmt.lib" }
- end
- filter { "configurations:CheckedShared" }
- if charset == "Unicode" then
- ignoredefaultlibraries { "mfc140u.lib", "msvcrt.lib" }
- links { "mfc140u.lib", "msvcrt.lib" }
- else
- ignoredefaultlibraries { "mfc140.lib", "msvcrt.lib" }
- links { "mfc140.lib", "msvcrt.lib" }
- end
- filter { "configurations:Release" }
- if true then -- _AFX_NO_MFC_CONTROLS_IN_DIALOGS
- ignoredefaultlibraries { "afxnmcd.lib" }
- links { "afxnmcd.lib" }
- end
- if charset == "Unicode" then
- ignoredefaultlibraries { "uafxcw.lib", "libcmt.lib" }
- links { "uafxcw.lib", "libcmt.lib" }
- else
- ignoredefaultlibraries { "nafxcw.lib", "libcmt.lib" }
- links { "nafxcw.lib", "libcmt.lib" }
- end
- filter { "configurations:ReleaseShared" }
- if charset == "Unicode" then
- ignoredefaultlibraries { "mfc140u.lib", "msvcrt.lib" }
- links { "mfc140u.lib", "msvcrt.lib" }
- else
- ignoredefaultlibraries { "mfc140.lib", "msvcrt.lib" }
- links { "mfc140.lib", "msvcrt.lib" }
- end
- filter {}
- end
- warnings "Extra"
- links {
- "ancient",
- "UnRAR",
- "zlib",
- "minizip",
- "smbPitchShift",
- "lame",
- "lhasa",
- "flac",
- "mpg123",
- "ogg",
- "opus",
- "opusenc",
- "opusfile",
- "portaudio",
- "r8brain",
- "rtaudio",
- "rtmidi",
- "soundtouch",
- "vorbis",
- }
- filter {}
- if not _OPTIONS["winxp"] then
- linkoptions {
- "/DELAYLOAD:mf.dll",
- "/DELAYLOAD:mfplat.dll",
- "/DELAYLOAD:mfreadwrite.dll",
- -- "/DELAYLOAD:mfuuid.dll", -- static library
- "/DELAYLOAD:propsys.dll",
- }
- end
- filter { "action:vs*" }
- files {
- "../../build/vs/debug/openmpt.natvis",
- }
- filter {}
- prebuildcommands { "..\\..\\build\\svn_version\\update_svn_version_vs_premake.cmd $(IntDir)" }
- project "OpenMPT-NativeSupport"
- uuid "563a631d-fe07-47bc-a98f-9fe5b3ebabfa"
- language "C++"
- location ( "../../build/" .. mpt_projectpathname )
- vpaths { ["*"] = "../../" }
- mpt_projectname = "OpenMPT-NativeSupport"
- dofile "../../build/premake/premake-defaults-DLL.lua"
- dofile "../../build/premake/premake-defaults.lua"
- includedirs {
- "../../src",
- "../../common",
- "../../include",
- "../../include/asiomodern/include",
- "../../include/ASIOSDK2/common",
- "../../include/nlohmann-json/include",
- "../../include/portaudio/include",
- "../../include/rtaudio",
- "$(IntDir)/svn_version",
- "../../build/svn_version",
- }
- files {
- "../../include/asiomodern/include/ASIOModern/*.hpp",
- "../../src/mpt/**.cpp",
- "../../src/mpt/**.hpp",
- "../../src/openmpt/**.cpp",
- "../../src/openmpt/**.hpp",
- "../../common/*.cpp",
- "../../common/*.h",
- "../../misc/*.cpp",
- "../../misc/*.h",
- "../../mptrack/wine/*.cpp",
- "../../mptrack/wine/*.h",
- }
- excludes {
- "../../mptrack/wine/WineWrapper.cpp",
- }
- defines { "MODPLUG_TRACKER", "MPT_BUILD_WINESUPPORT" }
- largeaddressaware ( true )
- characterset "Unicode"
- warnings "Extra"
- links {
- "portaudio",
- "rtaudio",
- }
- filter {}
- prebuildcommands { "..\\..\\build\\svn_version\\update_svn_version_vs_premake.cmd $(IntDir)" }
- project "OpenMPT-WineWrapper"
- uuid "f3da2bf5-e84a-4f71-80ab-884594863d3a"
- language "C"
- location ( "../../build/" .. mpt_projectpathname )
- vpaths { ["*"] = "../../" }
- mpt_projectname = "OpenMPT-WineWrapper"
- dofile "../../build/premake/premake-defaults-DLL.lua"
- dofile "../../build/premake/premake-defaults.lua"
- includedirs {
- "../../src",
- "../../common",
- "../../include",
- "$(IntDir)/svn_version",
- "../../build/svn_version",
- }
- files {
- "../../mptrack/wine/WineWrapper.c",
- }
- defines { "MODPLUG_TRACKER", "MPT_BUILD_WINESUPPORT_WRAPPER" }
- largeaddressaware ( true )
- characterset "Unicode"
- warnings "Extra"
- links {
- "OpenMPT-NativeSupport",
- }
- filter {}
- postbuildcommands { "..\\..\\build\\wine\\build_wine_support.cmd $(IntDir) $(OutDir)" }
|