You've already forked UnrealEngineUWP
mirror of
https://github.com/izzy2lost/UnrealEngineUWP.git
synced 2026-03-26 18:15:20 -07:00
- Rename server assembly to HordeServer.dll/exe. - Change default port for server in installed builds to 13340. - Sign bundled tools in installer. [CL 31095585 by ben marsh in ue5-main branch]
266 lines
22 KiB
XML
266 lines
22 KiB
XML
<?xml version='1.0' ?>
|
|
<BuildGraph xmlns="http://www.epicgames.com/BuildGraph" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.epicgames.com/BuildGraph ../../../../Engine/Build/Graph/Schema.xsd" >
|
|
|
|
<Option Name="PreflightChange" DefaultValue="" Description="Preflight changelist number"/>
|
|
<Option Name="Configuration" DefaultValue="release" Description="Configuration to build"/>
|
|
<Option Name="SignServerToolsAgent" DefaultValue="" Description="Whether to sign the agent included with server tools"/>
|
|
<Option Name="HordeDashboardConfig" DefaultValue="Production" Description="Whether to build a development or production dashboard"/>
|
|
|
|
<Property Name="EngineDir" Value="$(RootDir)/Engine"/>
|
|
|
|
<Property Name="WixDir" Value="$(RootDir)/Engine/Source/ThirdParty/WiX/3.8"/>
|
|
<Property Name="UgsDir" Value="$(RootDir)/Engine/Source/Programs/UnrealGameSync"/>
|
|
|
|
<Property Name="Version" Value="$(EngineMajorVersion).$(EngineMinorVersion).$(EnginePatchVersion)"/>
|
|
<Property Name="InformationalVersion" Value="$(Version)-$(Change)"/>
|
|
<Property Name="InformationalVersion" Value="$(InformationalVersion)-PF-$(PreflightChange)" If="'$(PreflightChange)' != ''"/>
|
|
<Property Name="VersionArguments" Value="/p:Version=$(Version).0 /p:InformationalVersion=$(InformationalVersion)"/>
|
|
|
|
<Property Name="DotNetPath" Value=""/>
|
|
<Property Name="DotNetPath" Value="$(RootDir)/Engine/Binaries/ThirdParty/DotNet/8.0.100/windows/dotnet.exe" If="$(HostPlatform) == 'Win64'"/>
|
|
<Property Name="DotNetPath" Value="$(RootDir)/Engine/Binaries/ThirdParty/DotNet/8.0.100/linux/dotnet" If="$(HostPlatform) == 'Linux'"/>
|
|
|
|
<!-- SERVER -->
|
|
|
|
<Agent Name="HordeServer" Type="Linux;Win64_Docker">
|
|
<Property Name="StagingDir" Value="$(RootDir)/Engine/Saved/Horde.Server"/>
|
|
<Property Name="StagePaths">
|
|
Engine/Binaries/DotNET/EpicGames.Perforce.Native/...
|
|
Engine/Source/Programs/Shared/...
|
|
Engine/Source/Programs/Horde/...
|
|
Engine/Source/Programs/AutomationTool/AutomationUtils/Matchers/...
|
|
Engine/Source/Programs/UnrealBuildTool/Matchers/...
|
|
</Property>
|
|
|
|
<Node Name="Check Documentation">
|
|
<CheckMarkdown Files="$(RootDir)/Engine/Source/Programs/Horde/README.md;$(RootDir)/Engine/Source/Programs/Horde/Docs/..."/>
|
|
</Node>
|
|
|
|
<Node Name="Analyze HordeServer" Requires="Check Documentation">
|
|
<DotNet Arguments="build "$(RootDir)/Engine/Source/Programs/Horde/Horde.Server/Horde.Server.csproj" /p:Configuration=Analyze $(VersionArguments)" DotNetPath="$(DotNetPath)"/>
|
|
<DotNet Arguments="build "$(RootDir)/Engine/Source/Programs/Horde/Horde.Server.Tests/Horde.Server.Tests.csproj" /p:Configuration=Analyze $(VersionArguments)" DotNetPath="$(DotNetPath)"/>
|
|
</Node>
|
|
|
|
<Node Name="Check HordeServer Licenses" Requires="Analyze HordeServer">
|
|
<Property Name="IgnorePackages">
|
|
NETStandard.Library@2.0.0
|
|
Serilog.Enrichers.OpenTracing@0.0.2
|
|
SharpCompress@0.30.1
|
|
</Property>
|
|
<NuGet-LicenseCheck BaseDir="Engine/Source/Programs/Horde/Horde.Server" IgnorePackages="$(IgnorePackages)" LicenseDir="Engine/Source/Programs/Horde/ThirdParty/Licenses" DotNetPath="$(DotNetPath)"/>
|
|
</Node>
|
|
|
|
<Node Name="Build HordeServer" Requires="Check HordeServer Licenses">
|
|
<!-- Tag all the files that need to be staged to build -->
|
|
<Tag Files="$(StagePaths)" Except=".../.vs/...;.../.git/...;.../bin/...;.../obj/..." With="#InputFiles"/>
|
|
|
|
<!-- Build the Docker image and publish it -->
|
|
<Docker-Build BaseDir="Engine" Files="#InputFiles" Tag="hordeserver-public" DockerFile="Engine/Source/Programs/Horde/Horde.Server/Dockerfile" Arguments="--build-arg msbuild_args="$(VersionArguments)""/>
|
|
</Node>
|
|
|
|
<Node Name="Test HordeServer Code Coverage">
|
|
<!-- Tag all the files that need to be staged to build -->
|
|
<Tag Files="$(StagePaths)" Except=".../.vs/...;.../.git/...;.../bin/...;.../obj/..." With="#InputFiles"/>
|
|
|
|
<!-- Build the Docker image and publish it -->
|
|
<Docker-Build BaseDir="Engine" Files="#InputFiles" Tag="hordeserver-codecov" UseBuildKit="true" Target="build-env-output" Output="type=local,dest=/tmp/docker-output" DockerFile="Engine/Source/Programs/Horde/Horde.Server/Dockerfile" Arguments="--build-arg msbuild_args="$(VersionArguments)" --build-arg code_coverage="true"" />
|
|
<Copy From="/tmp/docker-output/dotcover-report.zip" To="$(RootDir)/Engine/Programs/AutomationTool/Saved/Logs/dotcover-report.zip" />
|
|
</Node>
|
|
</Agent>
|
|
|
|
<!-- DASHBOARD -->
|
|
|
|
<Agent Name="HordeDashboard" Type="Linux;Win64_Docker">
|
|
<Property Name="DashboardVersion" Value="Unversioned"/>
|
|
<Property Name="DashboardVersion" Value="CL-$(Change)" If="'$(Change)' != ''"/>
|
|
<Property Name="DashboardVersion" Value="$(DashboardVersion)-PF-$(PreflightChange)" If="'$(PreflightChange)' != ''" />
|
|
|
|
<Node Name="Build HordeDashboard">
|
|
<Copy From="Engine/Source/Programs/Horde/Docs/..." To="Engine/Source/Programs/Horde/HordeDashboard/documentation/Docs/..."/>
|
|
<Copy From="Engine/Source/Programs/Horde/README.md" To="Engine/Source/Programs/Horde/HordeDashboard/documentation/README.md"/>
|
|
<Tag Files="Engine/Source/Programs/Horde/HordeDashboard/..." Except="Engine/Source/Programs/Horde/HordeDashboard/node_modules/..." With="#InputFiles"/>
|
|
|
|
<!-- Build the dashboard Docker image and publish it -->
|
|
<Docker-Build BaseDir="Engine" Files="#InputFiles" Tag="hordedashboard-public" DockerFile="Engine/Source/Programs/Horde/HordeDashboard/Dockerfile" Arguments="--build-arg "VersionInfo=$(DashboardVersion)" --build-arg "DashboardConfig=$(HordeDashboardConfig)""/>
|
|
</Node>
|
|
</Agent>
|
|
|
|
<!-- INSTALLER -->
|
|
|
|
<Property Name="InstallerDir" Value="$(RootDir)/Engine/Source/Programs/Horde/Installer"/>
|
|
<Property Name="InstallerConfig" Value="Debug"/>
|
|
<Property Name="InstallerOutputDir" Value="$(RootDir)/Engine/Source/Programs/Horde/Installer/bin/$(InstallerConfig)"/>
|
|
|
|
<Property Name="ServerToolsStagingDir" Value="$(RootDir)/Staging/ServerTools"/>
|
|
<Property Name="ServerToolsStagingDir_HordeCmd" Value="$(ServerToolsStagingDir)/HordeCmd"/>
|
|
<Property Name="ServerToolsStagingDir_HordeAgent" Value="$(ServerToolsStagingDir)/HordeAgent"/>
|
|
<Property Name="ServerToolsStagingDir_HordeAgentMsi" Value="$(ServerToolsStagingDir)/HordeAgentMsi"/>
|
|
<Property Name="ServerToolsStagingDir_P4VUtils" Value="$(ServerToolsStagingDir)/P4VUtils"/>
|
|
<Property Name="ServerToolsStagingDir_UnrealGameSync" Value="$(ServerToolsStagingDir)/UnrealGameSync"/>
|
|
<Property Name="ServerToolsStagingDir_UnrealGameSyncCmd" Value="$(ServerToolsStagingDir)/UnrealGameSyncCmd"/>
|
|
<Property Name="ServerToolsStagingDir_UnrealGameSyncMsi" Value="$(ServerToolsStagingDir)/UnrealGameSyncMsi"/>
|
|
|
|
<Agent Name="HordeInstallerTools" Type="LicenseeWin64;Win64">
|
|
<Node Name="Build HordeCmd" Produces="#HordeCmdFiles">
|
|
<Delete Files="$(ServerToolsStagingDir_HordeCmd)/..."/>
|
|
<DotNet Arguments="publish "$(RootDir)/Engine/Source/Programs/Horde/Horde/Horde.csproj" --output "$(ServerToolsStagingDir_HordeCmd)" --runtime win-x64 --self-contained $(VersionArguments)" DotNetPath="$(DotNetPath)" />
|
|
<Sign Files="$(ServerToolsStagingDir_HordeCmd)/Horde.exe;$(ServerToolsStagingDir_HordeCmd)/EpicGames.*.dll" If="'$(SignServerToolsAgent)' == 'true'"/>
|
|
<Tag Files="$(ServerToolsStagingDir_HordeCmd)/..." With="#HordeCmdFiles"/>
|
|
</Node>
|
|
<Node Name="Build HordeAgent" Produces="#HordeAgentFiles">
|
|
<Delete Files="$(ServerToolsStagingDir_HordeAgent)/..."/>
|
|
<DotNet Arguments="publish "$(RootDir)/Engine/Source/Programs/Horde/Horde.Agent/Horde.Agent.csproj" --output "$(ServerToolsStagingDir_HordeAgent)" $(VersionArguments)"/>
|
|
<Sign Files="$(ServerToolsStagingDir_HordeAgent)/HordeAgent.exe;$(ServerToolsStagingDir_HordeAgent)/EpicGames.*.dll" If="'$(SignServerToolsAgent)' == 'true'"/>
|
|
<Tag Files="$(ServerToolsStagingDir_HordeAgent)/..." With="#HordeAgentFiles"/>
|
|
</Node>
|
|
<Node Name="Build P4VUtils" Produces="#P4VUtilsFiles">
|
|
<Delete Files="$(ServerToolsStagingDir_P4VUtils)/..."/>
|
|
<DotNet Arguments="publish "$(RootDir)/Engine/Extras/P4VUtils/P4VUtils.csproj" --configuration Release --runtime win-x64 --self-contained --output "$(ServerToolsStagingDir_P4VUtils)" /p:IsWindows=true /p:IsOSX=false /p:IsLinux=false /p:WithRestricted=false $(VersionArguments)"/>
|
|
<Tag Files="$(ServerToolsStagingDir_P4VUtils)/..." With="#P4VUtilsFiles"/>
|
|
</Node>
|
|
<Node Name="Build UnrealGameSync" Produces="#UnrealGameSyncFiles">
|
|
<Delete Files="$(ServerToolsStagingDir_UnrealGameSync)/..."/>
|
|
<DotNet Arguments="publish "$(UgsDir)/UnrealGameSyncCmd/UnrealGameSyncCmd.csproj" --output="$(ServerToolsStagingDir_UnrealGameSync)" --self-contained -c Release -r win-x64 $(VersionArguments)"/>
|
|
<DotNet Arguments="publish "$(UgsDir)/UnrealGameSync/UnrealGameSync.csproj" --output="$(ServerToolsStagingDir_UnrealGameSync)" --self-contained -c Release -r win-x64 $(VersionArguments)"/>
|
|
<Sign Files="$(ServerToolsStagingDir_UnrealGameSync)/UnrealGameSync.exe;$(ServerToolsStagingDir_UnrealGameSync)/ugs.exe;$(ServerToolsStagingDir_UnrealGameSync)/EpicGames.*.dll" If="'$(SignServerToolsAgent)' == 'true'"/>
|
|
<Tag Files="$(ServerToolsStagingDir_UnrealGameSync)/..." With="#UnrealGameSyncFiles"/>
|
|
</Node>
|
|
<Node Name="Build UnrealGameSync Cmd" Produces="#UnrealGameSyncCmdFiles">
|
|
<Delete Files="$(ServerToolsStagingDir_UnrealGameSyncCmd)/..."/>
|
|
<DotNet Arguments="publish "$(UgsDir)/UnrealGameSyncCmd/UnrealGameSyncCmd.csproj" --output="$(ServerToolsStagingDir_UnrealGameSyncCmd)" --no-self-contained -c Release -r osx-x64 $(VersionArguments)"/>
|
|
<DotNet Arguments="publish "$(UgsDir)/UnrealGameSyncCmd/UnrealGameSyncCmd.csproj" --output="$(ServerToolsStagingDir_UnrealGameSyncCmd)" --no-self-contained -c Release -r linux-x64 $(VersionArguments)"/>
|
|
<DotNet Arguments="publish "$(UgsDir)/UnrealGameSyncCmd/UnrealGameSyncCmd.csproj" --output="$(ServerToolsStagingDir_UnrealGameSyncCmd)" --no-self-contained -c Release -r win-x64 $(VersionArguments)"/>
|
|
<Tag Files="$(ServerToolsStagingDir_UnrealGameSyncCmd)/..." With="#UnrealGameSyncCmdFiles"/>
|
|
</Node>
|
|
<Node Name="Build UnrealGameSync Msi" Requires="Build UnrealGameSync" Produces="#UnrealGameSyncMsiFiles">
|
|
<Property Name="UgsInstallerDir" Value="$(RootDir)/Engine/Source/Programs/UnrealGameSync/Installer"/>
|
|
<Property Name="UgsPublishDir" Value="$(ServerToolsStagingDir_UnrealGameSync)"/>
|
|
|
|
<Spawn Exe="$(WixDir)/heat.exe" Arguments="dir "$(UgsPublishDir)" -cg UGSLauncher_Project -dr INSTALLFOLDER -scom -sreg -srd -var var.BasePath -gg -sfrag -out obj/Release/UGSLauncher.wxs" WorkingDir="$(UgsInstallerDir)"/>
|
|
<Spawn Exe="$(WixDir)/candle.exe" Arguments="-dBasePath="$(UgsPublishDir)" -out obj\Release\ -dConfiguration=Release -dPlatform=x64 -arch x86 -ext ..\..\..\ThirdParty\WiX\3.8\WixUtilExtension.dll Product.wxs obj/Release/UGSLauncher.wxs" WorkingDir="$(UgsInstallerDir)"/>
|
|
<Spawn Exe="$(WixDir)/light.exe" Arguments="-out "bin/Release/UnrealGameSync.msi" -pdbout "bin/Release/UnrealGameSync.wixpdb" -cultures:null -ext ..\..\..\ThirdParty\WiX\3.8\WixUtilExtension.dll -sice:ICE69 "obj\Release\Product.wixobj" "obj\Release\UGSLauncher.wixobj"" WorkingDir="$(UgsInstallerDir)"/>
|
|
|
|
<Sign Files="$(UgsInstallerDir)/bin/Release/UnrealGameSync.msi" Description="UnrealGameSync" If="'$(SignServerToolsAgent)' == 'true'"/>
|
|
<Copy From="$(UgsInstallerDir)/bin/Release/UnrealGameSync.msi" To="$(ServerToolsStagingDir_UnrealGameSyncMsi)/UnrealGameSync.msi" Tag="#UnrealGameSyncMsiFiles"/>
|
|
</Node>
|
|
|
|
</Agent>
|
|
|
|
<Agent Name="HordeInstallerDashboard" Type="Linux">
|
|
<Property Name="StagingDir" Value="$(RootDir)/Staging"/>
|
|
<Property Name="DashboardVersion" Value="Unversioned"/>
|
|
<Property Name="DashboardVersion" Value="CL-$(Change)" If="'$(Change)' != ''"/>
|
|
<Property Name="DashboardVersion" Value="$(DashboardVersion)-PF-$(PreflightChange)" If="'$(PreflightChange)' != ''" />
|
|
|
|
<Node Name="Stage Horde Installer Dashboard" Produces="#DashboardOutputFiles">
|
|
<Delete Files="$(StagingDir)/Dashboard/..."/>
|
|
<WriteTextFile File="$(StagingDir)/Dashboard/index.html" Text="placeholder"/>
|
|
|
|
<!-- Build the dashboard -->
|
|
<Tag Files="Engine/Source/Programs/Horde/HordeDashboard/..." With="#DashboardInputFiles"/>
|
|
<Docker-Build BaseDir="Engine/Source" Files="#DashboardInputFiles" Tag="hordedashboard:installer" DockerFile="Engine/Source/Programs/Horde/HordeDashboard/installer/Dockerfile" Arguments="--build-arg "VersionInfo=$(DashboardVersion)" --build-arg "DashboardConfig=$(HordeDashboardConfig)""/>
|
|
|
|
<!-- Create a container from the image that can copy files from, note that this does not start the container -->
|
|
<Docker Arguments="create --name horde-installer-container hordedashboard:installer"/>
|
|
|
|
<!-- Copy the dashboard build to the server -->
|
|
<Docker Arguments="cp horde-installer-container:app/Dashboard/build/. "$(StagingDir)/Dashboard""/>
|
|
|
|
<!-- Remove the container now that files are copied -->
|
|
<Docker Arguments="rm horde-installer-container"/>
|
|
|
|
<!-- Copy the Horde documentation to the root folder -->
|
|
<Copy From="$(RootDir)/Engine/Source/Programs/Horde/Docs/..." To="$(StagingDir)/Dashboard/documentation/Docs/..."/>
|
|
<Copy From="$(RootDir)/Engine/Source/Programs/Horde/README.md" To="$(StagingDir)/Dashboard/documentation/README.md"/>
|
|
|
|
<Tag Files="$(StagingDir)/Dashboard/..." With="#DashboardOutputFiles"/>
|
|
</Node>
|
|
</Agent>
|
|
|
|
<Agent Name="HordeInstaller" Type="Win64;CompileWin64">
|
|
<Property Name="StagingDir" Value="$(RootDir)/Staging"/>
|
|
<Property Name="ObjDir" Value="obj/$(InstallerConfig)"/>
|
|
<Property Name="BinDir" Value="bin/$(InstallerConfig)"/>
|
|
<Property Name="CommonArgs" Value="-dConfiguration=$(InstallerConfig) -dPlatform=x64 -arch x64"/>
|
|
|
|
<Node Name="Build Horde Agent Installer" Produces="#HordeAgentMsiFiles">
|
|
|
|
<!-- Build all the required projects -->
|
|
<Delete Files="$(StagingDir)/Agent/..."/>
|
|
<DotNet Arguments="publish "$(RootDir)/Engine/Source/Programs/Horde/Horde.Agent/Horde.Agent.csproj" --output "$(StagingDir)/Agent" --runtime win7-x64 --self-contained $(VersionArguments)"/>
|
|
<DotNet Arguments="publish "$(RootDir)/Engine/Source/Programs/Horde/Horde.Agent.TrayApp/Horde.Agent.TrayApp.csproj" --output "$(StagingDir)/Agent" --runtime win7-x64 --self-contained $(VersionArguments)"/>
|
|
|
|
<!-- Create the agent file list -->
|
|
<Delete Files="$(StagingDir)/Agent-Bulk/..."/>
|
|
<Tag Files="$(StagingDir)/Agent/..." Except="HordeAgent.exe;Horde.Agent.TrayApp.exe" With="#AgentFiles"/>
|
|
<Copy Files="#AgentFiles" From="$(StagingDir)" To="$(StagingDir)/Agent-Bulk"/>
|
|
|
|
<Spawn Exe="$(WixDir)/heat.exe" Arguments="dir "$(StagingDir)/Agent-Bulk" -cg HordeAgentFiles -scom -sreg -gg -dr InstallDir -srd -var var.SourceDir -out "$(InstallerDir)/HordeAgentFiles.wxs""/>
|
|
<Spawn Exe="$(WixDir)/candle.exe" Arguments="$(CommonArgs) HordeAgentFiles.wxs -dSourceDir="$(StagingDir)" -out "$(ObjDir)/HordeAgentFiles.wixobj"" WorkingDir="$(InstallerDir)"/>
|
|
|
|
<!-- Main component -->
|
|
<Spawn Exe="$(WixDir)/candle.exe" Arguments="$(CommonArgs) AgentInstaller.wxs -dStagingDir="$(StagingDir)" -out "$(ObjDir)/AgentInstaller.wixobj" -ext WixUtilExtension" WorkingDir="$(InstallerDir)"/>
|
|
<Spawn Exe="$(WixDir)/light.exe" Arguments="-out "$(BinDir)/HordeAgent.msi" -sw1076 -pdbout "$(BinDir)/HordeAgent.pdb" "$(ObjDir)/AgentInstaller.wixobj" "$(ObjDir)/HordeAgentFiles.wixobj" -ext WixUtilExtension -ext WixUIExtension" WorkingDir="$(InstallerDir)"/>
|
|
|
|
<!-- We need to sign here as will be included in the server msi -->
|
|
<Sign Files="$(InstallerOutputDir)/HordeAgent.msi" Description="Horde Agent" If="'$(SignServerToolsAgent)' == 'true'"/>
|
|
|
|
<!-- Copy files to the output directory -->
|
|
<Copy Files="HordeAgent.msi" From="$(InstallerOutputDir)" To="$(ServerToolsStagingDir_HordeAgentMsi)"/>
|
|
<Tag Files="$(ServerToolsStagingDir_HordeAgentMsi)/..." With="#HordeAgentMsiFiles"/>
|
|
|
|
</Node>
|
|
|
|
<Node Name="Stage Horde Server Installer" Requires="#DashboardOutputFiles;#HordeCmdFiles;#HordeAgentFiles;#HordeAgentMsiFiles;#P4VUtilsFiles;#UnrealGameSyncFiles;#UnrealGameSyncCmdFiles;#UnrealGameSyncMsiFiles;">
|
|
|
|
<!-- Stage the server -->
|
|
<Delete Files="$(StagingDir)/Server/..."/>
|
|
<DotNet Arguments="publish "$(RootDir)/Engine/Source/Programs/Horde/Horde.Server/Horde.Server.csproj" --output "$(StagingDir)/Server" --runtime win-x64 --self-contained $(VersionArguments)" DotNetPath="$(DotNetPath)" />
|
|
|
|
<!-- Add the bundled tools into the installer -->
|
|
<DotNet Arguments="run --project "$(RootDir)/Engine/Source/Programs/Horde/Horde.Server/Horde.Server.csproj" -- generate tooldata -id=horde-cmd -name="Horde (Command-Line)" -description="Command-line tool for interacting with the Horde Server." -version="$(InformationalVersion)" -inputdir="$(ServerToolsStagingDir_HordeCmd)" -serverdir="$(StagingDir)/Server"" DotNetPath="$(DotNetPath)" />
|
|
<DotNet Arguments="run --project "$(RootDir)/Engine/Source/Programs/Horde/Horde.Server/Horde.Server.csproj" -- generate tooldata -id=horde-agent -name="Horde Agent" -description="Horde Agent software for Windows, MacOS and Linux. Allows hosts to take on work from the Horde Server." -version="$(InformationalVersion)" -inputdir="$(ServerToolsStagingDir_HordeAgent)" -serverdir="$(StagingDir)/Server"" DotNetPath="$(DotNetPath)" />
|
|
<DotNet Arguments="run --project "$(RootDir)/Engine/Source/Programs/Horde/Horde.Server/Horde.Server.csproj" -- generate tooldata -id=horde-agent-msi -name="Horde Agent (Windows Installer)" -description="MSI Installer for the Horde Agent on Windows, with tray application." -version="$(InformationalVersion)" -inputdir="$(ServerToolsStagingDir_HordeAgentMsi)" -serverdir="$(StagingDir)/Server"" DotNetPath="$(DotNetPath)" />
|
|
<DotNet Arguments="run --project "$(RootDir)/Engine/Source/Programs/Horde/Horde.Server/Horde.Server.csproj" -- generate tooldata -id=p4v-utils -name="P4V Extensions" -description="Extensions for the Perforce Helix Visual Client. Typically distributed via UnrealGameSync." -version="$(InformationalVersion)" -inputdir="$(ServerToolsStagingDir_P4VUtils)" -serverdir="$(StagingDir)/Server"" DotNetPath="$(DotNetPath)" />
|
|
<DotNet Arguments="run --project "$(RootDir)/Engine/Source/Programs/Horde/Horde.Server/Horde.Server.csproj" -- generate tooldata -id=ugs -name="UnrealGameSync" -description="Application to assist syncing data from Perforce." -version="$(InformationalVersion)" -inputdir="$(ServerToolsStagingDir_UnrealGameSync)" -serverdir="$(StagingDir)/Server"" DotNetPath="$(DotNetPath)" />
|
|
<DotNet Arguments="run --project "$(RootDir)/Engine/Source/Programs/Horde/Horde.Server/Horde.Server.csproj" -- generate tooldata -id=ugs-cmd -name="UnrealGameSync (Command-Line)" -description="Command-line version of UnrealGameSync. Supports Windows, MacOS and Linux." -version="$(InformationalVersion)" -inputdir="$(ServerToolsStagingDir_UnrealGameSyncCmd)" -serverdir="$(StagingDir)/Server"" DotNetPath="$(DotNetPath)" />
|
|
<DotNet Arguments="run --project "$(RootDir)/Engine/Source/Programs/Horde/Horde.Server/Horde.Server.csproj" -- generate tooldata -id=ugs-msi -name="UnrealGameSync (Windows Installer)" -description="Installer for UnrealGameSync." -version="$(InformationalVersion)" -inputdir="$(ServerToolsStagingDir_UnrealGameSyncMsi)" -serverdir="$(StagingDir)/Server"" DotNetPath="$(DotNetPath)" />
|
|
|
|
<!-- Separate copy of the command line tool for installation with the server on Windows -->
|
|
<Delete Files="$(StagingDir)/Tools/..."/>
|
|
<DotNet Arguments="publish "$(RootDir)/Engine/Source/Programs/Horde/Horde/Horde.csproj" --output "$(StagingDir)/Tools" --runtime win-x64 --self-contained $(VersionArguments)" DotNetPath="$(DotNetPath)" />
|
|
|
|
<!-- Copy the Dashboard -->
|
|
<Copy Files="#DashboardOutputFiles" From="$(StagingDir)/Dashboard/..." To="$(StagingDir)/Server/DashboardApp/..." />
|
|
|
|
</Node>
|
|
|
|
<Node Name="Build Horde Server Installer" Requires="Stage Horde Server Installer">
|
|
|
|
<!-- Create the tools file list -->
|
|
<Delete Files="$(StagingDir)/Tools-Bulk/..."/>
|
|
<Tag Files="$(StagingDir)/Tools/..." With="#ToolsFiles"/>
|
|
<Copy Files="#ToolsFiles" From="$(StagingDir)" To="$(StagingDir)/Tools-Bulk"/>
|
|
|
|
<Spawn Exe="$(WixDir)/heat.exe" Arguments="dir "$(StagingDir)/Tools-Bulk" -cg HordeToolsFiles -scom -sreg -gg -dr InstallDir -srd -var var.SourceDir -out "$(InstallerDir)/HordeToolsFiles.wxs""/>
|
|
<Spawn Exe="$(WixDir)/candle.exe" Arguments="$(CommonArgs) HordeToolsFiles.wxs -dSourceDir="$(StagingDir)" -out $(ObjDir)/HordeToolsFiles.wixobj" WorkingDir="$(InstallerDir)"/>
|
|
|
|
<!-- Create the server file list -->
|
|
<Delete Files="$(StagingDir)/Server-Bulk/..."/>
|
|
<Tag Files="$(StagingDir)/Server/..." Except="HordeServer.exe" With="#ServerFiles"/>
|
|
<Copy Files="#ServerFiles" From="$(StagingDir)" To="$(StagingDir)/Server-Bulk"/>
|
|
|
|
<Spawn Exe="$(WixDir)/heat.exe" Arguments="dir "$(StagingDir)/Server-Bulk" -cg HordeServerFiles -scom -sreg -gg -dr InstallDir -srd -var var.SourceDir -out "$(InstallerDir)/HordeServerFiles.wxs""/>
|
|
<Spawn Exe="$(WixDir)/candle.exe" Arguments="$(CommonArgs) HordeServerFiles.wxs -dSourceDir="$(StagingDir)" -out $(ObjDir)/HordeServerFiles.wixobj" WorkingDir="$(InstallerDir)"/>
|
|
|
|
<!-- Main component -->
|
|
<Spawn Exe="$(WixDir)/candle.exe" Arguments="$(CommonArgs) ServerInstaller.wxs -dStagingDir="$(StagingDir)" -out $(ObjDir)/ServerInstaller.wixobj -ext WixUtilExtension" WorkingDir="$(InstallerDir)"/>
|
|
<Spawn Exe="$(WixDir)/light.exe" Arguments="-out $(BinDir)/HordeServer.msi -sw1076 -pdbout $(BinDir)/HordeServer.pdb $(ObjDir)/ServerInstaller.wixobj $(ObjDir)/HordeServerFiles.wixobj $(ObjDir)/HordeToolsFiles.wixobj -ext WixUtilExtension -ext WixUIExtension" WorkingDir="$(InstallerDir)"/>
|
|
|
|
<Copy Files="HordeServer.msi" From="$(InstallerOutputDir)" To="$(StagingDir)/Server-Installer"/>
|
|
</Node>
|
|
|
|
</Agent>
|
|
|
|
</BuildGraph>
|