-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathDirectory.Build.props
88 lines (72 loc) · 4.86 KB
/
Directory.Build.props
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<!-- Build to a folder outside the source folders, making it easier to clean. -->
<OutDir>$(MSBuildThisFileDirectory)build\bin\$(Configuration)\</OutDir>
<!-- C++ temp files can be redirected. -->
<IntDir>$(MSBuildThisFileDirectory)build\intermediate\$(MSBuildProjectName)\$(Configuration)\</IntDir>
<WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>
<!-- Default character set is Unicode (UTF16), defines _UNICODE and UNICODE. -->
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>v143</PlatformToolset>
<CodeAnalysisRuleSet>$(MSBuildThisFileDirectory)default.ruleset</CodeAnalysisRuleSet>
</PropertyGroup>
<ItemDefinitionGroup>
<ClCompile>
<!-- Use all cores to speed up the compilation (MS recommended best practice). -->
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<!-- Explicit define that all projects are compiled according the C++23(latest) standard -->
<LanguageStandard>stdcpplatest</LanguageStandard>
<!-- To ensure high quality C++ code use Warning level All and treat warnings as errors to ensure warnings are fixed promptly. -->
<WarningLevel>EnableAllWarnings</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<UseFullPaths>true</UseFullPaths>
<!--
Disable level All warnings that are not useful:
C4464 = A #include directive has a path that includes a '..' parent directory specifier. [Just informational]
C4514 = function' : unreferenced inline function has been removed [Just informational]
C4571 = Informational: catch(...) semantics changed since Visual C++ 7.1; structured exceptions (SEH) are no longer caught [Just informational]
C4623 = derived class' : default constructor was implicitly defined as deleted because a base class default constructor is inaccessible or deleted [Just informational]
C4625 = derived class' : copy constructor was implicitly defined as deleted because a base class copy constructor is inaccessible or deleted [Just informational]
C4626 = derived class' : assignment operator was implicitly defined as deleted because a base class assignment operator is inaccessible or deleted [Just informational]
C4710 = function '' function not inlined [Just informational]
C4711 = function '' selected for automatic inline expansion [Just informational]
C4738 = storing 32-bit float result in memory, possible loss of performance [Just informational]
C4774 = ‘<function>’ : format string expected in argument <position> is not a string literal [Just informational]
C4820 = bytes' bytes padding added after construct 'member_name' [Just informational]
C5026 = 'type': move constructor was implicitly defined as deleted [Just informational]
C5027 = 'type': move assignment operator was implicitly defined as deleted [Just informational]
C5039 = 'function': pointer or reference to potentially throwing function passed to extern C function under -EHc. [Just informational]
C5045 = Compiler will insert Spectre mitigation for memory load if /Qspectre switch specified [Just informational]
-->
<DisableSpecificWarnings>4464;4514;4571;4623;4625;4626;4710;4711;4738;4774;4820;5026;5027;5039;5045</DisableSpecificWarnings>
<!--
__cplusplus = Use the correct value for the __cplusplus macro
throwingNew = Communicate with the compiler that only the throwing variant of operator new is used.
preprocessor = Use the conformant preprocessor. (will become default in the future)
utf-8 = interpret all source files as UTF-8
-->
<AdditionalOptions>/Zc:__cplusplus /Zc:throwingNew /Zc:preprocessor /utf-8</AdditionalOptions>
<AdditionalIncludeDirectories>$(MSBuildThisFileDirectory)include</AdditionalIncludeDirectories>
<!-- Use by default precompiled headers with the modern name pch.h -->
<PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>
<PrecompiledHeader>Use</PrecompiledHeader>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<GenerateDebugInformation>true</GenerateDebugInformation>
<TreatLinkerWarningAsErrors>true</TreatLinkerWarningAsErrors>
<MinimumRequiredVersion>10</MinimumRequiredVersion>
</Link>
</ItemDefinitionGroup>
<PropertyGroup Condition="'$(Configuration)'=='Release'">
<RunCodeAnalysis>true</RunCodeAnalysis>
<EnableClangTidyCodeAnalysis>false</EnableClangTidyCodeAnalysis>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
<ClCompile>
<!-- For release builds, enable the MS static analyzer build into the C++ compiler. -->
<EnablePREfast>true</EnablePREfast>
</ClCompile>
</ItemDefinitionGroup>
</Project>