102 lines
5.4 KiB
XML
102 lines
5.4 KiB
XML
<?xml version="1.0" encoding="utf-8"?>
|
|
<Project>
|
|
<!--
|
|
This file is included by *everything* (Externals and Dolphin code).
|
|
If you want to define something that only applies to Dolphin code, use Base.Dolphin.props
|
|
-->
|
|
<Import Project="Base.Macros.props" Condition="'$(BaseMacrosImported)'==''" />
|
|
<PropertyGroup>
|
|
<IntDir>$(BuildRootDir)$(Platform)\$(Configuration)\$(ProjectName)\</IntDir>
|
|
<OutDir>$(IntDir)bin\</OutDir>
|
|
<!--Set link /INCREMENTAL:NO to remove some entropy from builds (assists with deterministic build)-->
|
|
<LinkIncremental>false</LinkIncremental>
|
|
<!--Disable vcpkg to avoid accidentally linking to its packages-->
|
|
<VcpkgEnabled>false</VcpkgEnabled>
|
|
</PropertyGroup>
|
|
<ItemDefinitionGroup>
|
|
<!--ClCompile Base-->
|
|
<ClCompile>
|
|
<!--Base external header policy: ignore all warnings except template instantiations, and disable analyzer-->
|
|
<ExternalWarningLevel>TurnOffAllWarnings</ExternalWarningLevel>
|
|
<ExternalTemplatesDiagnostics>true</ExternalTemplatesDiagnostics>
|
|
<DisableAnalyzeExternal>true</DisableAnalyzeExternal>
|
|
<TreatAngleIncludeAsExternal>true</TreatAngleIncludeAsExternal>
|
|
|
|
<WarningLevel>Level4</WarningLevel>
|
|
<TreatWarningAsError>true</TreatWarningAsError>
|
|
<IntrinsicFunctions>true</IntrinsicFunctions>
|
|
<RuntimeTypeInfo>false</RuntimeTypeInfo>
|
|
<FunctionLevelLinking>true</FunctionLevelLinking>
|
|
<MultiProcessorCompilation>true</MultiProcessorCompilation>
|
|
<!--This doesn't seem required but nice to be future-proof-->
|
|
<LanguageStandard_C>stdc17</LanguageStandard_C>
|
|
<!--Enable latest C++ standard-->
|
|
<LanguageStandard>stdcpplatest</LanguageStandard>
|
|
<BuildStlModules>false</BuildStlModules>
|
|
<!--Enable Standard Conformance-->
|
|
<ConformanceMode>true</ConformanceMode>
|
|
<!--Enforce some behaviors as standards-conformant when they don't default as such.-->
|
|
<AdditionalOptions>/Zc:__cplusplus,enumTypes,externConstexpr,preprocessor,templateScope,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>
|
|
<!--
|
|
A (currently) hidden switch, like /Brepro, furthermore enabling warnings about non-deterministic code.
|
|
This may be advantageous over /Brepro, which inits __DATE__, __TIME__, etc. equal to 1 (and allows
|
|
them to be redefined), which could have unexpected results.
|
|
-->
|
|
<AdditionalOptions>/experimental:deterministic %(AdditionalOptions)</AdditionalOptions>
|
|
<!--
|
|
pathmap replaces path prefixes of source files with a hardcoded value, assisting with keeping output
|
|
files uniform even if actually built from different locations. The mapped path doesn't really need full
|
|
drive prefix, but it keeps things human readable. Note the trailing "\" is actually to be escaped by a
|
|
preceeding "\" in the expanded variable.
|
|
-->
|
|
<AdditionalOptions>/pathmap:"$(DolphinRootDir)\"=d:\ %(AdditionalOptions)</AdditionalOptions>
|
|
<AdditionalOptions>/pathmap:"$(WindowsSdkDir)\"=w:\ %(AdditionalOptions)</AdditionalOptions>
|
|
<AdditionalOptions>/pathmap:"$(VCToolsetsDir)\"=v:\ %(AdditionalOptions)</AdditionalOptions>
|
|
</ClCompile>
|
|
<!--ClCompile Debug-->
|
|
<ClCompile Condition="'$(Configuration)'=='Debug'">
|
|
<PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
|
|
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
|
|
<Optimization>Disabled</Optimization>
|
|
</ClCompile>
|
|
<ClCompile Condition="'$(Configuration)'=='Debug' And '$(EnableASAN)'=='true'">
|
|
<BasicRuntimeChecks>Default</BasicRuntimeChecks>
|
|
</ClCompile>
|
|
<!--ClCompile Release-->
|
|
<ClCompile Condition="'$(Configuration)'=='Release'">
|
|
<InlineFunctionExpansion>AnySuitable</InlineFunctionExpansion>
|
|
<FavorSizeOrSpeed>Speed</FavorSizeOrSpeed>
|
|
<OmitFramePointers>true</OmitFramePointers>
|
|
<StringPooling>true</StringPooling>
|
|
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
|
|
<BufferSecurityCheck>false</BufferSecurityCheck>
|
|
<AdditionalOptions>/Gw /Zc:checkGwOdr %(AdditionalOptions)</AdditionalOptions>
|
|
<WholeProgramOptimization Condition="'$(DolphinRelease)'=='true'">true</WholeProgramOptimization>
|
|
</ClCompile>
|
|
<!--Link Base-->
|
|
<Link>
|
|
<GenerateDebugInformation>true</GenerateDebugInformation>
|
|
<TreatLinkerWarningAsErrors>true</TreatLinkerWarningAsErrors>
|
|
<AdditionalOptions>/experimental:deterministic %(AdditionalOptions)</AdditionalOptions>
|
|
</Link>
|
|
<!--Link Release-->
|
|
<Link Condition="'$(Configuration)'=='Release'">
|
|
<LinkTimeCodeGeneration Condition="'$(DolphinRelease)'=='true'">UseLinkTimeCodeGeneration</LinkTimeCodeGeneration>
|
|
<OptimizeReferences>true</OptimizeReferences>
|
|
<EnableCOMDATFolding>true</EnableCOMDATFolding>
|
|
</Link>
|
|
<Lib>
|
|
<TreatLibWarningAsErrors>true</TreatLibWarningAsErrors>
|
|
<LinkTimeCodeGeneration Condition="'$(DolphinRelease)'=='true'">true</LinkTimeCodeGeneration>
|
|
<AdditionalOptions>/experimental:deterministic %(AdditionalOptions)</AdditionalOptions>
|
|
</Lib>
|
|
</ItemDefinitionGroup>
|
|
<ItemGroup />
|
|
</Project>
|