-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDirectory.Build.props
More file actions
92 lines (85 loc) · 6.14 KB
/
Copy pathDirectory.Build.props
File metadata and controls
92 lines (85 loc) · 6.14 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
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
<Project>
<!-- Root defaults for every project. The only Directory.Build.props of the repository: nested ones would hide what a project inherits. -->
<PropertyGroup Label="Layout">
<RepoRoot>$(MSBuildThisFileDirectory)</RepoRoot>
<!-- bin/, obj/ and test output live under artifacts/, so project folders hold sources only. -->
<ArtifactsPath>$(RepoRoot)artifacts</ArtifactsPath>
</PropertyGroup>
<PropertyGroup Label="Language">
<!-- An explicit number, never latest or preview. -->
<LangVersion>14.0</LangVersion>
<Nullable>enable</Nullable>
<ImplicitUsings>enable</ImplicitUsings>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<!-- Pinned so a newer SDK band cannot add CA/IDE errors; raise it together with global.json (guard CHEATENGINECLIENT9030). -->
<_CheatEngineClientPinnedAnalysisLevel>10.0-recommended</_CheatEngineClientPinnedAnalysisLevel>
<AnalysisLevel>$(_CheatEngineClientPinnedAnalysisLevel)</AnalysisLevel>
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
<Deterministic>true</Deterministic>
<ContinuousIntegrationBuild Condition="'$(CI)' == 'true'">true</ContinuousIntegrationBuild>
<RestorePackagesWithLockFile>true</RestorePackagesWithLockFile>
</PropertyGroup>
<!-- NuGet audit policy (https://learn.microsoft.com/nuget/concepts/auditing-packages), guarded by CHEATENGINECLIENT9031.
High (NU1903) and critical (NU1904) advisories fail every restore and build through TreatWarningsAsErrors. Suppress an
advisory only with <NuGetAuditSuppress Include="<advisory URL>"/> plus a comment giving the justification and an expiry
date, never on the release path. -->
<PropertyGroup Label="Supply chain">
<NuGetAudit>true</NuGetAudit>
<NuGetAuditMode>all</NuGetAuditMode>
<NuGetAuditLevel>low</NuGetAuditLevel>
<_CheatEngineClientNuGetAuditCodes>NU1900;NU1901;NU1902;NU1903;NU1904;NU1905</_CheatEngineClientNuGetAuditCodes>
<!-- Ordinary builds: audit-source outages and low/moderate advisories are reported but do not block; high and critical advisories fail through TreatWarningsAsErrors. -->
<WarningsNotAsErrors Condition="'$(AuditPipeline)' != 'true'">$(WarningsNotAsErrors);NU1900;NU1901;NU1902;NU1905</WarningsNotAsErrors>
<!-- Dedicated audit run (restore -p:AuditPipeline=true): every audit code is an error. -->
<WarningsAsErrors Condition="'$(AuditPipeline)' == 'true'">$(WarningsAsErrors);$(_CheatEngineClientNuGetAuditCodes)</WarningsAsErrors>
</PropertyGroup>
<PropertyGroup Label="Package identity">
<Authors>CheatEngineNet</Authors>
<Company>CheatEngineNet</Company>
<!-- The holder line of LICENSE; RepositoryDocumentsTests keeps the two equal. -->
<Copyright>Copyright (c) 2026 AriusII, ShadowNineX and CheatEngine.Client contributors</Copyright>
<RepositoryType>git</RepositoryType>
<RepositoryUrl>https://github.com/CheatEngineNet/CheatEngine.Client</RepositoryUrl>
<PackageProjectUrl>https://github.com/CheatEngineNet/CheatEngine.Client</PackageProjectUrl>
<PackageReleaseNotes>$(PackageProjectUrl)/blob/main/CHANGELOG.md</PackageReleaseNotes>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
<PackageReadmeFile>README.md</PackageReadmeFile>
<PublishRepositoryUrl>true</PublishRepositoryUrl>
<EmbedUntrackedSources>true</EmbedUntrackedSources>
</PropertyGroup>
<PropertyGroup Label="Packaging and versioning">
<!-- MinVer derives one version for every package from the nearest v* tag, so CI must fetch full history and tags. -->
<MinVerTagPrefix>v</MinVerTagPrefix>
<!-- Floor for commits no v* tag covers yet, which build as 1.0.0-alpha.0.N. Raise it after each release to open the next line, and never above the line of the tag being released. -->
<MinVerMinimumMajorMinor>1.0</MinVerMinimumMajorMinor>
<!--
Evaluation-time placeholder equal to the MinVer floor: NuGet records it for project references in lock files
([1.0.0, )), including the Coexistence fixtures that are outside Central Package Management; MinVer computes the
real version at build and pack. CHEATENGINECLIENT9019 refuses any other version source.
-->
<VersionPrefix>$(MinVerMinimumMajorMinor).0</VersionPrefix>
<_CheatEngineClientRootVersionPrefix>$(VersionPrefix)</_CheatEngineClientRootVersionPrefix>
<!--
The Roslyn version the shipped Lua generator (packed inside CheatEngine.Client.Hosting) is compiled against. A
generator built against Roslyn N does not load in an older compiler (CS9057), so this floor, the
Microsoft.CodeAnalysis pins in Directory.Packages.props, the template sdk-version constraint and global.json move
together; CHEATENGINECLIENT9020 enforces the first two.
-->
<CheatEngineClientRoslynComponentFloor>5.9.0</CheatEngineClientRoslynComponentFloor>
</PropertyGroup>
<!-- Friend assemblies by convention: <Project> and tests/<Project>.Tests are twins. Keyed on the project name only, so the props phase is early enough. -->
<ItemGroup Label="Friend assemblies by convention" Condition="!$(MSBuildProjectName.EndsWith('.Tests'))">
<InternalsVisibleTo Include="$(MSBuildProjectName).Tests"/>
</ItemGroup>
<!-- The top-level folder of a project selects its profile. Ignoring case: the file system does, and a typed path keeps the case it was typed with. -->
<PropertyGroup Label="Folder profiles">
<_CheatEngineClientFolder>$([MSBuild]::MakeRelative('$(RepoRoot)', '$(MSBuildProjectDirectory)').Replace('\', '/'))/</_CheatEngineClientFolder>
</PropertyGroup>
<Import Project="$(RepoRoot)eng/Shipping.props"
Condition="$(_CheatEngineClientFolder.StartsWith('src/', System.StringComparison.OrdinalIgnoreCase)) or $(_CheatEngineClientFolder.StartsWith('libs/', System.StringComparison.OrdinalIgnoreCase))"/>
<Import Project="$(RepoRoot)eng/Tests.props"
Condition="$(_CheatEngineClientFolder.StartsWith('tests/', System.StringComparison.OrdinalIgnoreCase))"/>
<Import Project="$(RepoRoot)eng/Templates.props"
Condition="$(_CheatEngineClientFolder.StartsWith('templates/', System.StringComparison.OrdinalIgnoreCase))"/>
</Project>