Iceshrimp.NET/Iceshrimp.Backend/Iceshrimp.Backend.csproj
2024-10-18 19:50:02 +02:00

95 lines
5.6 KiB
XML

<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<!-- ASP.NET MVC & Razor Pages don't support trimming yet (and everything else might also break) -->
<PublishTrimmed>false</PublishTrimmed>
<!-- Makes sure that we compile against the correct native dependency -->
<UseCurrentRuntimeIdentifier>true</UseCurrentRuntimeIdentifier>
<!-- Enables DATAS - https://www.thinktecture.com/en/net/optimize-asp-net-core-memory-with-datas -->
<GarbageCollectionAdaptationMode>1</GarbageCollectionAdaptationMode>
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\Iceshrimp.Frontend\Iceshrimp.Frontend.csproj" />
<ProjectReference Include="..\Iceshrimp.Parsing\Iceshrimp.Parsing.fsproj" />
<ProjectReference Include="..\Iceshrimp.Shared\Iceshrimp.Shared.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="AngleSharp" Version="1.1.2" />
<PackageReference Include="AsyncKeyedLock" Version="7.0.2" />
<PackageReference Include="CommunityToolkit.HighPerformance" Version="8.3.2" />
<PackageReference Include="dotNetRdf.Core" Version="3.3.1-iceshrimp" />
<PackageReference Include="EntityFrameworkCore.Exceptions.PostgreSQL" Version="8.1.3" />
<PackageReference Include="EntityFrameworkCore.Projectables" Version="3.0.4" />
<PackageReference Include="FlexLabs.EntityFrameworkCore.Upsert" Version="8.0.0" />
<PackageReference Include="Iceshrimp.ObjectStorage.S3" Version="0.34.2" />
<PackageReference Include="Isopoh.Cryptography.Argon2" Version="2.0.0" />
<PackageReference Include="JetBrains.Annotations" Version="2024.2.0" />
<PackageReference Include="Microsoft.AspNetCore.Components.WebAssembly.Server" Version="8.0.10" />
<PackageReference Include="Microsoft.AspNetCore.DataProtection.EntityFrameworkCore" Version="8.0.10" />
<PackageReference Include="Microsoft.AspNetCore.Mvc.NewtonsoftJson" Version="8.0.10" />
<PackageReference Include="Microsoft.AspNetCore.OpenApi" Version="8.0.10" />
<PackageReference Include="Microsoft.AspNetCore.SignalR.Protocols.MessagePack" Version="8.0.10" />
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.10">
<PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference>
<PackageReference Include="Microsoft.EntityFrameworkCore.Relational" Version="8.0.10" />
<PackageReference Include="Microsoft.Extensions.Configuration.Ini" Version="8.0.0" />
<PackageReference Include="Npgsql.EntityFrameworkCore.PostgreSQL" Version="8.0.10" />
<PackageReference Include="SixLabors.ImageSharp.Drawing" Version="2.1.4" />
<PackageReference Include="SixLabors.ImageSharp" Version="3.1.6-iceshrimp" />
<PackageReference Include="Swashbuckle.AspNetCore" Version="6.9.0" />
<PackageReference Include="System.IO.Hashing" Version="8.0.0" />
<PackageReference Include="System.Linq.Async" Version="6.0.1" />
<PackageReference Include="System.Text.RegularExpressions" Version="4.3.1" />
<PackageReference Include="System.Text.Json" Version="8.0.5" />
<PackageReference Include="Ulid" Version="1.3.4" />
<PackageReference Include="Iceshrimp.AssemblyUtils" Version="1.0.0" />
<PackageReference Include="Iceshrimp.MimeTypes" Version="1.0.0" />
<PackageReference Include="Iceshrimp.WebPush" Version="2.0.0" />
<PackageReference Include="NetVips" Version="2.4.2" />
</ItemGroup>
<!-- Transitive dependency version overrides to patch security vulnerabilities -->
<ItemGroup>
<PackageReference Include="System.Private.Uri" Version="4.3.2" />
<PackageReference Include="System.Formats.Asn1" Version="8.0.1" />
</ItemGroup>
<!-- If the build flag BundleNativeDeps is set, reference the LibVips native dependecy -->
<ItemGroup Condition=" '$(BundleNativeDeps)' == 'true' ">
<PackageReference Include="NetVips.Native" Version="8.15.2-iceshrimp" />
</ItemGroup>
<!-- This makes sure configuration.ini & the preloaded AS contexts are added to the assembly as embedded resources -->
<ItemGroup>
<EmbeddedResource Include="configuration.ini" CopyToOutputDirectory="Always" />
<EmbeddedResource Include="Core\Federation\ActivityStreams\Contexts\*.json">
<TargetPath>contexts\%(Filename)%(Extension)</TargetPath>
</EmbeddedResource>
<Content Update="Core\Federation\ActivityStreams\Contexts\*.json">
<CopyToOutputDirectory>Never</CopyToOutputDirectory>
<CopyToPublishDirectory>Never</CopyToPublishDirectory>
</Content>
</ItemGroup>
<!-- This is a script used during development, and not needed in the final output -->
<ItemGroup>
<None Remove="Core\Database\prune-designer-cs-files.sh" />
</ItemGroup>
<!-- This saves a bunch of disk space by discarding the original and gzip-compressed static assets. -->
<!-- For clients that don't support brotli, they will be transparently decompressed by the server. -->
<Target Name="KeepOnlyBrotliCompressedStaticAssets" AfterTargets="Publish">
<ItemGroup>
<CompressedFiles Include="$(PublishDir)\wwwroot\_framework\*.br" />
<FilesToClean Include="@(CompressedFiles->'%(RootDir)%(Directory)%(Filename)')" />
<FilesToClean Include="@(CompressedFiles->'%(RootDir)%(Directory)%(Filename).gz')" />
</ItemGroup>
<Delete Files="@(FilesToClean->Exists())" />
</Target>
</Project>