123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102 |
- <?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>
|