2023-07-19 12:02:37 -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 ../Schema.xsd" >
<!-- Project Options -->
2023-07-21 16:27:48 -04:00
<Option Name= "ProjectFile" DefaultValue= "_Unknown_" Restrict= ".+" Description= "The projects to cook" />
<Option Name= "ProjectName" DefaultValue= "_Unknown_" Restrict= ".+" Description= "The projects to cook" />
<Option Name= "EditorTarget" DefaultValue= "$(ProjectName)Editor" Description= "Compile name of the editor target" />
2023-07-19 12:02:37 -04:00
<!-- Note we can not make the default='', because the default is used for some validation. -->
2023-07-21 16:27:48 -04:00
<Error Message= "No project file specified" If= "'$(ProjectFile)' == '_Unknown_'" />
<Error Message= "No project name specified" If= "'$(ProjectName)' == '_Unknown_'" />
2023-07-19 12:02:37 -04:00
<!-- Platform Options -->
<Option Name= "TargetPlatform" DefaultValue= "Windows" Restrict= ".+" Description= "The platform to cook" />
2023-07-25 13:11:47 -04:00
<!-- Agent Options -->
<Option Name= "AgentType" DefaultValue= "" Description= "The platform to cook" />
<Property Name= "AgentType" Value= "IterativeValidateAgent_$(ProjectName)_$(TargetPlatform)" If= "'$(AgentType)' == ''" />
2023-07-19 12:02:37 -04:00
<!-- Iterative Options -->
<Option Name= "IterativeMode" DefaultValue= "incremental" Restrict= "iterative|incremental" Description= "Whether to iteratively cook using Incremental or using the legacy iterative" />
<Property Name= "IterativeArgs" Value= "-zenstore -ini:Editor:[CookSettings]:HybridIterativeEnabled=true" If= "'$(IterativeMode)' == 'incremental'" />
<Property Name= "IterativeArgs" Value= "-iterate -ini:Editor:[CookSettings]:HybridIterativeEnabled=false -ini:Editor:[CookSettings]:IterativeUseClassFilters=true" If= "'$(IterativeMode)' == 'iterative'" />
<!-- Agent=IterativeValidate variables -->
<Property Name= "EditorPlatform" Value= "Win64" />
2023-07-26 14:31:59 -04:00
<Property Name= "CommonCookArgs" Value= "-targetplatform=$(TargetPlatform) $(IterativeArgs) -skiponlyeditoronly=true" />
<!-- Force singleprocess cook because IterativeValidatePackageWriter includes data that is not replicated -->
<Property Name= "CommonCookArgs" Value= "$(CommonCookArgs) -cookprocesscount=1" />
2023-07-21 16:27:48 -04:00
<Property Name= "CompileNodeName" Value= "Compile $(EditorPlatform) $(ProjectName)" />
<Property Name= "CookIterativeValidatePrePassName" Value= "Cook IterativeValidatePrePass $(ProjectName) $(TargetPlatform)" />
<Property Name= "CookIterativeValidateName" Value= "Cook IterativeValidate $(ProjectName) $(TargetPlatform)" />
2023-07-19 12:02:37 -04:00
2023-07-25 13:11:47 -04:00
<Agent Name= "IterativeValidateAgent" Type= "$(AgentType)" >
2023-07-19 12:02:37 -04:00
<Node Name= "$(CompileNodeName)" >
2023-07-26 08:42:38 -04:00
<Compile Target= "ShaderCompileWorker" Platform= "$(EditorPlatform)" Project= "$(ProjectFile)" Configuration= "Development" />
2023-07-21 16:27:48 -04:00
<Compile Target= "$(EditorTarget)" Platform= "$(EditorPlatform)" Project= "$(ProjectFile)" Configuration= "Development" />
2023-07-19 12:02:37 -04:00
</Node>
<Node Name= "$(CookIterativeValidatePrePassName)" Requires= "$(CompileNodeName)" >
2023-07-21 16:27:48 -04:00
<Commandlet Name= "Cook" Project= "$(ProjectFile)" Arguments= "$(CommonCookArgs) -IterativeValidatePrePass" />
2023-07-19 12:02:37 -04:00
</Node>
<Node Name= "$(CookIterativeValidateName)" Requires= "$(CookIterativeValidatePrePassName)" >
2023-07-21 16:27:48 -04:00
<Commandlet Name= "Cook" Project= "$(ProjectFile)" Arguments= "$(CommonCookArgs) -IterativeValidate" />
2023-07-19 12:02:37 -04:00
</Node>
</Agent>
<Aggregate Name= "IterativeValidate" Requires= "$(CookIterativeValidateName)" />
</BuildGraph>