File: Directory.Build.props

package info (click to toggle)
charls 2.2.0%2Bdfsg-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 6,740 kB
  • sloc: cpp: 10,109; ansic: 878; makefile: 23
file content (146 lines) | stat: -rw-r--r-- 7,853 bytes parent folder | download
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
<?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)bin\$(Platform)\$(Configuration)\</OutDir>
    <OutDir Condition="'$(Platform)'=='Win32'">$(MSBuildThisFileDirectory)bin\x86\$(Configuration)\</OutDir>

    <!-- C++ temp files can be redirected. -->
    <IntDir>$(MSBuildThisFileDirectory)intermediate\$(MSBuildProjectName)\$(Platform)\$(Configuration)\</IntDir>
    <IntDir Condition="'$(Platform)'=='Win32'">$(MSBuildThisFileDirectory)intermediate\$(MSBuildProjectName)\x86\$(Configuration)\</IntDir>

    <!-- The C runtime is provided by the OS on the Windows platform (Universal C Runtime (CRT)),
         it is necesarry to explicitly define which version to use.
         At the momement there is no way to specify to use just the latest version. -->
    <WindowsTargetPlatformVersion>10.0</WindowsTargetPlatformVersion>

    <!-- Use the latest released C# language version -->
    <LangVersion>latest</LangVersion>

    <!-- Default character set is Unicode (UTF16), defines _UNICODE and UNICODE. -->
    <CharacterSet>Unicode</CharacterSet>

    <!-- Define treat warnings as errors for C# projects -->
    <TreatWarningsAsErrors>true</TreatWarningsAsErrors>

    <CodeAnalysisRuleSet>$(MSBuildThisFileDirectory)default.ruleset</CodeAnalysisRuleSet>

    <VcpkgConfiguration Condition="'$(Configuration)' == 'Checked'">Debug</VcpkgConfiguration>
  </PropertyGroup>

  <ItemDefinitionGroup>
    <ClCompile>
      <!-- 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>

      <!--
        Disable level All warnings that are not useful:
        C4061 = enumerator 'identifier' in switch of enum 'enumeration' is not explicitly handled by a case label [Handled by default case]
        C4365 = action' : conversion from 'type_1' to 'type_2', signed/unsigned mismatch
        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]
        C4668 = symbol' is not defined as a preprocessor macro, replacing with '0' for 'directives' [problem in std C runtime headers when compiling as C]
        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]
        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]
        C5045 = Compiler will insert Spectre mitigation for memory load if /Qspectre switch specified [Just informational]
      -->
      <DisableSpecificWarnings>4061;4365;4464;4514;4571;4623;4625;4626;4668;4710;4711;4738;4820;5026;5027;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.
        utf-8 = interpret all source files as UTF-8 (Required as MSVC relies on UTF-8 signature, which is not used)
      -->
      <AdditionalOptions>/Zc:__cplusplus /Zc:throwingNew /utf-8 %(AdditionalOptions)</AdditionalOptions>

      <!-- Use all cores to speed up the compilation (MS recommended best practice). -->
      <MultiProcessorCompilation>true</MultiProcessorCompilation>

      <!-- Explicit define that all projects are compiled according the latest offical C++ standard -->
      <LanguageStandard>stdcpp14</LanguageStandard>

      <!-- Explicit disable non conforming MSVC compiler options that are not compatible with the C++ standard -->
      <ConformanceMode>true</ConformanceMode>

      <AdditionalIncludeDirectories>$(MSBuildThisFileDirectory)include</AdditionalIncludeDirectories>

      <!-- Use by default precompiled headers with the modern name pch.h -->
      <PrecompiledHeaderFile>pch.h</PrecompiledHeaderFile>

      <!-- For checked builds, enable the MS static analyzer build into the compiler. -->
      <EnablePREfast Condition="'$(Configuration)'=='Checked'">true</EnablePREfast>

      <DiagnosticsFormat>Caret</DiagnosticsFormat>

      <!-- Enables recommended Security Development Lifecycle (SDL) checks.
           This checks consist of compile-time checks and runtime checks. -->
      <SDLCheck>true</SDLCheck>

      <DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
    </ClCompile>

    <Link>
      <TreatLinkerWarningAsErrors>true</TreatLinkerWarningAsErrors>

      <!-- use FULL debug info to ensure code coverage works out of the box. -->
      <GenerateDebugInformation>DebugFull</GenerateDebugInformation>
    </Link>

    <ResourceCompile>
      <AdditionalIncludeDirectories>$(MSBuildThisFileDirectory)include</AdditionalIncludeDirectories>
    </ResourceCompile>
  </ItemDefinitionGroup>

  <PropertyGroup Condition="'$(Configuration)'=='Debug' OR '$(Configuration)'=='Checked'">
    <UseDebugLibraries>true</UseDebugLibraries>
  </PropertyGroup>

  <ItemDefinitionGroup Condition="'$(Configuration)'=='Debug' OR '$(Configuration)'=='Checked'">
    <ClCompile>
      <Optimization>Disabled</Optimization>
      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    </ClCompile>
    <Link>
      <RandomizedBaseAddress>false</RandomizedBaseAddress>
    </Link>
    <ResourceCompile>
      <PreprocessorDefinitions>_DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
    </ResourceCompile>
  </ItemDefinitionGroup>

  <PropertyGroup Condition="'$(Configuration)'=='Checked'">
    <RunCodeAnalysis Condition="'$(MSBuildProjectExtension)'=='.vcxproj'" >true</RunCodeAnalysis>
    <EnableCppCoreCheck>true</EnableCppCoreCheck>
    <EnableClangTidyCodeAnalysis>true</EnableClangTidyCodeAnalysis>
    <EnableMicrosoftCodeAnalysis>true</EnableMicrosoftCodeAnalysis>
  </PropertyGroup>

  <PropertyGroup Condition="'$(Configuration)'=='Release'">
    <UseDebugLibraries>false</UseDebugLibraries>
  </PropertyGroup>

  <ItemDefinitionGroup Condition="'$(Configuration)'=='Release'">
    <ClCompile>
      <Optimization>MaxSpeed</Optimization>
      <FunctionLevelLinking>true</FunctionLevelLinking>
      <IntrinsicFunctions>true</IntrinsicFunctions>
      <PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
      <ControlFlowGuard>Guard</ControlFlowGuard>
    </ClCompile>
    <Link>
      <EnableCOMDATFolding>true</EnableCOMDATFolding>
      <OptimizeReferences>true</OptimizeReferences>
      <LinkIncremental>false</LinkIncremental>
    </Link>
  </ItemDefinitionGroup>

</Project>