1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2026-01-06 06:32:56 +01:00

Make the g2 task shared, remove duplication

This commit is contained in:
ζeh Matt
2025-04-22 02:21:54 +03:00
parent 43150c181a
commit e487cec14f
3 changed files with 129 additions and 131 deletions

View File

@@ -8,9 +8,6 @@
- OPENRCT2_DESCRIBE
-->
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="Build">
<!-- Import custom build tasks -->
<Import Project="openrct2.targets" />
<PropertyGroup>
<Configuration Condition="'$(Configuration)'==''">Debug</Configuration>
<Platform Condition="'$(Platform)'==''">x64</Platform>
@@ -27,7 +24,6 @@
<TargetDir>$(RootDir)bin\</TargetDir>
<OutputExe>$(TargetDir)openrct2.exe</OutputExe>
<g2Output>$(TargetDir)data\g2.dat</g2Output>
<!-- Set openrct2.sln properties -->
<SlnProperties>$(SlnProperties);Platform=$(Platform)</SlnProperties>
@@ -55,10 +51,6 @@
<ReplaysSha1>6061B53DE346BD853BB997E635AC7374B1A7D2F0</ReplaysSha1>
</PropertyGroup>
<ItemGroup>
<g2Inputs Include="$(RootDir)resources\g2\*" />
</ItemGroup>
<Target Name="DownloadLibs">
<!-- libs -->
<DownloadDependency Name="Libs"
@@ -75,7 +67,7 @@
<Delete Files="@(CleanItems)" />
<Delete Files="$(DependenciesCheckFile)" />
<RemoveDir Directories="$(TargetDir)data" />
<MSBuild Projects="openrct2.sln" Targets="Clean" Properties="$(SlnProperties)" />
<MSBuild Projects="openrct2.sln" Targets="Clean" Properties="$(SlnProperties);IsSolutionBuild=true" />
</Target>
<Target Name="BeforeBuild" BeforeTargets="Build;Rebuild" DependsOnTargets="DownloadLibs">
@@ -97,24 +89,14 @@
<SlnProperties>$(SlnProperties);Configuration=$(Configuration)</SlnProperties>
</PropertyGroup>
<Message Text="SlnProperties: $(SlnProperties)" />
<MSBuild Projects="openrct2.sln" Targets="Build" Properties="$(SlnProperties)" />
<MSBuild Projects="openrct2.sln" Targets="Build" Properties="$(SlnProperties);IsSolutionBuild=true" />
</Target>
<Target Name="Rebuild">
<PropertyGroup>
<SlnProperties>$(SlnProperties);Configuration=$(Configuration)</SlnProperties>
</PropertyGroup>
<Message Text="SlnProperties: $(SlnProperties)" />
<MSBuild Projects="openrct2.sln" Targets="Rebuild" Properties="$(SlnProperties)" />
</Target>
<!-- Target to build g2.dat containing OpenRCT2 sprites -->
<!-- Only Arm64 machines will build g2.dat for Arm64 -->
<!-- Note: Arm64 machines can build for x86, x64 and Arm64 -->
<Target Name="g2" AfterTargets="Build" Inputs="@(g2Inputs)" Outputs="$(g2Output)"
Condition="'$(TestConfig)'!='true' and ('$(Platform)'!='ARM64' or '$(PROCESSOR_ARCHITECTURE)'=='ARM64')">
<Message Text="Building g2.dat..." Importance="high" />
<Exec Command="&quot;$(OutputExe)&quot; sprite build &quot;$(g2Output)&quot; &quot;$(RootDir)resources\g2\sprites.json&quot;"
StandardOutputImportance="normal" />
<MSBuild Projects="openrct2.sln" Targets="Rebuild" Properties="$(SlnProperties);IsSolutionBuild=true" />
</Target>
<!-- Target to download the title sequences -->
@@ -161,4 +143,8 @@
CheckFile="$(DependenciesCheckFile)"
OutputDirectory="$(TargetDir)testdata\replays" />
</Target>
<!-- Import custom build tasks -->
<Import Project="openrct2.targets" />
</Project>

View File

