Aetheria/Aetheria.Shared/Aetheria.Shared.csproj
Meta Vens 02058a3cdf Build ServerShared without Unity and add AetherDb scripts
Aetheria.Shared.csproj compiles ServerShared with MessagePack, UniRx
core, Ink and Unity.Mathematics from source against .NET Standard 2.1
(Unity's API level) with no Unity defines; a clean build checks that the
simulation stays engine-independent. tools/AetherDb opens AetherDB.msgpack
through the game's own CultCache for file-based C# scripts; station-fit
checks every station hull can take a docking bay.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-11 23:23:20 +02:00

35 lines
2.7 KiB
XML

<Project Sdk="Microsoft.NET.Sdk">
<!-- The game simulation built without Unity: the headless counterpart of the Aetheria.Shared.Unity assembly.
Compiles ServerShared and its dependencies from source with no Unity defines, so a successful build is the
check that the simulation stays independent of the engine. Tools and test harnesses reference this project. -->
<PropertyGroup>
<!-- Unity compiles ServerShared against .NET Standard 2.1; newer targets also impose C# 11 ref-safety rules the vendored MessagePack predates -->
<TargetFramework>netstandard2.1</TargetFramework>
<LangVersion>9.0</LangVersion>
<Nullable>disable</Nullable>
<ImplicitUsings>disable</ImplicitUsings>
<AllowUnsafeBlocks>true</AllowUnsafeBlocks>
<EnableDefaultCompileItems>false</EnableDefaultCompileItems>
<!-- UniRx's own switch for building outside Unity -->
<DefineConstants>$(DefineConstants);UniRxLibrary</DefineConstants>
<!-- Existing code warnings; the build is a Unity-independence check, not a lint pass -->
<NoWarn>$(NoWarn);CS0108;CS0114;CS0162;CS0168;CS0169;CS0219;CS0414;CS0618;CS0649;CS8321;CS8981;SYSLIB0021</NoWarn>
<Assets>$(MSBuildThisFileDirectory)..\Assets\</Assets>
<!-- Unity.Mathematics ships only as a Unity package; its sources come from the package cache Unity resolved -->
<MathematicsSource>$(MSBuildThisFileDirectory)..\Library\PackageCache\com.unity.mathematics@*\Unity.Mathematics\</MathematicsSource>
</PropertyGroup>
<ItemGroup>
<Compile Include="$(Assets)Scripts\ServerShared\**\*.cs" />
<Compile Include="$(Assets)Plugins\MessagePack\**\*.cs" Exclude="$(Assets)Plugins\MessagePack\Unity\**" />
<Compile Include="$(Assets)Plugins\UniRx\Scripts\**\*.cs" Exclude="$(Assets)Plugins\UniRx\Scripts\UnityEngineBridge\**;$(Assets)Plugins\UniRx\Scripts\UnityWinRTBridge\**;$(Assets)Plugins\UniRx\Scripts\InternalUtil\MicroCoroutine.cs" />
<!-- The reactive collections live in UniRx's Unity bridge but fence their Unity parts behind UniRxLibrary -->
<Compile Include="$(Assets)Plugins\UniRx\Scripts\UnityEngineBridge\ReactiveProperty.cs;$(Assets)Plugins\UniRx\Scripts\UnityEngineBridge\ReactiveCollection.cs;$(Assets)Plugins\UniRx\Scripts\UnityEngineBridge\ReactiveDictionary.cs" />
<Compile Include="$(Assets)Plugins\Ink\**\*.cs" />
<Compile Include="$(MathematicsSource)**\*.cs" Exclude="$(MathematicsSource)math_unity_conversion.cs;$(MathematicsSource)PropertyAttributes.cs" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Newtonsoft.Json" Version="13.0.3" />
<!-- Bundled by Unity; .NET Standard 2.1 lacks it -->
<PackageReference Include="System.Runtime.CompilerServices.Unsafe" Version="6.0.0" />
</ItemGroup>
</Project>