added a partial class gen

this will take csproj properties and set them, this will allow us to use publish -p:{parameter=value} for building the server
This commit is contained in:
CWX
2025-04-15 20:31:06 +01:00
parent 0f2e18c34d
commit 199a8fc1d9
4 changed files with 57 additions and 61 deletions
@@ -1,6 +1,6 @@
<Project Sdk="Microsoft.NET.Sdk.Web">
<Import Project="..\..\Build.props" />
<Import Project="..\..\Build.props"/>
<PropertyGroup>
<PackageId>SPTarkov.Server.Core</PackageId>
@@ -16,16 +16,46 @@
</PropertyGroup>
<ItemGroup>
<ProjectReference Include="..\SPTarkov.DI\SPTarkov.DI.csproj" />
<ProjectReference Include="..\SPTarkov.DI\SPTarkov.DI.csproj"/>
</ItemGroup>
<ItemGroup>
<PackageReference Include="System.IO.Hashing" Version="9.0.1" />
<PackageReference Include="FastCloner" Version="3.3.2" />
<PackageReference Include="System.IO.Hashing" Version="9.0.1"/>
<PackageReference Include="FastCloner" Version="3.3.2"/>
</ItemGroup>
<ItemGroup>
<None Include="..\..\LICENSE" Pack="true" Visible="false" PackagePath=""/>
</ItemGroup>
<PropertyGroup>
<!-- SPT specific -->
<!-- using publish - provide flag to disable modding -p:DisableModding=true -->
<SptVersion Condition="'$(SptVersion)' == ''">0.0.0</SptVersion>
<SptCommit Condition="'$(SptCommit)' == ''">a12b34</SptCommit>
<SptBuildTime Condition="'$(SptBuildTime)' == ''">0000000000</SptBuildTime>
<SptBuildType Condition="'$(SptBuildType)' == ''">LOCAL</SptBuildType>
</PropertyGroup>
<Target Name="GenerateProgramStatics" BeforeTargets="BeforeBuild">
<WriteLinesToFile
File="Utils/ProgramStatics.Generated.cs"
Lines="
using SPTarkov.Server.Core.Models.Enums%3B
namespace SPTarkov.Server.Core.Utils%3B
public static partial class ProgramStatics
{
public static string? _sptVersion = &quot;$(SptVersion)&quot;%3B
public static string? _commit = &quot;$(SptCommit)&quot;%3B
public static double? _buildTime = $(SptBuildTime)%3B
public static EntryType? BuildType = EntryType.$(SptBuildType)%3B
}
" Overwrite="true"/>
<ItemGroup>
<Compile Include="Utils/ProgramStatics.cs"/>
</ItemGroup>
</Target>
</Project>