348 lines
14 KiB
Lua
348 lines
14 KiB
Lua
|
|
||
|
filter {}
|
||
|
objdir ( "../../build/obj/" .. mpt_projectpathname .. "/" .. mpt_projectname )
|
||
|
filter {}
|
||
|
|
||
|
filter {}
|
||
|
if _OPTIONS["clang"] then
|
||
|
toolset "clang"
|
||
|
end
|
||
|
filter {}
|
||
|
|
||
|
filter {}
|
||
|
if _OPTIONS["winxp"] then
|
||
|
if _ACTION == "vs2017" then
|
||
|
toolset "v141_xp"
|
||
|
end
|
||
|
defines { "MPT_BUILD_RETRO" }
|
||
|
filter { "action:vs*" }
|
||
|
buildoptions { "/Zc:threadSafeInit-" }
|
||
|
filter {}
|
||
|
end
|
||
|
filter {}
|
||
|
|
||
|
filter {}
|
||
|
|
||
|
filter {}
|
||
|
filter { "action:vs*", "language:C++", "action:vs2017" }
|
||
|
cppdialect "C++17"
|
||
|
filter { "action:vs*", "language:C++", "action:vs2019" }
|
||
|
cppdialect "C++17"
|
||
|
filter { "action:vs*", "language:C++", "not action:vs2017", "not action:vs2019" }
|
||
|
if _OPTIONS["clang"] then
|
||
|
cppdialect "C++17"
|
||
|
else
|
||
|
cppdialect "C++20"
|
||
|
end
|
||
|
filter { "action:vs*", "action:vs2017" }
|
||
|
if _OPTIONS["win10"] then
|
||
|
conformancemode "On"
|
||
|
end
|
||
|
filter { "action:vs*", "not action:vs2017" }
|
||
|
conformancemode "On"
|
||
|
filter { "not action:vs*", "language:C++" }
|
||
|
buildoptions { "-std=c++17" }
|
||
|
filter { "not action:vs*", "language:C" }
|
||
|
buildoptions { "-std=c99" }
|
||
|
filter {}
|
||
|
|
||
|
filter {}
|
||
|
filter { "action:vs*" }
|
||
|
if not _OPTIONS["clang"] and not _OPTIONS["winxp"] and not _OPTIONS["uwp"] then
|
||
|
spectremitigations "On"
|
||
|
end
|
||
|
filter {}
|
||
|
filter { "action:vs*", "architecture:x86" }
|
||
|
resdefines { "VER_ARCHNAME=\"x86\"" }
|
||
|
filter { "action:vs*", "architecture:x86_64" }
|
||
|
resdefines { "VER_ARCHNAME=\"amd64\"" }
|
||
|
filter { "action:vs*", "architecture:ARM" }
|
||
|
resdefines { "VER_ARCHNAME=\"arm\"" }
|
||
|
filter { "action:vs*", "architecture:ARM64" }
|
||
|
resdefines { "VER_ARCHNAME=\"arm64\"" }
|
||
|
filter {}
|
||
|
|
||
|
filter { "kind:StaticLib", "configurations:Debug", "architecture:x86" }
|
||
|
targetdir ( "../../build/lib/" .. mpt_projectpathname .. "/x86/Debug" )
|
||
|
filter { "kind:StaticLib", "configurations:DebugShared", "architecture:x86" }
|
||
|
targetdir ( "../../build/lib/" .. mpt_projectpathname .. "/x86/DebugShared" )
|
||
|
filter { "kind:StaticLib", "configurations:Checked", "architecture:x86" }
|
||
|
targetdir ( "../../build/lib/" .. mpt_projectpathname .. "/x86/Checked" )
|
||
|
filter { "kind:StaticLib", "configurations:CheckedShared", "architecture:x86" }
|
||
|
targetdir ( "../../build/lib/" .. mpt_projectpathname .. "/x86/CheckedShared" )
|
||
|
filter { "kind:StaticLib", "configurations:Release", "architecture:x86" }
|
||
|
targetdir ( "../../build/lib/" .. mpt_projectpathname .. "/x86/Release" )
|
||
|
filter { "kind:StaticLib", "configurations:ReleaseShared", "architecture:x86" }
|
||
|
targetdir ( "../../build/lib/" .. mpt_projectpathname .. "/x86/ReleaseShared" )
|
||
|
filter { "kind:StaticLib", "configurations:Debug", "architecture:x86_64" }
|
||
|
targetdir ( "../../build/lib/" .. mpt_projectpathname .. "/x86_64/Debug" )
|
||
|
filter { "kind:StaticLib", "configurations:DebugShared", "architecture:x86_64" }
|
||
|
targetdir ( "../../build/lib/" .. mpt_projectpathname .. "/x86_64/DebugShared" )
|
||
|
filter { "kind:StaticLib", "configurations:Checked", "architecture:x86_64" }
|
||
|
targetdir ( "../../build/lib/" .. mpt_projectpathname .. "/x86_64/Checked" )
|
||
|
filter { "kind:StaticLib", "configurations:CheckedShared", "architecture:x86_64" }
|
||
|
targetdir ( "../../build/lib/" .. mpt_projectpathname .. "/x86_64/CheckedShared" )
|
||
|
filter { "kind:StaticLib", "configurations:Release", "architecture:x86_64" }
|
||
|
targetdir ( "../../build/lib/" .. mpt_projectpathname .. "/x86_64/Release" )
|
||
|
filter { "kind:StaticLib", "configurations:ReleaseShared", "architecture:x86_64" }
|
||
|
targetdir ( "../../build/lib/" .. mpt_projectpathname .. "/x86_64/ReleaseShared" )
|
||
|
|
||
|
filter { "kind:StaticLib", "configurations:Debug", "architecture:ARM" }
|
||
|
targetdir ( "../../build/lib/" .. mpt_projectpathname .. "/arm/Debug" )
|
||
|
filter { "kind:StaticLib", "configurations:DebugShared", "architecture:ARM" }
|
||
|
targetdir ( "../../build/lib/" .. mpt_projectpathname .. "/arm/DebugShared" )
|
||
|
filter { "kind:StaticLib", "configurations:Checked", "architecture:ARM" }
|
||
|
targetdir ( "../../build/lib/" .. mpt_projectpathname .. "/arm/Checked" )
|
||
|
filter { "kind:StaticLib", "configurations:CheckedShared", "architecture:ARM" }
|
||
|
targetdir ( "../../build/lib/" .. mpt_projectpathname .. "/arm/CheckedShared" )
|
||
|
filter { "kind:StaticLib", "configurations:Release", "architecture:ARM" }
|
||
|
targetdir ( "../../build/lib/" .. mpt_projectpathname .. "/arm/Release" )
|
||
|
filter { "kind:StaticLib", "configurations:ReleaseShared", "architecture:ARM" }
|
||
|
targetdir ( "../../build/lib/" .. mpt_projectpathname .. "/arm/ReleaseShared" )
|
||
|
filter { "kind:StaticLib", "configurations:Debug", "architecture:ARM64" }
|
||
|
targetdir ( "../../build/lib/" .. mpt_projectpathname .. "/arm64/Debug" )
|
||
|
filter { "kind:StaticLib", "configurations:DebugShared", "architecture:ARM64" }
|
||
|
targetdir ( "../../build/lib/" .. mpt_projectpathname .. "/arm64/DebugShared" )
|
||
|
filter { "kind:StaticLib", "configurations:Checked", "architecture:ARM64" }
|
||
|
targetdir ( "../../build/lib/" .. mpt_projectpathname .. "/arm64/Checked" )
|
||
|
filter { "kind:StaticLib", "configurations:CheckedShared", "architecture:ARM64" }
|
||
|
targetdir ( "../../build/lib/" .. mpt_projectpathname .. "/arm64/CheckedShared" )
|
||
|
filter { "kind:StaticLib", "configurations:Release", "architecture:ARM64" }
|
||
|
targetdir ( "../../build/lib/" .. mpt_projectpathname .. "/arm64/Release" )
|
||
|
filter { "kind:StaticLib", "configurations:ReleaseShared", "architecture:ARM64" }
|
||
|
targetdir ( "../../build/lib/" .. mpt_projectpathname .. "/arm64/ReleaseShared" )
|
||
|
|
||
|
filter { "kind:not StaticLib", "configurations:Debug", "architecture:x86" }
|
||
|
targetdir ( "../../bin/debug/" .. _ACTION .. "-" .. mpt_bindirsuffix32 .. "-static/x86" )
|
||
|
filter { "kind:not StaticLib", "configurations:DebugShared", "architecture:x86" }
|
||
|
targetdir ( "../../bin/debug/" .. _ACTION .. "-" .. mpt_bindirsuffix32 .. "-shared/x86" )
|
||
|
filter { "kind:not StaticLib", "configurations:Checked", "architecture:x86" }
|
||
|
targetdir ( "../../bin/checked/" .. _ACTION .. "-" .. mpt_bindirsuffix32 .. "-static/x86" )
|
||
|
filter { "kind:not StaticLib", "configurations:CheckedShared", "architecture:x86" }
|
||
|
targetdir ( "../../bin/checked/" .. _ACTION .. "-" .. mpt_bindirsuffix32 .. "-shared/x86" )
|
||
|
filter { "kind:not StaticLib", "configurations:Release", "architecture:x86" }
|
||
|
targetdir ( "../../bin/release/" .. _ACTION .. "-" .. mpt_bindirsuffix32 .. "-static/x86" )
|
||
|
filter { "kind:not StaticLib", "configurations:ReleaseShared", "architecture:x86" }
|
||
|
targetdir ( "../../bin/release/" .. _ACTION .. "-" .. mpt_bindirsuffix32 .. "-shared/x86" )
|
||
|
filter { "kind:not StaticLib", "configurations:Debug", "architecture:x86_64" }
|
||
|
targetdir ( "../../bin/debug/" .. _ACTION .. "-" .. mpt_bindirsuffix64 .. "-static/amd64" )
|
||
|
filter { "kind:not StaticLib", "configurations:DebugShared", "architecture:x86_64" }
|
||
|
targetdir ( "../../bin/debug/" .. _ACTION .. "-" .. mpt_bindirsuffix64 .. "-shared/amd64" )
|
||
|
filter { "kind:not StaticLib", "configurations:Checked", "architecture:x86_64" }
|
||
|
targetdir ( "../../bin/checked/" .. _ACTION .. "-" .. mpt_bindirsuffix64 .. "-static/amd64" )
|
||
|
filter { "kind:not StaticLib", "configurations:CheckedShared", "architecture:x86_64" }
|
||
|
targetdir ( "../../bin/checked/" .. _ACTION .. "-" .. mpt_bindirsuffix64 .. "-shared/amd64" )
|
||
|
filter { "kind:not StaticLib", "configurations:Release", "architecture:x86_64" }
|
||
|
targetdir ( "../../bin/release/" .. _ACTION .. "-" .. mpt_bindirsuffix64 .. "-static/amd64" )
|
||
|
filter { "kind:not StaticLib", "configurations:ReleaseShared", "architecture:x86_64" }
|
||
|
targetdir ( "../../bin/release/" .. _ACTION .. "-" .. mpt_bindirsuffix64 .. "-shared/amd64" )
|
||
|
|
||
|
filter { "kind:not StaticLib", "configurations:Debug", "architecture:ARM" }
|
||
|
targetdir ( "../../bin/debug/" .. _ACTION .. "-" .. mpt_bindirsuffix32 .. "-static/arm" )
|
||
|
filter { "kind:not StaticLib", "configurations:DebugShared", "architecture:ARM" }
|
||
|
targetdir ( "../../bin/debug/" .. _ACTION .. "-" .. mpt_bindirsuffix32 .. "-shared/arm" )
|
||
|
filter { "kind:not StaticLib", "configurations:Checked", "architecture:ARM" }
|
||
|
targetdir ( "../../bin/checked/" .. _ACTION .. "-" .. mpt_bindirsuffix32 .. "-static/arm" )
|
||
|
filter { "kind:not StaticLib", "configurations:CheckedShared", "architecture:ARM" }
|
||
|
targetdir ( "../../bin/checked/" .. _ACTION .. "-" .. mpt_bindirsuffix32 .. "-shared/arm" )
|
||
|
filter { "kind:not StaticLib", "configurations:Release", "architecture:ARM" }
|
||
|
targetdir ( "../../bin/release/" .. _ACTION .. "-" .. mpt_bindirsuffix32 .. "-static/arm" )
|
||
|
filter { "kind:not StaticLib", "configurations:ReleaseShared", "architecture:ARM" }
|
||
|
targetdir ( "../../bin/release/" .. _ACTION .. "-" .. mpt_bindirsuffix32 .. "-shared/arm" )
|
||
|
filter { "kind:not StaticLib", "configurations:Debug", "architecture:ARM64" }
|
||
|
targetdir ( "../../bin/debug/" .. _ACTION .. "-" .. mpt_bindirsuffix64 .. "-static/arm64" )
|
||
|
filter { "kind:not StaticLib", "configurations:DebugShared", "architecture:ARM64" }
|
||
|
targetdir ( "../../bin/debug/" .. _ACTION .. "-" .. mpt_bindirsuffix64 .. "-shared/arm64" )
|
||
|
filter { "kind:not StaticLib", "configurations:Checked", "architecture:ARM64" }
|
||
|
targetdir ( "../../bin/checked/" .. _ACTION .. "-" .. mpt_bindirsuffix64 .. "-static/arm64" )
|
||
|
filter { "kind:not StaticLib", "configurations:CheckedShared", "architecture:ARM64" }
|
||
|
targetdir ( "../../bin/checked/" .. _ACTION .. "-" .. mpt_bindirsuffix64 .. "-shared/arm64" )
|
||
|
filter { "kind:not StaticLib", "configurations:Release", "architecture:ARM64" }
|
||
|
targetdir ( "../../bin/release/" .. _ACTION .. "-" .. mpt_bindirsuffix64 .. "-static/arm64" )
|
||
|
filter { "kind:not StaticLib", "configurations:ReleaseShared", "architecture:ARM64" }
|
||
|
targetdir ( "../../bin/release/" .. _ACTION .. "-" .. mpt_bindirsuffix64 .. "-shared/arm64" )
|
||
|
|
||
|
filter { "configurations:Debug", "architecture:ARM" }
|
||
|
editandcontinue "Off"
|
||
|
filter { "configurations:Debug", "architecture:ARM64" }
|
||
|
editandcontinue "Off"
|
||
|
filter { "configurations:DebugShared", "architecture:ARM" }
|
||
|
editandcontinue "Off"
|
||
|
filter { "configurations:DebugShared", "architecture:ARM64" }
|
||
|
editandcontinue "Off"
|
||
|
|
||
|
filter { "configurations:Debug" }
|
||
|
defines { "DEBUG" }
|
||
|
defines { "MPT_BUILD_DEBUG" }
|
||
|
defines { "MPT_BUILD_MSVC_STATIC" }
|
||
|
filter { "configurations:Debug", "architecture:ARM" }
|
||
|
symbols "On"
|
||
|
filter { "configurations:Debug", "architecture:ARM64" }
|
||
|
symbols "On"
|
||
|
filter { "configurations:Debug", "architecture:not ARM", "architecture:not ARM64" }
|
||
|
symbols "FastLink"
|
||
|
filter { "configurations:Debug" }
|
||
|
if not _OPTIONS["uwp"] then
|
||
|
staticruntime "On"
|
||
|
end
|
||
|
runtime "Debug"
|
||
|
optimize "Debug"
|
||
|
|
||
|
filter { "configurations:DebugShared" }
|
||
|
defines { "DEBUG" }
|
||
|
defines { "MPT_BUILD_DEBUG" }
|
||
|
defines { "MPT_BUILD_MSVC_SHARED" }
|
||
|
symbols "On"
|
||
|
runtime "Debug"
|
||
|
optimize "Debug"
|
||
|
|
||
|
|
||
|
filter { "configurations:Checked" }
|
||
|
defines { "DEBUG" }
|
||
|
defines { "MPT_BUILD_MSVC_STATIC" }
|
||
|
defines { "MPT_BUILD_CHECKED" }
|
||
|
symbols "On"
|
||
|
if not _OPTIONS["uwp"] then
|
||
|
staticruntime "On"
|
||
|
end
|
||
|
runtime "Release"
|
||
|
optimize "On"
|
||
|
omitframepointer "Off"
|
||
|
|
||
|
filter { "configurations:CheckedShared" }
|
||
|
defines { "DEBUG" }
|
||
|
defines { "MPT_BUILD_MSVC_SHARED" }
|
||
|
defines { "MPT_BUILD_CHECKED" }
|
||
|
symbols "On"
|
||
|
runtime "Release"
|
||
|
optimize "On"
|
||
|
omitframepointer "Off"
|
||
|
|
||
|
|
||
|
filter { "configurations:Release" }
|
||
|
defines { "NDEBUG" }
|
||
|
defines { "MPT_BUILD_MSVC_STATIC" }
|
||
|
symbols "On"
|
||
|
if not _OPTIONS["clang"] then
|
||
|
flags { "LinkTimeOptimization" }
|
||
|
end
|
||
|
if not _OPTIONS["uwp"] then
|
||
|
staticruntime "On"
|
||
|
end
|
||
|
runtime "Release"
|
||
|
optimize "Speed"
|
||
|
|
||
|
filter { "configurations:ReleaseShared" }
|
||
|
defines { "NDEBUG" }
|
||
|
defines { "MPT_BUILD_MSVC_SHARED" }
|
||
|
symbols "On"
|
||
|
if not _OPTIONS["clang"] then
|
||
|
flags { "LinkTimeOptimization" }
|
||
|
end
|
||
|
runtime "Release"
|
||
|
optimize "Speed"
|
||
|
|
||
|
|
||
|
filter {}
|
||
|
if not _OPTIONS["clang"] then
|
||
|
flags { "MultiProcessorCompile" }
|
||
|
end
|
||
|
|
||
|
if _OPTIONS["winxp"] then
|
||
|
|
||
|
filter { "architecture:x86" }
|
||
|
vectorextensions "IA32"
|
||
|
filter {}
|
||
|
filter { "architecture:x86", "configurations:Release" }
|
||
|
floatingpoint "Fast"
|
||
|
filter {}
|
||
|
filter { "architecture:x86", "configurations:ReleaseShared" }
|
||
|
floatingpoint "Fast"
|
||
|
filter {}
|
||
|
|
||
|
else
|
||
|
|
||
|
filter {}
|
||
|
|
||
|
filter { "architecture:x86", "configurations:Checked" }
|
||
|
vectorextensions "SSE2"
|
||
|
|
||
|
filter { "architecture:x86", "configurations:CheckedShared" }
|
||
|
vectorextensions "SSE2"
|
||
|
|
||
|
filter { "architecture:x86", "configurations:Release" }
|
||
|
vectorextensions "SSE2"
|
||
|
|
||
|
filter { "architecture:x86", "configurations:ReleaseShared" }
|
||
|
vectorextensions "SSE2"
|
||
|
|
||
|
filter {}
|
||
|
|
||
|
end
|
||
|
|
||
|
filter {}
|
||
|
defines { "MPT_BUILD_MSVC" }
|
||
|
|
||
|
filter {}
|
||
|
defines {
|
||
|
"WIN32",
|
||
|
"_CRT_NONSTDC_NO_WARNINGS",
|
||
|
"_CRT_SECURE_NO_WARNINGS",
|
||
|
"_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES=1",
|
||
|
"_CRT_SECURE_CPP_OVERLOAD_STANDARD_NAMES_COUNT=1",
|
||
|
}
|
||
|
|
||
|
filter {}
|
||
|
|
||
|
if not _OPTIONS["winxp"] and not _OPTIONS["uwp"] then
|
||
|
filter {}
|
||
|
filter { "action:vs2017" }
|
||
|
systemversion "10.0.17763.0"
|
||
|
filter {}
|
||
|
filter { "action:vs2019" }
|
||
|
systemversion "10.0.20348.0"
|
||
|
filter {}
|
||
|
filter { "action:vs2022" }
|
||
|
systemversion "10.0.20348.0"
|
||
|
filter {}
|
||
|
end
|
||
|
|
||
|
if _OPTIONS["win10"] then
|
||
|
filter {}
|
||
|
defines { "_WIN32_WINNT=0x0A00" }
|
||
|
filter {}
|
||
|
filter { "architecture:x86" }
|
||
|
defines { "NTDDI_VERSION=0x0A000000" }
|
||
|
filter {}
|
||
|
filter { "architecture:x86_64" }
|
||
|
defines { "NTDDI_VERSION=0x0A000000" }
|
||
|
filter {}
|
||
|
filter { "architecture:ARM" }
|
||
|
defines { "NTDDI_VERSION=0x0A000004" } -- Windows 10 1709 Build 16299
|
||
|
filter {}
|
||
|
filter { "architecture:ARM64" }
|
||
|
defines { "NTDDI_VERSION=0x0A000004" } -- Windows 10 1709 Build 16299
|
||
|
filter {}
|
||
|
elseif _OPTIONS["win81"] then
|
||
|
filter {}
|
||
|
defines { "_WIN32_WINNT=0x0603" }
|
||
|
defines { "NTDDI_VERSION=0x06030000" }
|
||
|
elseif _OPTIONS["win7"] then
|
||
|
filter {}
|
||
|
defines { "_WIN32_WINNT=0x0601" }
|
||
|
defines { "NTDDI_VERSION=0x06010000" }
|
||
|
elseif _OPTIONS["winxp"] then
|
||
|
filter {}
|
||
|
systemversion "7.0"
|
||
|
filter {}
|
||
|
filter { "architecture:x86" }
|
||
|
defines { "_WIN32_WINNT=0x0501" }
|
||
|
defines { "NTDDI_VERSION=0x05010100" } -- Windows XP SP1
|
||
|
filter { "architecture:x86_64" }
|
||
|
defines { "_WIN32_WINNT=0x0502" }
|
||
|
defines { "NTDDI_VERSION=0x05020000" } -- Windows XP x64
|
||
|
filter {}
|
||
|
end
|
||
|
|
||
|
filter {}
|