<Project Sdk="Microsoft.NET.Sdk">
  <Import Project="..\MSBuild\Robust.Engine.props" />
  <PropertyGroup>
    <IsPackable>false</IsPackable>
    <OutputType>Exe</OutputType>
    <AppendTargetFrameworkToOutputPath>false</AppendTargetFrameworkToOutputPath>
    <OutputPath>../bin/Server</OutputPath>
    <AllowUnsafeBlocks>true</AllowUnsafeBlocks>
    <ServerGarbageCollection>true</ServerGarbageCollection>
    <!-- Try to fix sporadic errors against Robust.Packaging, apparently?? -->
    <ValidateExecutableReferencesMatchSelfContained>false</ValidateExecutableReferencesMatchSelfContained>
    <RobustILLink>true</RobustILLink>
    <NoWarn>CA1416</NoWarn>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="JetBrains.Annotations" PrivateAssets="All" />
    <PackageReference Include="SpaceWizards.HttpListener" PrivateAssets="compile" />
    <PackageReference Include="Microsoft.Data.Sqlite.Core" />
    <PackageReference Include="SQLitePCLRaw.provider.sqlite3" Condition="'$(UseSystemSqlite)' == 'True'" /> <!-- Cannot be private since Content.Server/Database/ServerDbManager.cs depends on SQLitePCL.raw -->
    <PackageReference Include="SQLitePCLRaw.bundle_e_sqlite3" Condition="'$(UseSystemSqlite)' != 'True'" PrivateAssets="compile" />
    <PackageReference Include="prometheus-net" />
    <PackageReference Include="Serilog.Sinks.Loki" PrivateAssets="compile" />
    <PackageReference Include="Microsoft.Extensions.Primitives" />
    <!-- Needed to pull-up the dependency from prometheus-net -->
    <PackageReference Include="Microsoft.Extensions.Logging" />
    <PackageReference Include="Microsoft.Extensions.DependencyInjection" />
    <PackageReference Include="prometheus-net.DotNetRuntime" />
    <PackageReference Include="TerraFX.Interop.Windows" PrivateAssets="compile" />
    <PackageReference Include="Microsoft.Extensions.ObjectPool" PrivateAssets="compile" />
    <PackageReference Include="SpaceWizards.Sodium" PrivateAssets="compile" />
    <PackageReference Include="SharpZstd.Interop" PrivateAssets="compile" ExcludeAssets="native" />
    <PackageReference Include="Robust.Natives.Zstd" />
    <PackageReference Condition="'$(RobustToolsBuild)' == 'True'" Include="JetBrains.Profiler.Api" />
    <PackageReference Include="Microsoft.NET.ILLink.Tasks" />
    <PackageReference Include="Microsoft.CodeAnalysis.CSharp.Scripting" />
    <PackageReference Include="Microsoft.CodeAnalysis.CSharp.Workspaces" />
    <PackageReference Include="Microsoft.CodeAnalysis.CSharp.Features" />
    <PackageReference Include="YamlDotNet" />

    <!-- Needed to pin transitive dependency versions. -->
    <PackageReference Include="System.Text.Json" />
    <PackageReference Include="Newtonsoft.Json" />
  </ItemGroup>
  <ItemGroup>
    <ProjectReference Include="..\Lidgren.Network\Lidgren.Network.csproj" />
    <ProjectReference Include="..\NetSerializer\NetSerializer\NetSerializer.csproj" />
    <ProjectReference Include="..\Robust.Shared.Maths\Robust.Shared.Maths.csproj" />
    <ProjectReference Include="..\Robust.Shared.Scripting\Robust.Shared.Scripting.csproj" />
    <ProjectReference Include="..\Robust.Shared\Robust.Shared.csproj" />
    <ProjectReference Include="..\Robust.Packaging\Robust.Packaging.csproj" />
  </ItemGroup>
  <ItemGroup>
    <Content Include="server_config.toml">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
    <Content Include="run_server.bat">
      <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
    </Content>
    <EmbeddedResource Include="ExtraMappedSerializerStrings.txt">
      <LogicalName>Robust.Server.ExtraMappedSerializerStrings.txt</LogicalName>
    </EmbeddedResource>
  </ItemGroup>

  <!-- ILLink configuration -->
  <ItemGroup>
    <RobustLinkRoots Include="Robust.Server" />
    <RobustLinkRoots Include="Robust.Shared" />
    <RobustLinkAssemblies Include="TerraFX.Interop.Windows" />
  </ItemGroup>

  <Import Project="..\MSBuild\Robust.Properties.targets" />

  <Import Project="..\MSBuild\Robust.Trimming.targets" />
</Project>