@@ -329,4 +329,125 @@
</Code>
</Task>
</UsingTask>
<!-- Property Definitions with Default Values -->
<PropertyGroup>
<SolutionDir Condition="'$(SolutionDir)' == ''">$(MSBuildThisFileDirectory)</SolutionDir>
<OutDir Condition="'$(OutDir)' == ''">$(SolutionDir)bin\</OutDir>
<!-- CLI Configuration -->
<CLIProjectName Condition="'$(CLIProjectName)' == ''">openrct2-cli</CLIProjectName>
<CLIProjectPath Condition="'$(CLIProjectPath)' == ''">$(SolutionDir)src\$(CLIProjectName)\$(CLIProjectName).vcxproj</CLIProjectPath>
<G2CLIPath Condition="'$(G2CLIPath)' == ''">$(OutDir)$(CLIProjectName).exe</G2CLIPath>
<!-- Data Configuration -->
<DataOutputPath Condition="'$(DataOutputPath)' == ''">$(OutDir)data\</DataOutputPath>
<DataLanguagePath Condition="'$(DataLanguagePath)' == ''">$(SolutionDir)data\language\</DataLanguagePath>
<DataShadersPath Condition="'$(DataShadersPath)' == ''">$(SolutionDir)data\shaders\</DataShadersPath>
<DataScenarioPath Condition="'$(DataScenarioPath)' == ''">$(SolutionDir)data\scenario_patches\</DataScenarioPath>
<ResourcesG2Path Condition="'$(ResourcesG2Path)' == ''">$(SolutionDir)resources\g2\</ResourcesG2Path>
<G2InputFile Condition="'$(G2InputFile)' == ''">$(ResourcesG2Path)sprites.json</G2InputFile>
<DataOutputPath Condition="'$(DataOutputPath)' == ''">$(OutDir)data\</DataOutputPath>
</PropertyGroup>
<!-- File Group Definitions -->
<ItemGroup>
<G2Input Include="$(G2InputFile)" />
<LanguageFiles Include="$(DataLanguagePath)**\*"
Exclude="$(DataLanguagePath)*.bak;
$(DataLanguagePath)*.tmp" />
<ShaderFiles Include="$(DataShadersPath)**\*"
Exclude="$(DataShadersPath)*.bak;
$(DataShadersPath)*.tmp" />
<ScenarioPatchFiles Include="$(DataScenarioPath)**\*"
Exclude="$(DataScenarioPath)*.bak;
$(DataScenarioPath)*.tmp" />
</ItemGroup>
<!-- Target Implementations -->
<Target Name="CopyLanguageFiles"
AfterTargets="Build"
BeforeTargets="CopyShaders;CopyScenarioPatches;BuildG2"
Inputs="@(LanguageFiles)"
Outputs="@(LanguageFiles->'$(DataOutputPath)language\%(RecursiveDir)%(Filename)%(Extension)')">
<MakeDir Directories="@(LanguageFiles->'$(DataOutputPath)language\%(RecursiveDir)')" />
<Copy SourceFiles="@(LanguageFiles)"
DestinationFiles="@(LanguageFiles->'$(DataOutputPath)language\%(RecursiveDir)%(Filename)%(Extension)')"
SkipUnchangedFiles="true"
OverwriteReadOnlyFiles="true"
Retries="3">
<Output TaskParameter="CopiedFiles" ItemName="CopiedLangFiles" />
</Copy>
<Message Text="Copied language file: %(CopiedLangFiles.RecursiveDir)%(CopiedLangFiles.Filename)%(CopiedLangFiles.Extension)"
Importance="high"
Condition="'@(CopiedLangFiles)' != ''" />
</Target>
<Target Name="CopyShaders"
AfterTargets="CopyLanguageFiles"
BeforeTargets="CopyScenarioPatches;BuildG2"
Inputs="@(ShaderFiles)"
Outputs="@(ShaderFiles->'$(DataOutputPath)shaders\%(RecursiveDir)%(Filename)%(Extension)')">
<MakeDir Directories="@(ShaderFiles->'$(DataOutputPath)shaders\%(RecursiveDir)')" />
<Copy SourceFiles="@(ShaderFiles)"
DestinationFiles="@(ShaderFiles->'$(DataOutputPath)shaders\%(RecursiveDir)%(Filename)%(Extension)')"
SkipUnchangedFiles="true"
OverwriteReadOnlyFiles="true"
Retries="3">
<Output TaskParameter="CopiedFiles" ItemName="CopiedShaderFiles" />
</Copy>
<Message Text="Copied shader: %(CopiedShaderFiles.RecursiveDir)%(CopiedShaderFiles.Filename)%(CopiedShaderFiles.Extension)"
Importance="high"
Condition="'@(CopiedShaderFiles)' != ''" />
</Target>
<Target Name="CopyScenarioPatches"
AfterTargets="CopyShaders"
BeforeTargets="BuildG2"
Inputs="@(ScenarioPatchFiles)"
Outputs="@(ScenarioPatchFiles->'$(DataOutputPath)scenario_patches\%(RecursiveDir)%(Filename)%(Extension)')">
<MakeDir Directories="@(ScenarioPatchFiles->'$(DataOutputPath)scenario_patches\%(RecursiveDir)')" />
<Copy SourceFiles="@(ScenarioPatchFiles)"
DestinationFiles="@(ScenarioPatchFiles->'$(DataOutputPath)scenario_patches\%(RecursiveDir)%(Filename)%(Extension)')"
SkipUnchangedFiles="true"
OverwriteReadOnlyFiles="true"
Retries="3">
<Output TaskParameter="CopiedFiles" ItemName="CopiedScenarioFiles" />
</Copy>
<Message Text="Copied scenario patch: %(CopiedScenarioFiles.RecursiveDir)%(CopiedScenarioFiles.Filename)%(CopiedScenarioFiles.Extension)"
Importance="high"
Condition="'@(CopiedScenarioFiles)' != ''" />
</Target>
<Target Name="g2"
AfterTargets="CopyScenarioPatches"
Inputs="@(G2Input)"
Outputs="$(DataOutputPath)g2.dat"
Condition="'$(TestConfig)' != 'true' and ('$(Platform)' != 'ARM64' or '$(PROCESSOR_ARCHITECTURE)' == 'ARM64')">
<MakeDir Directories="$(DataOutputPath)" />
<Exec Command="&quot;$(G2CLIPath)&quot; sprite build &quot;$(DataOutputPath)g2.dat&quot; &quot;%(G2Input.FullPath)&quot;"
ConsoleToMSBuild="true"
IgnoreExitCode="false">
<Output TaskParameter="ConsoleOutput" PropertyName="G2BuildOutput" />
</Exec>
<Touch Files="$(DataOutputPath)g2.dat"
ForceTouch="true"
AlwaysCreate="true" />
</Target>
</Project>

