-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathDeployPackageToSteam.xml
More file actions
52 lines (40 loc) · 3.59 KB
/
DeployPackageToSteam.xml
File metadata and controls
52 lines (40 loc) · 3.59 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
<?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 ../Schema.xsd" >
<Property Name="AllDesktopPlatforms" Value="Mac+Windows+Linux" />
<Option Name="SteamAppID" DefaultValue="" Description="Steam AppID"/>
<Option Name="AgentType" DefaultValue="IncrementalWin64" Description="Agent Type"/>
<Option Name="PackageNetworkPath" DefaultValue="" Description="Network path where packages are sent. Should have Steam's installscript.vdf at its root. Can be a non-network path if needed as well."/>
<Property Name="TargetPlatforms" Value=""/>
<Option Name="WithWin64" DefaultValue="false" Description="Publish Windows (x64) build to Steam"/>
<Property Name="TargetPlatforms" Value="$(TargetPlatforms)+Windows" If="$(WithWin64) and !ContainsItem('$(TargetPlatforms)', 'Windows', '+')"/>
<Option Name="WithLinux" DefaultValue="false" Description="Publish Linux (x64) build to Steam"/>
<Property Name="TargetPlatforms" Value="$(TargetPlatforms)+Linux" If="$(WithLinux) and !ContainsItem('$(TargetPlatforms)', 'Linux', '+')"/>
<Option Name="WithMac" DefaultValue="false" Description="Publish Mac (x64, ARM) build to Steam"/>
<Property Name="TargetPlatforms" Value="$(TargetPlatforms)+Mac" If="$(WithMac) and !ContainsItem('$(TargetPlatforms)', 'Mac', '+')"/>
<Property Name="PublishNodes" Value=""/>
<ForEach Name="TargetPlatform" Values="$(TargetPlatforms)" Separator="+">
<Error Message="Steam only supports Windows, Mac, and Linux platforms." If="!ContainsItem('$(AllDesktopPlatforms)','$(TargetPlatform)','+')" />
<Property Name="PublishNodes" Value="$(PublishNodes);Prepare $(TargetPlatform)" If="'$(PublishNodes)' != '' and '$(TargetPlatform)' != ''"/>
<Property Name="PublishNodes" Value="Prepare $(TargetPlatform)" If="'$(PublishNodes)' == '' and '$(TargetPlatform)' != ''"/>
</ForEach>
<Agent Name="Prepare Install Scripts" Type="$(AgentType)">
<ForEach Name="TargetPlatform" Values="$(TargetPlatforms)" Separator="+">
<Node Name="Prepare $(TargetPlatform)">
<Copy Files="installscript.vdf" From="$(PackageNetworkPath)" To="$(PackageNetworkPath)/$(TargetPlatform)/Packages" />
</Node>
</ForEach>
</Agent>
<Agent Name="Publish" Type="$(AgentType)">
<ForEach Name="TargetPlatform" Values="$(TargetPlatforms)" Separator="+">
<Node Name="Publish $(TargetPlatform)" Requires="$(PublishNodes)">
<!-- We assume you've already signed in on the build account at least once to generate the login token. Also, Steamworks tools need to be in the depot. -->
<Spawn Exe="$(RootDir)/Engine/Binaries/ThirdParty/Steamworks/tools/ContentBuilder/builder/steamcmd.exe" Arguments="-skipinitialbootstrap +login $(STEAMWORKS_BUILD_NAME) +run_app_build $(RootDir)/Engine/Binaries/ThirdParty/Steamworks/tools/ContentBuilder/scripts/app_$(SteamAppID)_$(TargetPlatform).vdf +quit" WorkingDir="$(RootDir)/Engine/Binaries/ThirdParty/Steamworks/tools/ContentBuilder/"/>
</Node>
</ForEach>
</Agent>
<Aggregate Name="Publish" Requires="$(PublishNodes)">
<Label Name="Steam" Category="Storefronts" Requires="Publish"/>
<Label Name="Win64" Category="Platforms" Requires="Publish" If="$(WithWin64)"/>
<Label Name="Linux" Category="Platforms" Requires="Publish" If="$(WithLinux)"/>
<Label Name="Mac" Category="Platforms" Requires="Publish" If="$(WithMac)"/>
</BuildGraph>