1
0
mirror of https://github.com/OpenRCT2/OpenRCT2 synced 2025-12-10 09:32:29 +01:00
Files
OpenRCT2/openrct2.targets
2025-05-29 21:25:33 +02:00

166 lines
7.4 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<!-- 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>
<GraphicsCLIPath Condition="'$(GraphicsCLIPath)' == ''">$(OutDir)$(CLIProjectName).exe</GraphicsCLIPath>
<!-- 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>
<ResourcesPath Condition="'$(ResourcesPath)' == ''">$(SolutionDir)resources\</ResourcesPath>
<G2InputFile Condition="'$(G2InputFile)' == ''">$(ResourcesPath)g2\sprites.json</G2InputFile>
<FontsInputFile Condition="'$(FontsInputFile)' == ''">$(ResourcesPath)fonts\sprites.json</FontsInputFile>
<TracksInputFile Condition="'$(TracksInputFile)' == ''">$(ResourcesPath)tracks\sprites.json</TracksInputFile>
<DataOutputPath Condition="'$(DataOutputPath)' == ''">$(OutDir)data\</DataOutputPath>
</PropertyGroup>
<!-- File Group Definitions -->
<ItemGroup>
<G2Input Include="$(G2InputFile)" />
<FontsInput Include="$(FontsInputFile)" />
<TracksInput Include="$(TracksInputFile)" />
<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"
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="Build"
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="Build"
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="BuildG2"
AfterTargets="Build"
Inputs="@(G2Input)"
Outputs="$(DataOutputPath)g2.dat"
Condition="'$(TestConfig)' != 'true' and ('$(Platform)' != 'ARM64' or '$(PROCESSOR_ARCHITECTURE)' == 'ARM64')">
<MakeDir Directories="$(DataOutputPath)" />
<Exec Command="&quot;$(GraphicsCLIPath)&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>
<Target Name="g2" DependsOnTargets="BuildG2" />
<Target Name="BuildFonts"
AfterTargets="Build"
Inputs="@(FontsInput)"
Outputs="$(DataOutputPath)fonts.dat"
Condition="'$(TestConfig)' != 'true' and ('$(Platform)' != 'ARM64' or '$(PROCESSOR_ARCHITECTURE)' == 'ARM64')">
<MakeDir Directories="$(DataOutputPath)" />
<Exec Command="&quot;$(GraphicsCLIPath)&quot; sprite build &quot;$(DataOutputPath)fonts.dat&quot; &quot;%(FontsInput.FullPath)&quot;"
ConsoleToMSBuild="true"
IgnoreExitCode="false">
<Output TaskParameter="ConsoleOutput" PropertyName="FontsBuildOutput" />
</Exec>
<Touch Files="$(DataOutputPath)fonts.dat"
ForceTouch="true"
AlwaysCreate="true" />
</Target>
<Target Name="fonts" DependsOnTargets="BuildFonts" />
<Target Name="BuildTracks"
AfterTargets="Build"
Inputs="@(TracksInput)"
Outputs="$(DataOutputPath)tracks.dat"
Condition="'$(TestConfig)' != 'true' and ('$(Platform)' != 'ARM64' or '$(PROCESSOR_ARCHITECTURE)' == 'ARM64')">
<MakeDir Directories="$(DataOutputPath)" />
<Exec Command="&quot;$(GraphicsCLIPath)&quot; sprite build &quot;$(DataOutputPath)tracks.dat&quot; &quot;%(TracksInput.FullPath)&quot;"
ConsoleToMSBuild="true"
IgnoreExitCode="false">
<Output TaskParameter="ConsoleOutput" PropertyName="TracksBuildOutput" />
</Exec>
<Touch Files="$(DataOutputPath)tracks.dat"
ForceTouch="true"
AlwaysCreate="true" />
</Target>
<Target Name="tracks" DependsOnTargets="BuildTracks" />
</Project>