View File

@@ -56,115 +56,6 @@
<LibraryPath>$(SolutionDir)bin;$(LibraryPath)</LibraryPath>
</PropertyGroup>
<!-- Asset Definitions -->
<ItemGroup>
<!-- G2 Input (single file) -->
<G2Input Include="$(SolutionDir)resources\g2\sprites.json" />
<!-- Language Files -->
<LanguageFiles Include="$(SolutionDir)data\language\**\*"
Exclude="$(SolutionDir)data\language\*.bak;
$(SolutionDir)data\language\*.tmp" />
<!-- Shader Files -->
<ShaderFiles Include="$(SolutionDir)data\shaders\**\*"
Exclude="$(SolutionDir)data\shaders\*.bak;
$(SolutionDir)data\shaders\*.tmp" />
<!-- Scenario Patches -->
<ScenarioPatchFiles Include="$(SolutionDir)data\scenario_patches\**\*"
Exclude="$(SolutionDir)data\scenario_patches\*.bak;
$(SolutionDir)data\scenario_patches\*.tmp" />
</ItemGroup>
<!-- Language Files -->
<Target Name="CopyLanguageFiles"
AfterTargets="Build"
BeforeTargets="CopyShaders;CopyScenarioPatches;BuildG2"
Inputs="@(LanguageFiles)"
Outputs="@(LanguageFiles->'$(OutDir)data\language\%(RecursiveDir)%(Filename)%(Extension)')">
<MakeDir Directories="@(LanguageFiles->'$(OutDir)data\language\%(RecursiveDir)')" />
<Copy SourceFiles="@(LanguageFiles)"
DestinationFiles="@(LanguageFiles->'$(OutDir)data\language\%(RecursiveDir)%(Filename)%(Extension)')"
SkipUnchangedFiles="true"
OverwriteReadOnlyFiles="true"
Retries="3">
<Output TaskParameter="CopiedFiles" ItemName="CopiedLangFiles" />
</Copy>
<Message
Text="Copied: %(CopiedLangFiles.RecursiveDir)%(CopiedLangFiles.Filename)%(CopiedLangFiles.Extension)"
Importance="high"
Condition="'@(CopiedLangFiles)' != ''" />
</Target>
<!-- Shader Files -->
<Target Name="CopyShaders"
AfterTargets="CopyLanguageFiles"
BeforeTargets="CopyScenarioPatches;BuildG2"
Inputs="@(ShaderFiles)"
Outputs="@(ShaderFiles->'$(OutDir)data\shaders\%(RecursiveDir)%(Filename)%(Extension)')">
<MakeDir Directories="@(ShaderFiles->'$(OutDir)data\shaders\%(RecursiveDir)')" />
<Copy SourceFiles="@(ShaderFiles)"
DestinationFiles="@(ShaderFiles->'$(OutDir)data\shaders\%(RecursiveDir)%(Filename)%(Extension)')"
SkipUnchangedFiles="true"
OverwriteReadOnlyFiles="true"
Retries="3">
<Output TaskParameter="CopiedFiles" ItemName="CopiedShaderFiles" />
</Copy>
<Message
Text="Copied: %(CopiedShaderFiles.RecursiveDir)%(CopiedShaderFiles.Filename)%(CopiedShaderFiles.Extension)"
Importance="high"
Condition="'@(CopiedShaderFiles)' != ''" />
</Target>
<!-- Scenario Patches -->
<Target Name="CopyScenarioPatches"
AfterTargets="CopyShaders"
BeforeTargets="BuildG2"
Inputs="@(ScenarioPatchFiles)"
Outputs="@(ScenarioPatchFiles->'$(OutDir)data\scenario_patches\%(RecursiveDir)%(Filename)%(Extension)')">
<MakeDir Directories="@(ScenarioPatchFiles->'$(OutDir)data\scenario_patches\%(RecursiveDir)')" />
<Copy SourceFiles="@(ScenarioPatchFiles)"
DestinationFiles="@(ScenarioPatchFiles->'$(OutDir)data\scenario_patches\%(RecursiveDir)%(Filename)%(Extension)')"
SkipUnchangedFiles="true"
OverwriteReadOnlyFiles="true"
Retries="3">
<Output TaskParameter="CopiedFiles" ItemName="CopiedScenarioFiles" />
</Copy>
<Message
Text="Copied: %(CopiedScenarioFiles.RecursiveDir)%(CopiedScenarioFiles.Filename)%(CopiedScenarioFiles.Extension)"
Importance="high"
Condition="'@(CopiedScenarioFiles)' != ''" />
</Target>
<!-- G2 Build -->
<Target Name="BuildG2"
AfterTargets="CopyScenarioPatches"
Inputs="@(G2Input)"
Outputs="$(OutDir)data\g2.dat">
<MakeDir Directories="$(OutDir)data" />
<Exec
Command="&quot;$(OutDir)openrct2-cli.exe&quot; sprite build &quot;$(OutDir)data\g2.dat&quot; &quot;%(G2Input.FullPath)&quot;"
ConsoleToMSBuild="true"
IgnoreExitCode="false">
<Output TaskParameter="ConsoleOutput" PropertyName="G2BuildOutput" />
</Exec>
<Touch Files="$(OutDir)data\g2.dat"
ForceTouch="true"
AlwaysCreate="true" />
</Target>
<Import Project="..\..\openrct2.targets" Condition="'$(IsSolutionBuild)' != 'true'" />
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
</Project>