-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy pathSTS2-RitsuLib.csproj
More file actions
176 lines (167 loc) · 10.9 KB
/
STS2-RitsuLib.csproj
File metadata and controls
176 lines (167 loc) · 10.9 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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
<Project Sdk="Godot.NET.Sdk/4.5.1">
<PropertyGroup Label="Compatibility (STS2 API, signatures, defines)">
<RitsuLibCompatTargets>0.106.1;0.105.1;0.103.2</RitsuLibCompatTargets>
<RitsuLibLatestApiCompat>0.106.1</RitsuLibLatestApiCompat>
<Sts2ApiCompat Condition="'$(Sts2ApiCompat)' == ''">$(RitsuLibLatestApiCompat)</Sts2ApiCompat>
<Sts2ApiSignatureDir Condition="'$(Sts2ApiSignatureRoot)' != ''">$(Sts2ApiSignatureRoot)\$(Sts2ApiCompat)</Sts2ApiSignatureDir>
<Sts2DataDir Condition="'$(Sts2ApiSignatureRoot)' != ''">$(Sts2ApiSignatureDir)</Sts2DataDir>
</PropertyGroup>
<Import Project="$(MSBuildProjectDirectory)\build\RitsuLib.CompatDefines.targets"/>
<PropertyGroup Label="Mod manifest generation">
<RitsuLibManifestSource>$(MSBuildProjectDirectory)\mod_manifest.json</RitsuLibManifestSource>
<RitsuLibManifestGenerated>$(IntermediateOutputPath)mod_manifest.generated.json</RitsuLibManifestGenerated>
<RitsuLibModDisplayName Condition="'$(Sts2ApiCompat)' == '$(RitsuLibLatestApiCompat)'">RitsuLib</RitsuLibModDisplayName>
<RitsuLibModDisplayName Condition="'$(Sts2ApiCompat)' != '$(RitsuLibLatestApiCompat)'">RitsuLib (STS2 $(Sts2ApiCompat) compat)</RitsuLibModDisplayName>
</PropertyGroup>
<Import Project="$(MSBuildProjectDirectory)\build\RitsuLib.ModManifest.targets"/>
<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>
<RitsuLibTelemetryBuildChannel Condition="'$(RitsuLibTelemetryBuildChannel)' == '' and '$(Configuration)' == 'Debug'">local_debug</RitsuLibTelemetryBuildChannel>
<RitsuLibTelemetryBuildChannel Condition="'$(RitsuLibTelemetryBuildChannel)' == ''">local_release</RitsuLibTelemetryBuildChannel>
<RitsuLibTelemetryBuildConfiguration Condition="'$(RitsuLibTelemetryBuildConfiguration)' == ''">$(Configuration)</RitsuLibTelemetryBuildConfiguration>
<RitsuLibViewerProjectDir>$(MSBuildProjectDirectory)\Viewer</RitsuLibViewerProjectDir>
<RitsuLibViewerDistDir>$(RitsuLibViewerProjectDir)\dist</RitsuLibViewerDistDir>
<RitsuLibBuildViewer Condition="'$(RitsuLibBuildViewer)' == '' and Exists('$(RitsuLibViewerProjectDir)\package.json')">true</RitsuLibBuildViewer>
<RitsuLibBuildViewer Condition="'$(RitsuLibBuildViewer)' == ''">false</RitsuLibBuildViewer>
</PropertyGroup>
<PropertyGroup Label="NuGet package">
<IsPackable>true</IsPackable>
<Version>0.4.7</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>
<TargetsForTfmSpecificContentInPackage>$(TargetsForTfmSpecificContentInPackage);PackRitsuDebugLogViewerAssets</TargetsForTfmSpecificContentInPackage>
</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)\SmartFormat.dll')"
Text="Sts2ApiSignatureRoot is set but missing expected file: '$(Sts2ApiSignatureDir)\SmartFormat.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>
<AssemblyAttribute Include="System.Reflection.AssemblyMetadataAttribute">
<_Parameter1>RitsuLibTelemetryBuildChannel</_Parameter1>
<_Parameter2>$(RitsuLibTelemetryBuildChannel)</_Parameter2>
</AssemblyAttribute>
<AssemblyAttribute Include="System.Reflection.AssemblyMetadataAttribute">
<_Parameter1>RitsuLibTelemetryBuildConfiguration</_Parameter1>
<_Parameter2>$(RitsuLibTelemetryBuildConfiguration)</_Parameter2>
</AssemblyAttribute>
<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="SmartFormat" HintPath="$(Sts2DataDir)\SmartFormat.dll" Private="False"/>
</ItemGroup>
<ItemGroup>
<Content Include="$(RitsuLibManifestGenerated)"/>
</ItemGroup>
<ItemGroup>
<RitsuLibViewerBuildInputs Include="$(RitsuLibViewerProjectDir)\package.json"/>
<RitsuLibViewerBuildInputs Include="$(RitsuLibViewerProjectDir)\package-lock.json" Condition="Exists('$(RitsuLibViewerProjectDir)\package-lock.json')"/>
<RitsuLibViewerBuildInputs Include="$(RitsuLibViewerProjectDir)\index.html"/>
<RitsuLibViewerBuildInputs Include="$(RitsuLibViewerProjectDir)\vite.config.ts"/>
<RitsuLibViewerBuildInputs Include="$(RitsuLibViewerProjectDir)\tsconfig.json"/>
<RitsuLibViewerBuildInputs Include="$(RitsuLibViewerProjectDir)\src\**\*"/>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Assets\mod_image.png" LogicalName="STS2RitsuLib.Assets.mod_image.png"/>
<EmbeddedResource Include="Settings\Localization\**\*.json"/>
<EmbeddedResource Include="Ui\Shell\Themes\*.theme.json"/>
</ItemGroup>
<ItemGroup>
<None Include="README.md" Pack="true" PackagePath="\"/>
<None Include="$(RitsuLibManifestGenerated)" Pack="true" PackagePath="contentFiles/any/any/mod_manifest.json"/>
<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\**"/>
<Compile Remove="build\**\*.cs"/>
<!-- Loader is a separate assembly; keep it out of Godot.Sdk default globs. -->
<Compile Remove="Loader\**"/>
<None Remove="Loader\**"/>
<Content Remove="Loader\**"/>
<EmbeddedResource Remove="Loader\**"/>
<!-- The browser log viewer is built and copied as sidecar static assets, not Godot resources. -->
<Compile Remove="Viewer\**"/>
<None Remove="Viewer\node_modules\**"/>
<Content Remove="Viewer\node_modules\**"/>
<EmbeddedResource Remove="Viewer\**"/>
</ItemGroup>
<Target Name="BuildRitsuDebugLogViewer"
BeforeTargets="Build"
Condition="'$(RitsuLibBuildViewer)' == 'true'"
Inputs="@(RitsuLibViewerBuildInputs)"
Outputs="$(RitsuLibViewerDistDir)\index.html">
<Message Text="Building RitsuLib debug log viewer..." Importance="high"/>
<Exec WorkingDirectory="$(RitsuLibViewerProjectDir)" Command="npm install" Condition="!Exists('$(RitsuLibViewerProjectDir)\node_modules')"/>
<Exec WorkingDirectory="$(RitsuLibViewerProjectDir)" Command="npm run build"/>
</Target>
<Target Name="CopyRitsuDebugLogViewerAssets"
AfterTargets="Build"
BeforeTargets="Copy Mod"
Condition="Exists('$(RitsuLibViewerDistDir)\index.html')">
<ItemGroup>
<RitsuDebugViewerDistFiles Include="$(RitsuLibViewerDistDir)\**\*"/>
</ItemGroup>
<Copy SourceFiles="@(RitsuDebugViewerDistFiles)"
DestinationFiles="@(RitsuDebugViewerDistFiles->'$(TargetDir)viewer\%(RecursiveDir)%(Filename)%(Extension)')"
SkipUnchangedFiles="true"/>
</Target>
<Target Name="PackRitsuDebugLogViewerAssets"
DependsOnTargets="BuildRitsuDebugLogViewer"
Condition="Exists('$(RitsuLibViewerDistDir)\index.html')">
<ItemGroup>
<TfmSpecificPackageFile Include="$(RitsuLibViewerDistDir)\**\*">
<PackagePath>contentFiles/any/any/viewer/%(RecursiveDir)%(Filename)%(Extension)</PackagePath>
<BuildAction>None</BuildAction>
</TfmSpecificPackageFile>
</ItemGroup>
</Target>
<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="$(RitsuLibManifestGenerated)" DestinationFiles="$(Sts2Dir)\mods\$(MSBuildProjectName)\mod_manifest.json"/>
<ItemGroup>
<RitsuDebugViewerOutputFiles Include="$(TargetDir)viewer\**\*" Condition="Exists('$(TargetDir)viewer\index.html')"/>
</ItemGroup>
<Copy SourceFiles="@(RitsuDebugViewerOutputFiles)"
DestinationFiles="@(RitsuDebugViewerOutputFiles->'$(Sts2Dir)\mods\$(MSBuildProjectName)\viewer\%(RecursiveDir)%(Filename)%(Extension)')"
SkipUnchangedFiles="true"/>
</Target>
</Project>