-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDirectory.Build.props
More file actions
138 lines (123 loc) · 6.78 KB
/
Directory.Build.props
File metadata and controls
138 lines (123 loc) · 6.78 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
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
<?xml version="1.0" encoding="utf-8"?>
<Project>
<!--
Centralized TFM policy (single source of truth; bump $(LatestDotNet) on new LTS).
- $(LibraryTargetFrameworks): compile-only for libraries. UNCONDITIONAL across all OS —
net462 builds on Linux via Microsoft.NETFramework.ReferenceAssemblies (auto-pulled by
SDK 3.0+). Mono NOT required for compile.
- $(ExecutableTargetFrameworks): runtime-concrete TFMs. Used by smoke tests / sandbox /
samples. Runtime availability (Mono/Wine on Unix for net462) is a CI/Cake-level concern,
not a TFM-selection concern — the orchestrator probes and skips, not the csproj.
- Default $(TargetFrameworks) = $(LibraryTargetFrameworks). Projects override when they
want executable or single-TFM semantics.
-->
<PropertyGroup>
<LatestDotNet>net10.0</LatestDotNet>
<LibraryTargetFrameworks>$(LatestDotNet);net9.0;net8.0;netstandard2.0;net462</LibraryTargetFrameworks>
<ExecutableTargetFrameworks>$(LatestDotNet);net9.0;net8.0;net462</ExecutableTargetFrameworks>
<TargetFrameworks>$(LibraryTargetFrameworks)</TargetFrameworks>
</PropertyGroup>
<PropertyGroup>
<LangVersion>14.0</LangVersion>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<Authors>Janset2D, Deniz İrgin</Authors>
<Company>Janset2D</Company>
<Owners>Janset2D</Owners>
<Copyright>Copyright © Janset2D 2025</Copyright>
<RepositoryUrl>https://github.com/janset2d/sdl2-cs-bindings</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<PackageLicenseFile>LICENSE</PackageLicenseFile>
<PackageProjectUrl>https://github.com/janset2d/sdl2-cs-bindings</PackageProjectUrl>
<PackageIcon>janset2d-sdl-min.png</PackageIcon>
<PackageTags>sdl2;native;bindings;graphics;audio;input;cross-platform</PackageTags>
<PackageReadmeFile>README.md</PackageReadmeFile>
<CheckEolTargetFramework>true</CheckEolTargetFramework>
<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
<PublishRepositoryUrl>true</PublishRepositoryUrl>
<EmbedUntrackedSources>true</EmbedUntrackedSources>
<IncludeSymbols>true</IncludeSymbols>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
<Optimize Condition="'$(Configuration)' == 'Release'">true</Optimize>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<RunAnalyzersDuringBuild>true</RunAnalyzersDuringBuild>
<RunAnalyzersDuringLiveAnalysis>true</RunAnalyzersDuringLiveAnalysis>
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
<CodeAnalysisTreatWarningsAsErrors>true</CodeAnalysisTreatWarningsAsErrors>
<ReportAnalyzer>true</ReportAnalyzer>
<AnalysisLevel>latest</AnalysisLevel>
<AnalysisMode>All</AnalysisMode>
<Features>strict</Features>
<EnableNETAnalyzers>true</EnableNETAnalyzers>
<NoWarn>$(NoWarn);CS1591;CS1573;CS1572;CS1574</NoWarn>
<NoError>$(NoError);CS1591;CS1573;CS1572;CS1574</NoError>
<ManagePackageVersionsCentrally>true</ManagePackageVersionsCentrally>
</PropertyGroup>
<PropertyGroup Condition=" '$(TargetFramework)' != 'net462' And '$(TargetFramework)' != 'netstandard2.0' ">
<IsAotCompatible>true</IsAotCompatible>
<IsTrimmable>true</IsTrimmable>
<EnableAOTAnalyzer>true</EnableAOTAnalyzer>
</PropertyGroup>
<PropertyGroup Condition="'$(GITHUB_ACTIONS)' == 'true'">
<ContinuousIntegrationBuild>true</ContinuousIntegrationBuild>
</PropertyGroup>
<ItemGroup>
<None Include="$(MSBuildThisFileDirectory)LICENSE" Visible="False" Pack="true" PackagePath=""/>
<None Include="$(MSBuildThisFileDirectory)README.md" Visible="False" Pack="true" PackagePath=""/>
<None Include="$(MSBuildThisFileDirectory)assets/janset2d-sdl-min.png" Visible="False" Pack="true" PackagePath=""/>
</ItemGroup>
<PropertyGroup Condition="'$(TargetFramework)' == 'net462'">
<DefineConstants>$(DefineConstants);NETFRAMEWORK</DefineConstants>
</PropertyGroup>
<PropertyGroup Condition="'$(TargetFramework)' == 'netstandard2.0'">
<DefineConstants>$(DefineConstants);NETSTANDARD</DefineConstants>
</PropertyGroup>
<PropertyGroup>
<BuildOs Condition="$([MSBuild]::IsOsPlatform('Linux'))">linux</BuildOs>
<BuildOs Condition="$([MSBuild]::IsOsPlatform('OSX'))">darwin</BuildOs>
<BuildOs Condition=" '$(BuildOs)' == '' ">windows</BuildOs>
<BuildArch Condition=" '$([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture)' == 'X86' ">386</BuildArch>
<BuildArch Condition=" '$([System.Runtime.InteropServices.RuntimeInformation]::OSArchitecture)' == 'Arm64' ">arm64</BuildArch>
<BuildArch Condition=" '$(BuildArch)' == '' ">amd64</BuildArch>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.SourceLink.GitHub" PrivateAssets="All"/>
<PackageReference Include="Microsoft.CodeAnalysis.NetAnalyzers">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.VisualStudio.Threading.Analyzers">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.CodeAnalysis.BannedApiAnalyzers">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Roslynator.Analyzers">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Roslynator.CodeAnalysis.Analyzers">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Roslynator.Formatting.Analyzers">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="SonarAnalyzer.CSharp">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Meziantou.Analyzer">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="SecurityCodeScan.VS2019">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
</ItemGroup>
</Project>