-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathFahrenheit.Modules.ArchipelagoFFX.csproj
More file actions
103 lines (90 loc) · 4.5 KB
/
Fahrenheit.Modules.ArchipelagoFFX.csproj
File metadata and controls
103 lines (90 loc) · 4.5 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
<Project Sdk="Fahrenheit.Sdk/1.0.0-alpha09">
<!-- ASSEMBLY BASIC PROPERTIES -->
<PropertyGroup>
<Version>0.7.2-alpha</Version>
<FahrenheitVersion>v1.0.0-alpha09</FahrenheitVersion>
</PropertyGroup>
<!-- ASSEMBLY ADDITIONAL PROPERTIES -->
<PropertyGroup>
<AssemblyName>archipelago-ffx</AssemblyName>
<AssemblyTitle>Fahrenheit Archipelago Mod for Final Fantasy X</AssemblyTitle>
<Product>Fahrenheit Archipelago Mod for Final Fantasy X</Product>
<RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
<DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>
</PropertyGroup>
<ItemGroup>
<Compile Remove="fh-mods-csr\**" />
<EmbeddedResource Remove="fh-mods-csr\**" />
<None Remove="fh-mods-csr\**" />
</ItemGroup>
<!-- SHARED FILE LINKS -->
<ItemGroup>
<None Include="$(SolutionDir).editorconfig" Link=".editorconfig" />
</ItemGroup>
<!-- PACKAGE REFERENCES -->
<ItemGroup>
<PackageReference Include="Archipelago.MultiClient.Net" Version="6.7.0" />
</ItemGroup>
<ItemGroup>
<PackageReference Update="Fahrenheit" Version="1.0.0-alpha09" />
</ItemGroup>
<PropertyGroup>
<fhcsrName>fhcsr</fhcsrName>
<fhcsrPath>$(ProjectDir)fh-mods-csr/</fhcsrPath>
<fhcsrProject>$(fhcsrPath)Fahrenheit.Mods.CSR.csproj</fhcsrProject>
</PropertyGroup>
<!-- BUILD EVENTS -->
<Target Name="ReplaceProperties" BeforeTargets="Publish">
<PropertyGroup>
<File>archipelago-ffx.manifest.json</File>
</PropertyGroup>
<WriteLinesToFile File="$(PublishDir)/$(File)" Lines="$([System.IO.File]::ReadAllText($(PublishDir)/$(File)).Replace('{Version}','$(Version)'))" Overwrite="true" Encoding="UTF-8" />
</Target>
<Target Name="DownloadFahrenheitRelease" AfterTargets="Publish">
<PropertyGroup>
<ReleaseUrl>https://github.com/fahrenheit-crew/fahrenheit/releases/download/$(FahrenheitVersion)/fahrenheit_windows_x86_release_$(FahrenheitVersion).zip</ReleaseUrl>
</PropertyGroup>
<Message Text="Downloading release from $(ReleaseUrl)..." />
<DownloadFile SourceUrl="$(ReleaseURL)" DestinationFolder="$(PublishDir)" DestinationFileName="fh.zip" />
</Target>
<Target Name="ExtractFahrenheitRelease" AfterTargets="Publish">
<Message Text="Extracting release from fh.zip..." />
<Delete Files="$(PublishDir)fahrenheit" TreatErrorsAsWarnings="true" />
<Unzip SourceFiles="$(PublishDir)fh.zip" DestinationFolder="$(PublishDir)fahrenheit" />
<Delete Files="$(PublishDir)fh.zip" TreatErrorsAsWarnings="true" />
</Target>
<Target Name="CleanupFahrenheitRelease" AfterTargets="Publish">
<Message Text="Cleanup unused Fahrenheit mods..." />
<RemoveDir Directories="$(PublishDir)fahrenheit\mods" />
<MakeDir Directories="$(PublishDir)fahrenheit\mods\$(AssemblyName)" />
<MakeDir Directories="$(PublishDir)fahrenheit\mods\$(fhcsrName)" />
</Target>
<Target Name="CopyAssets" AfterTargets="Publish">
<PropertyGroup>
<AssetsDir>$(ProjectDir)assets\</AssetsDir>
<LoadOrderFile>loadorder</LoadOrderFile>
<LoadOrder>$(AssetsDir)$(LoadOrderFile)</LoadOrder>
<StartGameFile>start_game.bat</StartGameFile>
<StartGame>$(AssetsDir)$(StartGameFile)</StartGame>
<AssetDestination>$(PublishDir)fahrenheit\mods\$(AssemblyName)</AssetDestination>
</PropertyGroup>
<ItemGroup>
<AssetFiles Include="$(LoadOrder); $(StartGame)" />
</ItemGroup>
<Message Text="Copy solution assets..." />
<Exec Condition="'$(OS)' == 'Windows_NT'" Command="powershell -Command "robocopy '$(AssetsDir)' '$(AssetDestination)' /MIR /R:0 /W:0 /XF '$(LoadOrder)' /XF '$(StartGame)'" ContinueOnError="true" IgnoreExitCode="true" />
<Exec Condition="'$(OS)' == 'Unix'" Command="rsync -acu --delete '$(AssetsDir)/' '$(AssetDestination)' --exclude='$(LoadOrderFile)' --exclude='$(StartGameFile)'" ContinueOnError="true" IgnoreExitCode="true" />
<Copy SourceFiles="@(AssetFiles)" DestinationFiles="$(PublishDir)fahrenheit\mods\$(LoadOrderFile); $(PublishDir)fahrenheit\$(StartGameFile)" ContinueOnError="true" />
</Target>
<Target Name="MoveFilesToFinalDestination" AfterTargets="Publish">
<Message Text="Move project files to their final destination..." />
<ItemGroup>
<ProjectFiles Include="$(PublishDir)*.*" Exclude="**\**\" />
</ItemGroup>
<Move SourceFiles="@(ProjectFiles)" DestinationFolder="$(PublishDir)fahrenheit\mods\$(AssemblyName)\" />
</Target>
<Target Name="PublishCSR" AfterTargets="Publish">
<Message Text="Publish fh-mods-csr" />
<MSBuild Projects="$(fhcsrProject)" Properties="OutputPath=$(PublishDir)fahrenheit\mods\$(fhcsrName);Configuration=$(Configuration)" Targets="Build" />
</Target>
</Project>