Repository navigation
Expand file tree
/
Copy pathDirectory.Build.props
More file actions
99 lines (85 loc) · 4.28 KB
/
Copy pathDirectory.Build.props
File metadata and controls
99 lines (85 loc) · 4.28 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
<Project>
<!--
Settings shared by every project in the repository.
Projects opt in to packaging by setting IsPackable; the test and sample
projects leave it off. Anything specific to a single project belongs in
that project's .csproj, not here.
-->
<PropertyGroup>
<TargetFramework>net8.0</TargetFramework>
<!--
The target framework the packable projects use for iOS, named in one place
because three files have to agree on it: the two projects that build it,
and Directory.Build.targets, which puts the iOS build files under a folder
named after it inside the package.
The platform version is spelled out rather than left to the SDK. NuGet
requires it in the folder name and rejects the package without one
(NU1012), and pinning it means a workload update cannot silently change
the framework the package advertises to consumers.
-->
<Box3DAppleTargetFramework>net10.0-ios26.0</Box3DAppleTargetFramework>
<!--
Whether the packable projects build that framework at all. Off unless
asked, and the packaging jobs ask.
Building it requires the .NET 10 SDK and the iOS workload, and the iOS
workload does not exist for Linux - there is no Linux host pack for
Apple's toolchain, so "dotnet workload install ios" fails outright rather
than installing something unusable. Left on by default, that made an iOS
framework nobody was testing into a hard requirement for building this
repository at all, on the platform most of its CI runs on.
So the default is the repository as it was: net8.0 everywhere, no extra
SDK, no workload. The jobs that produce the packages set this to true, on
a runner that can, and the iOS half is verified where it is actually
built - by installing the resulting package into a real iOS application
and checking Box3D is linked into it.
-->
<Box3DTargetApple Condition="'$(Box3DTargetApple)' == ''">false</Box3DTargetApple>
<LangVersion>latest</LangVersion>
<Nullable>enable</Nullable>
<ImplicitUsings>disable</ImplicitUsings>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<InvariantGlobalization>true</InvariantGlobalization>
</PropertyGroup>
<!--
Quality gates. Documentation warnings are errors on purpose: every public
type and member in this library is required to carry XML documentation.
-->
<PropertyGroup>
<EnableNETAnalyzers>true</EnableNETAnalyzers>
<AnalysisLevel>latest-recommended</AnalysisLevel>
<TreatWarningsAsErrors>true</TreatWarningsAsErrors>
<EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
</PropertyGroup>
<!--
Anything that has to react to IsPackable lives in Directory.Build.targets,
not here. This file is imported at the top of every project, before the
project body has had a chance to set IsPackable, so a condition on it here
always reads empty. That mistake silently disabled the XML documentation
and the AOT analyzers for the entire repository.
-->
<!-- Package metadata. -->
<PropertyGroup>
<VersionPrefix>0.5.1</VersionPrefix>
<Authors>Box3D.NET contributors</Authors>
<Company>Box3D.NET</Company>
<Product>Box3D.NET</Product>
<Copyright>Copyright (c) 2026 Box3D.NET contributors</Copyright>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageProjectUrl>https://github.com/Miguel249/Box3D.NET</PackageProjectUrl>
<RepositoryUrl>https://github.com/Miguel249/Box3D.NET</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<PackageTags>box3d;physics;3d;simulation;rigid-body;collision;gamedev;native;interop</PackageTags>
<PackageReadmeFile>README.md</PackageReadmeFile>
<PackageIcon>icon.png</PackageIcon>
<PackageRequireLicenseAcceptance>false</PackageRequireLicenseAcceptance>
</PropertyGroup>
<!-- Symbols and SourceLink, so stack traces from the package step into real source. -->
<PropertyGroup>
<IncludeSymbols>true</IncludeSymbols>
<SymbolPackageFormat>snupkg</SymbolPackageFormat>
<PublishRepositoryUrl>true</PublishRepositoryUrl>
<EmbedUntrackedSources>true</EmbedUntrackedSources>
<Deterministic>true</Deterministic>
<ContinuousIntegrationBuild Condition="'$(GITHUB_ACTIONS)' == 'true'">true</ContinuousIntegrationBuild>
</PropertyGroup>
</Project>