2021-06-10 19:24:58 -04:00
<?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 ../../../Build/Graph/Schema.xsd" >
<Option Name= "PreflightChange" DefaultValue= "" Description= "Preflight changelist number" />
2021-06-10 21:40:41 -04:00
<Option Name= "SubmitToStream" DefaultValue= "" Description= "Stream to submit binaries to" />
<Option Name= "SubmitToBranch" DefaultValue= "" Description= "Branch to submit binaries to" />
<Option Name= "SubmitPath" DefaultValue= "" Description= "Relative path within the stream/branch to submit binaries" />
2023-02-09 10:24:36 -05:00
<Option Name= "IncludeInstaller" DefaultValue= "false" Description= "Whether to include the launcher installer in the regular client distribution" />
2023-03-03 13:13:27 -05:00
<Option Name= "HordeSettings" DefaultValue= "" Description= "Path to a JSON file containing settings for publishing to Horde" />
2024-01-29 17:04:48 -05:00
<Option Name= "HordeSettingsMac" DefaultValue= "" Description= "Path to a JSON file containing settings for publishing to Horde" />
2021-06-10 19:24:58 -04:00
<Property Name= "UgsDir" Value= "$(RootDir)/Engine/Source/Programs/UnrealGameSync" />
<Property Name= "UgsOutputDir" Value= "$(RootDir)/LocalBuilds/UnrealGameSync" />
2022-06-20 11:41:46 -04:00
<Property Name= "UgsZipOutputDir" Value= "$(RootDir)/LocalBuilds/UnrealGameSyncZip" />
2023-03-03 13:13:27 -05:00
<Property Name= "UgsCmdOutputDir" Value= "$(RootDir)/LocalBuilds/UnrealGameSyncCmd" />
2024-01-29 09:39:04 -05:00
<Property Name= "UgsCmdMacX64ZipFile" Value= "$(UgsCmdOutputDir)/ugs-mac-x64.zip" />
<Property Name= "UgsCmdMacX64OutputDir" Value= "$(UgsCmdOutputDir)/Mac-X64" />
<Property Name= "UgsCmdMacArm64ZipFile" Value= "$(UgsCmdOutputDir)/ugs-mac-arm64.zip" />
<Property Name= "UgsCmdMacArm64OutputDir" Value= "$(UgsCmdOutputDir)/Mac-Arm64" />
2023-03-13 13:41:26 -04:00
<Property Name= "UgsCmdLinuxZipFile" Value= "$(UgsCmdOutputDir)/ugs-linux.zip" />
2023-03-03 13:13:27 -05:00
<Property Name= "UgsCmdLinuxOutputDir" Value= "$(UgsCmdOutputDir)/Linux" />
2021-06-10 19:24:58 -04:00
<Property Name= "WixDir" Value= "$(RootDir)/Engine/Source/ThirdParty/WiX/3.8" />
<Property Name= "Version" Value= "$(EngineMajorVersion).$(EngineMinorVersion).$(EnginePatchVersion)" />
2021-06-10 21:40:41 -04:00
<Property Name= "InformationalVersion" Value= "$(EscapedBranch)-CL-$(Change)" />
2021-06-10 19:24:58 -04:00
<Property Name= "InformationalVersion" Value= "$(InformationalVersion)-PF-$(PreflightChange)" If= "'$(PreflightChange)' != ''" />
<Property Name= "VersionArguments" Value= "/p:Version=$(Version).0 /p:InformationalVersion=$(InformationalVersion)" />
<Agent Name= "UnrealGameSync Agent" Type= "Win64" >
2023-12-18 09:20:51 -05:00
<Property Name= "UgsInstallerDir" Value= "$(RootDir)/Engine/Source/Programs/UnrealGameSync/Installer" />
<Property Name= "UgsInstallerPublishDir" Value= "$(RootDir)/LocalBuilds/UnrealGameSyncInstaller" />
2023-02-09 10:24:36 -05:00
2021-06-10 21:40:41 -04:00
<Property Name= "UgsPublishDir" Value= "$(UgsOutputDir)" />
<Property Name= "UgsPublishDir" Value= "$(UgsPublishDir)/$(SubmitPath)" If= "'$(SubmitPath)' != ''" />
2022-06-20 11:41:46 -04:00
<Property Name= "UgsZipPublishDir" Value= "$(UgsZipOutputDir)" />
<Property Name= "UgsZipPublishDir" Value= "$(UgsZipPublishDir)/$(SubmitPath)" If= "'$(SubmitPath)' != ''" />
2023-02-09 10:24:36 -05:00
2023-12-07 15:01:34 -05:00
<Node Name= "Build UnrealGameSync" >
2021-06-10 19:24:58 -04:00
<Delete Files= "$(UgsOutputDir)/..." />
2022-12-07 20:18:05 -05:00
<DotNet Arguments= "publish "$(UgsDir)/UnrealGameSyncCmd/UnrealGameSyncCmd.csproj" --output="$(UgsPublishDir)" --no-self-contained -c Release -r osx-x64 $(VersionArguments)" />
<DotNet Arguments= "publish "$(UgsDir)/UnrealGameSyncCmd/UnrealGameSyncCmd.csproj" --output="$(UgsPublishDir)" --no-self-contained -c Release -r linux-x64 $(VersionArguments)" />
2023-02-28 22:07:42 -05:00
<DotNet Arguments= "publish "$(UgsDir)/UnrealGameSyncCmd/UnrealGameSyncCmd.csproj" --output="$(UgsPublishDir)" --self-contained -c Release -r win-x64 $(VersionArguments)" />
2023-02-27 12:48:58 -05:00
<DotNet Arguments= "publish "$(UgsDir)/UnrealGameSync/UnrealGameSync.csproj" --output="$(UgsPublishDir)" --self-contained -c Release -r win-x64 $(VersionArguments)" />
2023-12-07 15:01:34 -05:00
</Node>
<Node Name= "Build UnrealGameSync Installer" Requires= "Build UnrealGameSync" >
<Property Name= "WixDir" Value= "$(RootDir)/Engine/Source/ThirdParty/WiX/3.8" />
2023-12-18 09:20:51 -05:00
<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)" />
2023-12-07 15:01:34 -05:00
2023-12-18 09:20:51 -05:00
<Copy From= "$(UgsInstallerDir)/bin/Release/UnrealGameSync.msi" To= "$(UgsInstallerPublishDir)/UnrealGameSync.msi" />
2023-12-07 15:01:34 -05:00
</Node>
<Property Name= "InstallerDependency" Value= "" />
<Property Name= "InstallerDependency" Value= "Build UnrealGameSync Installer" If= "$(IncludeInstaller)" />
<Node Name= "Build UnrealGameSync Zip" Requires= "Build UnrealGameSync;$(InstallerDependency)" >
2023-12-18 09:20:51 -05:00
<Copy From= "$(UgsInstallerDir)/bin/Release/UnrealGameSync.msi" To= "$(UgsPublishDir)/UnrealGameSync.msi" If= "$(IncludeInstaller)" />
2023-12-07 15:01:34 -05:00
<Zip FromDir= "$(UgsPublishDir)" ZipFile= "$(UgsZipPublishDir)/Ugs.zip" />
2021-06-10 21:40:41 -04:00
</Node>
2023-12-05 13:29:07 -05:00
<!-- Windows (Preview) -->
2021-06-10 21:40:41 -04:00
<Node Name= "Publish Unstable" Requires= "Build UnrealGameSync" >
2023-03-13 15:04:28 -04:00
<Property Name= "UnstableBranch" Value= "" />
<Property Name= "UnstableBranch" Value= "$(SubmitToBranch)/UnstableRelease" If= "'$(SubmitToBranch)' != ''" />
<Submit Description= "Updating UGS from CL $(Change)" Workspace= "Temp" Files= "$(UgsPublishDir)/..." RootDir= "$(UgsOutputDir)" Stream= "$(SubmitToStream)" Branch= "$(UnstableBranch)" />
2021-06-10 21:40:41 -04:00
</Node>
2022-06-20 11:41:46 -04:00
<Node Name= "Publish Unstable Zip" Requires= "Build UnrealGameSync" >
<Zip FromDir= "$(UgsOutputDir)" ZipFile= "$(UgsZipPublishDir)/UnstableRelease.zip" />
<Submit Description= "Updating UGS from CL $(Change) (Zip)" Workspace= "Temp" Files= "$(UgsZipPublishDir)/UnstableRelease.zip" RootDir= "$(UgsZipOutputDir)" Stream= "$(SubmitToStream)" Branch= "$(SubmitToBranch)" />
</Node>
2023-12-05 13:29:07 -05:00
<!-- Windows (Regular) -->
2021-06-10 21:40:41 -04:00
<Node Name= "Publish Live" Requires= "Build UnrealGameSync" >
2023-03-13 15:04:28 -04:00
<Property Name= "ReleaseBranch" Value= "" />
<Property Name= "ReleaseBranch" Value= "$(SubmitToBranch)/Release" If= "'$(SubmitToBranch)' != ''" />
<Submit Description= "Updating UGS from CL $(Change)" Workspace= "Temp" Files= "$(UgsPublishDir)/..." RootDir= "$(UgsOutputDir)" Stream= "$(SubmitToStream)" Branch= "$(ReleaseBranch)" />
2021-06-10 19:24:58 -04:00
</Node>
2022-06-20 11:41:46 -04:00
<Node Name= "Publish Live Zip" Requires= "Build UnrealGameSync" >
<Zip FromDir= "$(UgsOutputDir)" ZipFile= "$(UgsZipPublishDir)/Release.zip" />
<Submit Description= "Updating UGS from CL $(Change) (Zip)" Workspace= "Temp" Files= "$(UgsZipPublishDir)/Release.zip" RootDir= "$(UgsZipOutputDir)" Stream= "$(SubmitToStream)" Branch= "$(SubmitToBranch)" />
</Node>
2023-12-05 13:29:07 -05:00
<Node Name= "Publish Live Horde" Requires= "Build UnrealGameSync" >
<Error Message= "Missing -HordeSettings=... argument" If= "'$(HordeSettings)' == ''" />
<DeployTool Id= "ugs-win" Version= "$(InformationalVersion)" Settings= "$(HordeSettings)" File= "$(UgsZipPublishDir)/Ugs.zip" />
</Node>
2023-03-03 13:13:27 -05:00
2023-12-05 13:29:07 -05:00
<!-- Linux -->
2023-03-03 13:13:27 -05:00
<Node Name= "Build UnrealGameSyncCmd Linux" >
<Delete Files= "$(UgsCmdLinuxOutputDir)/..." />
2023-03-06 18:02:51 -05:00
<DotNet Arguments= "publish "$(UgsDir)/UnrealGameSyncCmd/UnrealGameSyncCmd.csproj" --output="$(UgsCmdLinuxOutputDir)" --self-contained -c Release -r linux-x64 $(VersionArguments)" />
2023-03-13 14:29:12 -04:00
<Zip ZipFile= "$(UgsCmdLinuxZipFile)" FromDir= "$(UgsCmdLinuxOutputDir)" ExecutableFiles= "ugs;*.so;*.sh" />
2023-03-03 13:13:27 -05:00
</Node>
<Node Name= "Publish UnrealGameSyncCmd Linux" Requires= "Build UnrealGameSyncCmd Linux" >
<Error Message= "Missing -HordeSettings=... argument" If= "'$(HordeSettings)' == ''" />
2023-03-13 13:41:26 -04:00
<DeployTool Id= "ugs-linux" Version= "$(InformationalVersion)" Settings= "$(HordeSettings)" File= "$(UgsCmdLinuxZipFile)" />
2023-03-03 13:13:27 -05:00
</Node>
2021-06-10 19:24:58 -04:00
</Agent>
2021-11-09 11:51:37 -05:00
2024-01-29 17:04:48 -05:00
<Agent Name= "UnrealGameSync Mac Agent" Type= "Mac" >
<!-- Mac -->
<Node Name= "Build UnrealGameSyncCmd Mac-X64" >
<Delete Files= "$(UgsCmdMacX64OutputDir)/..." />
<DotNet Arguments= "publish "$(UgsDir)/UnrealGameSyncCmd/UnrealGameSyncCmd.csproj" --output="$(UgsCmdMacX64OutputDir)" --self-contained -c Release -r osx-x64 $(VersionArguments)" />
<Sign Files= "$(UgsCmdMacX64OutputDir)/ugs" />
<Zip ZipFile= "$(UgsCmdMacX64ZipFile)" FromDir= "$(UgsCmdMacX64OutputDir)" ExecutableFiles= "ugs;*.dylib;*.sh" />
</Node>
<Node Name= "Build UnrealGameSyncCmd Mac-Arm64" >
<Delete Files= "$(UgsCmdMacArm64OutputDir)/..." />
<DotNet Arguments= "publish "$(UgsDir)/UnrealGameSyncCmd/UnrealGameSyncCmd.csproj" --output="$(UgsCmdMacArm64OutputDir)" --self-contained -c Release -r osx-arm64 $(VersionArguments)" />
<Sign Files= "$(UgsCmdMacArm64OutputDir)/ugs" />
<Zip ZipFile= "$(UgsCmdMacArm64ZipFile)" FromDir= "$(UgsCmdMacArm64OutputDir)" ExecutableFiles= "ugs;*.dylib;*.sh" />
</Node>
<Node Name= "Publish UnrealGameSyncCmd Mac" Requires= "Build UnrealGameSyncCmd Mac-X64;Build UnrealGameSyncCmd Mac-Arm64" >
<Error Message= "Missing -HordeSettingsMac=... argument" If= "'$(HordeSettingsMac)' == ''" />
<DeployTool Id= "ugs-mac" Version= "$(InformationalVersion)" Settings= "$(HordeSettingsMac)" File= "$(UgsCmdMacX64ZipFile)" />
<DeployTool Id= "ugs-mac-arm64" Version= "$(InformationalVersion)" Settings= "$(HordeSettingsMac)" File= "$(UgsCmdMacArm64ZipFile)" />
</Node>
</Agent>
2022-06-20 11:55:39 -04:00
<Aggregate Name= "Publish Unstable With Zip" Requires= "Publish Unstable;Publish Unstable Zip" />
<Aggregate Name= "Publish Live With Zip" Requires= "Publish Live;Publish Live Zip" />
2021-06-10 19:24:58 -04:00
</BuildGraph>