-
Notifications
You must be signed in to change notification settings - Fork 20
Expand file tree
/
Copy pathDirectory.Build.props
More file actions
38 lines (34 loc) · 1.46 KB
/
Directory.Build.props
File metadata and controls
38 lines (34 loc) · 1.46 KB
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
<?xml version="1.0" encoding="utf-8"?>
<Project>
<PropertyGroup>
<!-- VS 2026 Toolset -->
<PlatformToolset>v145</PlatformToolset>
<!-- Windows 11 SDK (pinned for reproducible builds) -->
<WindowsTargetPlatformVersion>10.0.22621.0</WindowsTargetPlatformVersion>
<!-- Security Features (PropertyGroup level) -->
<!-- Note: Spectre mitigated libs may not be available for ARM64/ARM64EC -->
<SpectreMitigation Condition="'$(Platform)' != 'ARM64' AND '$(Platform)' != 'ARM64EC'">Spectre</SpectreMitigation>
<SpectreMitigation Condition="'$(Platform)' == 'ARM64' OR '$(Platform)' == 'ARM64EC'">false</SpectreMitigation>
<ControlFlowGuard>Guard</ControlFlowGuard>
<GuardEHContMetadata>true</GuardEHContMetadata>
</PropertyGroup>
<!-- Compiler Settings - Quality & Security Baseline -->
<!-- CET (Control-flow Enforcement Technology) enabled by default, disabled for ARM64/ARM64EC below -->
<ItemDefinitionGroup>
<ClCompile>
<WarningLevel>Level4</WarningLevel>
<TreatWarningAsError>true</TreatWarningAsError>
<SDLCheck>true</SDLCheck>
<LanguageStandard>stdcpplatest</LanguageStandard>
</ClCompile>
<Link>
<CETCompat>true</CETCompat>
</Link>
</ItemDefinitionGroup>
<!-- Disable CET for ARM64/ARM64EC (not supported) -->
<ItemDefinitionGroup Condition="'$(Platform)' == 'ARM64' OR '$(Platform)' == 'ARM64EC'">
<Link>
<CETCompat>false</CETCompat>
</Link>
</ItemDefinitionGroup>
</Project>