-
Notifications
You must be signed in to change notification settings - Fork 7
Expand file tree
/
Copy pathSTS2-RitsuLib.csproj
More file actions
95 lines (90 loc) · 5.58 KB
/
STS2-RitsuLib.csproj
File metadata and controls
95 lines (90 loc) · 5.58 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<Project Sdk="Godot.NET.Sdk/4.5.1">
<Import Project=".\local.props" Condition="Exists('.\local.props')"/>
<Import Project=".\Sts2PathDiscovery.props"/>
<PropertyGroup Label="Compatibility (STS2 API, signatures, defines)">
<RitsuLibCompatTargets>0.104.0;0.103.2</RitsuLibCompatTargets>
<RitsuLibLatestApiCompat>0.104.0</RitsuLibLatestApiCompat>
<Sts2ApiCompat Condition="'$(Sts2ApiCompat)' == ''">$(RitsuLibLatestApiCompat)</Sts2ApiCompat>
<Sts2ApiSignatureDir Condition="'$(Sts2ApiSignatureRoot)' != ''">$(Sts2ApiSignatureRoot)\$(Sts2ApiCompat)</Sts2ApiSignatureDir>
<Sts2DataDir Condition="'$(Sts2ApiSignatureRoot)' != ''">$(Sts2ApiSignatureDir)</Sts2DataDir>
<DefineConstants Condition="'$(Sts2ApiCompat)' == '0.103.2'">$(DefineConstants);STS2_V_0_103_2</DefineConstants>
</PropertyGroup>
<PropertyGroup Label="Assembly and build">
<RootNamespace>STS2RitsuLib</RootNamespace>
<TargetFramework>net9.0</TargetFramework>
<ImplicitUsings>true</ImplicitUsings>
<Nullable>enable</Nullable>
<EnableDynamicLoading>true</EnableDynamicLoading>
<GenerateDocumentationFile>true</GenerateDocumentationFile>
<NoWarn>$(NoWarn);CS0436</NoWarn>
</PropertyGroup>
<PropertyGroup Label="NuGet package">
<IsPackable>true</IsPackable>
<Version>0.2.21</Version>
<Authors>OLC</Authors>
<Description>Shared framework library for Slay the Spire 2 mods.</Description>
<PackageReadmeFile>README.md</PackageReadmeFile>
<PackageLicenseExpression>MIT</PackageLicenseExpression>
<PackageProjectUrl>https://github.com/BAKAOLC/STS2-RitsuLib</PackageProjectUrl>
<RepositoryUrl>https://github.com/BAKAOLC/STS2-RitsuLib</RepositoryUrl>
<RepositoryType>git</RepositoryType>
<PackageId Condition="'$(Sts2ApiCompat)' == '$(RitsuLibLatestApiCompat)'">STS2.RitsuLib</PackageId>
<PackageId Condition="'$(Sts2ApiCompat)' != '$(RitsuLibLatestApiCompat)'">STS2.RitsuLib.Compat.$(Sts2ApiCompat)</PackageId>
</PropertyGroup>
<Target Name="ValidateSts2ApiSignatures" BeforeTargets="ResolveAssemblyReferences">
<Error
Condition="'$(Sts2ApiSignatureRoot)' != '' and !Exists('$(Sts2ApiSignatureRoot)')"
Text="Sts2ApiSignatureRoot is set but the directory does not exist: '$(Sts2ApiSignatureRoot)'."/>
<Error
Condition="'$(Sts2ApiSignatureRoot)' != '' and Exists('$(Sts2ApiSignatureRoot)') and !Exists('$(Sts2ApiSignatureDir)\sts2.dll')"
Text="Sts2ApiSignatureRoot is set but missing expected file: '$(Sts2ApiSignatureDir)\sts2.dll'."/>
<Error
Condition="'$(Sts2ApiSignatureRoot)' != '' and Exists('$(Sts2ApiSignatureRoot)') and !Exists('$(Sts2ApiSignatureDir)\0Harmony.dll')"
Text="Sts2ApiSignatureRoot is set but missing expected file: '$(Sts2ApiSignatureDir)\0Harmony.dll'."/>
<Error
Condition="'$(Sts2ApiSignatureRoot)' != '' and Exists('$(Sts2ApiSignatureRoot)') and !Exists('$(Sts2ApiSignatureDir)\Steamworks.NET.dll')"
Text="Sts2ApiSignatureRoot is set but missing expected file: '$(Sts2ApiSignatureDir)\Steamworks.NET.dll'."/>
</Target>
<Target Name="ValidateSts2GameInstall" BeforeTargets="ResolveAssemblyReferences">
<Error
Condition="!Exists('$(Sts2DataDir)\sts2.dll')"
Text="Could not find sts2.dll under '$(Sts2DataDir)'. Set Sts2Dir in local.props (see local.props.template), or pass /p:Sts2Dir=... , or install Slay the Spire 2 in a default Steam library so auto-discovery can find it."/>
</Target>
<ItemGroup>
<PackageReference Include="Krafs.Publicizer" Version="2.3.0" PrivateAssets="all"/>
<PackageReference Include="System.IO.Hashing" Version="9.0.0"/>
</ItemGroup>
<ItemGroup>
<Publicize Include="sts2" IncludeCompilerGeneratedMembers="false" IncludeVirtualMembers="false"/>
</ItemGroup>
<ItemGroup>
<Reference Include="sts2" HintPath="$(Sts2DataDir)\sts2.dll" Private="False"/>
<Reference Include="0Harmony" HintPath="$(Sts2DataDir)\0Harmony.dll" Private="False"/>
<Reference Include="Steamworks.NET" HintPath="$(Sts2DataDir)\Steamworks.NET.dll" Private="False"/>
</ItemGroup>
<ItemGroup>
<Content Include="mod_manifest.json"/>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Settings\Localization\**\*.json"/>
<EmbeddedResource Include="Ui\Shell\Themes\*.theme.json"/>
</ItemGroup>
<ItemGroup>
<None Include="README.md" Pack="true" PackagePath="\"/>
<None Include="mod_manifest.json" Pack="true" PackagePath="contentFiles/any/any/"/>
<None Include="buildTransitive\STS2.RitsuLib.targets" Pack="true" PackagePath="buildTransitive/$(PackageId).targets"/>
</ItemGroup>
<!-- Exclude game source reference folder from compilation -->
<ItemGroup>
<Compile Remove="sts-2-source\**"/>
<None Remove="sts-2-source\**"/>
<Content Remove="sts-2-source\**"/>
<EmbeddedResource Remove="sts-2-source\**"/>
</ItemGroup>
<Target Name="Copy Mod" AfterTargets="Build" Condition="'$(Sts2ApiCompat)' == '$(RitsuLibLatestApiCompat)'">
<Message Text="Copying mod to Slay the Spire 2 mods folder..." Importance="high"/>
<MakeDir Directories="$(Sts2Dir)\mods\$(MSBuildProjectName)\"/>
<Copy SourceFiles="$(TargetPath)" DestinationFolder="$(Sts2Dir)\mods\$(MSBuildProjectName)\"/>
<Copy SourceFiles="$(MSBuildProjectDirectory)\mod_manifest.json" DestinationFolder="$(Sts2Dir)\mods\$(MSBuildProjectName)\"/>
</Target>
</Project>