193 lines
12 KiB
XML
193 lines
12 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
|
<ImportGroup Label="PropertySheets" />
|
|
<PropertyGroup Label="UserMacros">
|
|
<DolphinRelease Condition="'$(DolphinRelease)'!='true' or '$(Configuration)'!='Release'">false</DolphinRelease>
|
|
<TargetSuffix>
|
|
</TargetSuffix>
|
|
<TargetSuffix Condition="'$(Configuration)'=='Debug'">D</TargetSuffix>
|
|
<DolphinRootDir>$(SolutionDir)..\</DolphinRootDir>
|
|
<BuildRootDir>$(DolphinRootDir)Build\</BuildRootDir>
|
|
<BinaryRootDir>$(DolphinRootDir)Binary\</BinaryRootDir>
|
|
<BinaryOutputDir>$(BinaryRootDir)$(Platform)\</BinaryOutputDir>
|
|
<ExternalsDir>$(DolphinRootDir)Externals\</ExternalsDir>
|
|
<CoreDir>$(SolutionDir)Core\</CoreDir>
|
|
</PropertyGroup>
|
|
<PropertyGroup>
|
|
<!--
|
|
Opt-in to x64 compiler and tools.
|
|
Unfortunately we can't set this property here, as it'll be overridden later. Instead, set it
|
|
from commandline if you're interested in using x64 toolset
|
|
<PreferredToolArchitecture>x64</PreferredToolArchitecture>
|
|
-->
|
|
<IntDir>$(BuildRootDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
|
<OutDir>$(IntDir)bin\</OutDir>
|
|
<TargetName Condition="'$(ConfigurationType)'=='Application'">$(ProjectName)$(TargetSuffix)</TargetName>
|
|
</PropertyGroup>
|
|
<ItemDefinitionGroup>
|
|
<!--ClCompile Base-->
|
|
<ClCompile>
|
|
<!--
|
|
Coagulate all the needed include directories.
|
|
Order matters! (first hit, first use).
|
|
Note: Directory containing source file being compiled is always searched first.
|
|
-->
|
|
<AdditionalIncludeDirectories>$(CoreDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
<AdditionalIncludeDirectories>$(ExternalsDir);%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
<AdditionalIncludeDirectories>$(ExternalsDir)Bochs_disasm;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
<AdditionalIncludeDirectories>$(ExternalsDir)cpp-optparse;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
<AdditionalIncludeDirectories>$(ExternalsDir)FreeSurround\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
<AdditionalIncludeDirectories>$(ExternalsDir)cubeb\include;$(ExternalsDir)cubeb\msvc;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
<AdditionalIncludeDirectories>$(ExternalsDir)curl\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
<AdditionalIncludeDirectories>$(ExternalsDir)enet\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
<AdditionalIncludeDirectories>$(ExternalsDir)ffmpeg\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
<AdditionalIncludeDirectories>$(ExternalsDir)fmt\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
<AdditionalIncludeDirectories>$(ExternalsDir)GL;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
<AdditionalIncludeDirectories>$(ExternalsDir)glslang\glslang\Public;$(ExternalsDir)glslang\SPIRV;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
<AdditionalIncludeDirectories>$(ExternalsDir)imgui;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
<AdditionalIncludeDirectories>$(ExternalsDir)libpng;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
<AdditionalIncludeDirectories>$(ExternalsDir)libusb\libusb;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
<AdditionalIncludeDirectories>$(ExternalsDir)LZO;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
<AdditionalIncludeDirectories>$(ExternalsDir)miniupnpc\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
<AdditionalIncludeDirectories>$(ExternalsDir)mbedtls\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
<AdditionalIncludeDirectories>$(ExternalsDir)pugixml;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
<AdditionalIncludeDirectories>$(ExternalsDir)SFML\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
<AdditionalIncludeDirectories>$(ExternalsDir)Vulkan\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
<AdditionalIncludeDirectories>$(ExternalsDir)xxhash;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
<AdditionalIncludeDirectories>$(ExternalsDir)zlib;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
|
|
<PreprocessorDefinitions>HAVE_FFMPEG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
<PreprocessorDefinitions>FMT_HEADER_ONLY=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
<PreprocessorDefinitions>_CRT_SECURE_NO_WARNINGS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
<PreprocessorDefinitions>USE_UPNP;USE_USBDK;__LIBUSB__;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
<PreprocessorDefinitions>_M_X86=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
<PreprocessorDefinitions>SFML_STATIC;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
<PreprocessorDefinitions>USE_ANALYTICS=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
<PreprocessorDefinitions>USE_DISCORD_PRESENCE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
<PreprocessorDefinitions>CURL_STATICLIB;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
<PreprocessorDefinitions Condition="'$(Platform)'=='x64'">_ARCH_64=1;_M_X86_64=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
<!--
|
|
Make sure we include a clean version of windows.h.
|
|
-->
|
|
<PreprocessorDefinitions>WIN32_LEAN_AND_MEAN;NOMINMAX;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
<!--
|
|
This numeral indicates the "minimum system required" to run the resulting
|
|
program. Dolphin targets Vista+, so it should be 0x0600. However in practice,
|
|
_WIN32_WINNT just removes up-level API declarations from headers. This is a
|
|
problem for XAudio2 and XInput, where Dolphin expects to compile against the
|
|
Win8+ versions of their headers. So while we really need Vista+ level of
|
|
support, we declare Win8+ here globally. If this becomes a problem, the
|
|
higher declaration can be contained to just the XAudio2/XInput related code.
|
|
-->
|
|
<PreprocessorDefinitions>_WIN32_WINNT=0x0602;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
<WarningLevel>Level4</WarningLevel>
|
|
<TreatWarningAsError>true</TreatWarningAsError>
|
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
|
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
|
<MinimalRebuild>false</MinimalRebuild>
|
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
|
<!--Enable latest C++ standard-->
|
|
<LanguageStandard>stdcpplatest</LanguageStandard>
|
|
<!--Enable Standard Conformance-->
|
|
<ConformanceMode>true</ConformanceMode>
|
|
<!--Enforce some behaviors as standards-conformant when they don't default as such-->
|
|
<AdditionalOptions>/Zc:throwingNew /volatile:iso %(AdditionalOptions)</AdditionalOptions>
|
|
<!--Enable detailed debug info-->
|
|
<AdditionalOptions>/Zo %(AdditionalOptions)</AdditionalOptions>
|
|
<!--Treat sources as utf-8-->
|
|
<AdditionalOptions>/utf-8 %(AdditionalOptions)</AdditionalOptions>
|
|
<DebugInformationFormat>OldStyle</DebugInformationFormat>
|
|
<DiagnosticsFormat>Caret</DiagnosticsFormat>
|
|
<!--
|
|
4996 is for GetVersionEx being marked as deprecated - which is idiotic and there's not much
|
|
else we can do since many externals use it. The bad part is that there doesn't
|
|
seem to be a way to only ignore the specific instance we don't care about...
|
|
4351 new behavior: elements of array 'array' will be default initialized
|
|
-->
|
|
<DisableSpecificWarnings>4996;4351;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
|
<!-- Warnings one may want to ignore when using Level4.
|
|
4201 nonstandard extension used : nameless struct/union
|
|
4127 conditional expression is constant
|
|
4100 'identifier' : unreferenced formal parameter
|
|
4244 'conversion' conversion from 'type1' to 'type2', possible loss of data
|
|
Level4 warns if type1==int and there is narrowing
|
|
4121 'symbol' : alignment of a member was sensitive to packing
|
|
4324 Padding was added at the end of a structure because you specified a __declspec(align) value.
|
|
4714 function 'function' marked as __forceinline not inlined
|
|
-->
|
|
<DisableSpecificWarnings>4201;4127;4100;4244;4121;4324;4714;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
|
<!-- Level4 warnings which should eventually be enabled
|
|
4245 'conversion' : conversion from 'type1' to 'type2', signed/unsigned mismatch
|
|
Currently jits use some annoying code patterns which makes this common
|
|
-->
|
|
<DisableSpecificWarnings>4245;%(DisableSpecificWarnings)</DisableSpecificWarnings>
|
|
<!-- Enable some off-by-default warnings
|
|
4263 Non-virtual member function hides base class virtual function
|
|
4265 Class has virtual functions, but destructor is not virtual
|
|
4946 Reinterpret cast between related types
|
|
-->
|
|
<AdditionalOptions>/w44263 /w44265 /w44946 %(AdditionalOptions)</AdditionalOptions>
|
|
</ClCompile>
|
|
<!--ClCompile Debug-->
|
|
<ClCompile Condition="'$(Configuration)'=='Debug'">
|
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
|
<PreprocessorDefinitions>_DEBUG;_SECURE_SCL=1;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
|
<Optimization>Disabled</Optimization>
|
|
</ClCompile>
|
|
<!--ClCompile Release-->
|
|
<ClCompile Condition="'$(Configuration)'=='Release'">
|
|
<WholeProgramOptimization Condition="'$(DolphinRelease)'=='true'">true</WholeProgramOptimization>
|
|
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
|
|
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
|
<OmitFramePointers>true</OmitFramePointers>
|
|
<StringPooling>true</StringPooling>
|
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
|
<BufferSecurityCheck>false</BufferSecurityCheck>
|
|
<FunctionLevelLinking>false</FunctionLevelLinking>
|
|
<PreprocessorDefinitions>_SECURE_SCL=0;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
</ClCompile>
|
|
<!--Link Base-->
|
|
<Link>
|
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
<TreatLinkerWarningAsErrors>true</TreatLinkerWarningAsErrors>
|
|
</Link>
|
|
<!--Link Release-->
|
|
<Link Condition="'$(Configuration)'=='Release'">
|
|
<LinkTimeCodeGeneration Condition="'$(DolphinRelease)'=='true'">UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
|
<OptimizeReferences>true</OptimizeReferences>
|
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
|
</Link>
|
|
<!--Link Base:Application-->
|
|
<Link Condition="'$(ConfigurationType)'=='Application'">
|
|
<!--See Common/CompatPatches.cpp-->
|
|
<ForceSymbolReferences>enableCompatPatches</ForceSymbolReferences>
|
|
<!--TODO fix up ffmpeg garbage-->
|
|
<AdditionalOptions>/NODEFAULTLIB:libcmt %(AdditionalOptions)</AdditionalOptions>
|
|
</Link>
|
|
<Lib>
|
|
<TreatLibWarningAsErrors>true</TreatLibWarningAsErrors>
|
|
<LinkTimeCodeGeneration Condition="'$(DolphinRelease)'=='true'">true</LinkTimeCodeGeneration>
|
|
</Lib>
|
|
<!--
|
|
Prefer VTune 2015 over 2013 but support both since there is no non-commercial license for 2015 :(
|
|
-->
|
|
<ItemDefinitionGroup Condition="Exists('$(VTUNE_AMPLIFIER_XE_2015_DIR)')">
|
|
<ClCompile>
|
|
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);"$(VTUNE_AMPLIFIER_XE_2015_DIR)\include"</AdditionalIncludeDirectories>
|
|
</ClCompile>
|
|
<Link>
|
|
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories);"$(VTUNE_AMPLIFIER_XE_2015_DIR)\lib64"</AdditionalLibraryDirectories>
|
|
</Link>
|
|
</ItemDefinitionGroup>
|
|
<ItemDefinitionGroup Condition="Exists('$(VTUNE_AMPLIFIER_XE_2013_DIR)') And !Exists('$(VTUNE_AMPLIFIER_XE_2015_DIR)')">
|
|
<ClCompile>
|
|
<AdditionalIncludeDirectories>%(AdditionalIncludeDirectories);"$(VTUNE_AMPLIFIER_XE_2013_DIR)\include"</AdditionalIncludeDirectories>
|
|
</ClCompile>
|
|
<Link>
|
|
<AdditionalLibraryDirectories>%(AdditionalLibraryDirectories);"$(VTUNE_AMPLIFIER_XE_2013_DIR)\lib64"</AdditionalLibraryDirectories>
|
|
</Link>
|
|
</ItemDefinitionGroup>
|
|
</ItemDefinitionGroup>
|
|
<ItemGroup />
|
|
</Project>
|