<Project Sdk="Microsoft.NET.Sdk">
  <Import Project="..\..\Build.props" />
  <PropertyGroup>
    <PackageId>SPTarkov.Server.Core</PackageId>
    <Authors>Single Player Tarkov</Authors>
    <Description>Core library for the Single Player Tarkov server.</Description>
    <Copyright>Copyright (c) Single Player Tarkov 2025</Copyright>
    <PackageLicenseFile>LICENSE</PackageLicenseFile>
    <PackageProjectUrl>https://sp-tarkov.com</PackageProjectUrl>
    <RepositoryUrl>https://github.com/sp-tarkov/server-csharp</RepositoryUrl>
    <ImplicitUsings>enable</ImplicitUsings>
    <OutputType>Library</OutputType>
    <IsPackable>true</IsPackable>
    <StaticWebAssetsEnabled>false</StaticWebAssetsEnabled>
    <NoDefaultLaunchSettingsFile>true</NoDefaultLaunchSettingsFile>
    <GenerateDocumentationFile>true</GenerateDocumentationFile>
  </PropertyGroup>
  <ItemGroup>
    <ProjectReference Include="..\SPTarkov.Common\SPTarkov.Common.csproj" />
    <ProjectReference Include="..\SPTarkov.DI\SPTarkov.DI.csproj" />
  </ItemGroup>
  <ItemGroup>
    <PackageReference Include="System.IO.Hashing" Version="9.0.8" />
    <PackageReference Include="FastCloner" Version="3.3.10" />
  </ItemGroup>
  <ItemGroup>
    <None Include="..\..\LICENSE" Pack="true" Visible="false" PackagePath="" />
  </ItemGroup>
  <ItemGroup>
    <InternalsVisibleTo Include="UnitTests" />
  </ItemGroup>
  <Target Name="AfterEverythingDone" AfterTargets="PostBuildEvent">
    <!-- Run virtualizer patch -->
    <Exec
      ConsoleToMsBuild="true"
      Condition="'$(IsPublish)' == 'true'"
      Command="dotnet build -c &quot;$(Configuration)&quot; &quot;$(MSBuildProjectDirectory)/../../Patches/Ceciler.Virtualizer/Ceciler.Virtualizer.csproj&quot;"
    />
    <Exec
      ConsoleToMsBuild="true"
      Command="dotnet &quot;$(MSBuildProjectDirectory)/../../Ceciler/Ceciler.Launcher.dll&quot; &quot;$(OutDir)SPTarkov.Server.Core.dll&quot; &quot;$(MSBuildProjectDirectory)/../../Patches/Ceciler.Virtualizer/bin/$(Configuration)/$(TargetFramework)/Ceciler.Virtualizer.dll&quot;"
    />
    <!-- Run ExtensionData patch -->
    <Exec
      ConsoleToMsBuild="true"
      Condition="'$(IsPublish)' == 'true' and '$(Configuration)' == 'Release'"
      Command="dotnet build -c &quot;$(Configuration)&quot; &quot;$(MSBuildProjectDirectory)/../../Patches/Ceciler.JsonExtensionData/Ceciler.JsonExtensionData.csproj&quot;"
    />
    <Exec
      Condition="'$(Configuration)' == 'Release'"
      ConsoleToMsBuild="true"
      Command="dotnet &quot;$(MSBuildProjectDirectory)/../../Ceciler/Ceciler.Launcher.dll&quot; &quot;$(OutDir)SPTarkov.Server.Core.dll&quot; &quot;$(MSBuildProjectDirectory)/../../Patches/Ceciler.JsonExtensionData/bin/$(Configuration)/$(TargetFramework)/Ceciler.JsonExtensionData.dll&quot;"
    />
  </Target>
  <!--  Generates the ProgramStatics class with the build information -->
  <Target Name="GenerateProgramStatics" BeforeTargets="CollectPackageReferences;CoreCompile">
    <WriteLinesToFile
      File="Utils/ProgramStatics.Generated.cs"
      Lines="// &lt;auto-generated /&gt;&#xD;&#xA;// This file is automatically generated. Do not modify manually.&#xD;&#xA;// Any changes made to this file will be overwritten during the build process.&#xD;&#xA;&#xD;&#xA;using SPTarkov.Server.Core.Models.Enums%3B&#xD;&#xA;&#xD;&#xA;using Version = SemanticVersioning.Version%3B&#xD;&#xA;&#xD;&#xA;namespace SPTarkov.Server.Core.Utils%3B&#xD;&#xA;&#xD;&#xA;public static partial class ProgramStatics&#xD;&#xA;{&#xD;&#xA;    private static Version SptVersion { get%3B } = new(&quot;$(SptVersion)&quot;)%3B&#xD;&#xA;    private static string Commit { get%3B } = &quot;$(SptCommit)&quot;%3B&#xD;&#xA;    private static double BuildTime { get%3B } = $(SptBuildTime)%3B&#xD;&#xA;    private static EntryType BuildType { get%3B } = EntryType.$(SptBuildType)%3B&#xD;&#xA;}&#xD;&#xA;"
      Overwrite="true"
    />
  </Target>
</Project>
