public override void AddNodes(GUBP bp, GUBP.GUBPBranchConfig BranchConfig, UnrealTargetPlatform InHostPlatform, List <UnrealTargetPlatform> InActivePlatforms) { if (InHostPlatform == UnrealTargetPlatform.Win64 && !BranchConfig.BranchOptions.bNoDocumentation) { BranchConfig.AddNode(new ToolsForDocumentationNode(BranchConfig, InHostPlatform)); BranchConfig.AddNode(new CodeDocumentationNode(InHostPlatform)); BranchConfig.AddNode(new BlueprintDocumentationNode(InHostPlatform)); } }
public BuildDerivedDataCacheNode(GUBP.GUBPBranchConfig InBranchConfig, UnrealTargetPlatform InHostPlatform, string InTargetPlatforms, string[] InProjectNames) : base(InHostPlatform) { BranchConfig = InBranchConfig; TargetPlatforms = InTargetPlatforms; ProjectNames = InProjectNames; SavedDir = CommandUtils.CombinePaths(CommandUtils.CmdEnv.LocalRoot, "Engine", "Saved", "Rocket", HostPlatform.ToString()); SavedManifestPath = CommandUtils.CombinePaths(SavedDir, "DerivedDataCacheManifest.txt"); AddDependency(GUBP.RootEditorNode.StaticGetFullName(HostPlatform)); AddDependency(GUBP.ToolsNode.StaticGetFullName(HostPlatform)); }
public CompileNode(GUBP.GUBPBranchConfig InBranchConfig, UnrealTargetPlatform InHostPlatform, bool DependentOnCompileTools = true) : base(InHostPlatform) { BranchConfig = InBranchConfig; bDependentOnCompileTools = DependentOnCompileTools; if (DependentOnCompileTools) { AddDependency(ToolsForCompileNode.StaticGetFullName(HostPlatform)); } else { AddDependency(VersionFilesNode.StaticGetFullName()); } }
public VSExpressTestNode(GUBP.GUBPBranchConfig InBranchConfig) : base(UnrealTargetPlatform.Win64) { BranchConfig = InBranchConfig; AddDependency(ToolsForCompileNode.StaticGetFullName(UnrealTargetPlatform.Win64)); AddDependency(RootEditorNode.StaticGetFullName(UnrealTargetPlatform.Win64)); }
public IOSOnPCTestNode(GUBP.GUBPBranchConfig InBranchConfig) : base(UnrealTargetPlatform.Win64) { BranchConfig = InBranchConfig; AddDependency(ToolsForCompileNode.StaticGetFullName(UnrealTargetPlatform.Win64)); AddDependency(ToolsNode.StaticGetFullName(UnrealTargetPlatform.Win64)); AddPseudodependency(GamePlatformMonolithicsNode.StaticGetFullName(UnrealTargetPlatform.Mac, BranchConfig.Branch.BaseEngineProject, UnrealTargetPlatform.IOS)); }
public NonUnityTestNode(GUBP.GUBPBranchConfig InBranchConfig, UnrealTargetPlatform InHostPlatform) : base(InHostPlatform) { BranchConfig = InBranchConfig; AddPseudodependency(RootEditorNode.StaticGetFullName(HostPlatform)); }
public FormalBuildTestNode(GUBP.GUBPBranchConfig InBranchConfig, BranchInfo.BranchUProject InGameProj, UnrealTargetPlatform InHostPlatform, UnrealTargetPlatform InClientTargetPlatform, UnrealTargetConfiguration InClientConfig ) : base(InHostPlatform) { BranchConfig = InBranchConfig; GameProj = InGameProj; ClientTargetPlatform = InClientTargetPlatform; ClientConfig = InClientConfig; GameOrClient = TargetRules.TargetType.Game; // verify we actually built these var WorkingGameProject = InGameProj; if (!WorkingGameProject.Properties.Targets.ContainsKey(TargetRules.TargetType.Editor)) { // this is a codeless project, use the base project WorkingGameProject = BranchConfig.Branch.BaseEngineProject; } if (!WorkingGameProject.Properties.Targets.ContainsKey(GameOrClient)) { throw new AutomationException("Can't make a game build for {0} because it doesn't have a {1} target.", WorkingGameProject.GameName, GameOrClient.ToString()); } if (!WorkingGameProject.Properties.Targets[GameOrClient].Rules.GUBP_GetPlatforms_MonolithicOnly(HostPlatform).Contains(ClientTargetPlatform)) { throw new AutomationException("Can't make a game/client build for {0} because we didn't build platform {1}.", WorkingGameProject.GameName, ClientTargetPlatform.ToString()); } if (!WorkingGameProject.Properties.Targets[GameOrClient].Rules.GUBP_GetConfigs_MonolithicOnly(HostPlatform, ClientTargetPlatform).Contains(ClientConfig)) { throw new AutomationException("Can't make a game/client build for {0} because we didn't build platform {1} config {2}.", WorkingGameProject.GameName, ClientTargetPlatform.ToString(), ClientConfig.ToString()); } AddDependency(FormalBuildNode.StaticGetFullName(GameProj, HostPlatform, new List<UnrealTargetPlatform>() { ClientTargetPlatform }, InClientConfigs: new List<UnrealTargetConfiguration>() { ClientConfig }, InClientNotGame: GameOrClient == TargetRules.TargetType.Client)); }
public FormalBuildNode(GUBP.GUBPBranchConfig InBranchConfig, BranchInfo.BranchUProject InGameProj, UnrealTargetPlatform InHostPlatform, List<UnrealTargetPlatform> InClientTargetPlatforms = null, List<UnrealTargetConfiguration> InClientConfigs = null, List<UnrealTargetPlatform> InServerTargetPlatforms = null, List<UnrealTargetConfiguration> InServerConfigs = null, bool InClientNotGame = false ) : base(InHostPlatform) { BranchConfig = InBranchConfig; GameProj = InGameProj; ClientTargetPlatforms = InClientTargetPlatforms; ServerTargetPlatforms = InServerTargetPlatforms; ClientConfigs = InClientConfigs; ServerConfigs = InServerConfigs; ClientNotGame = InClientNotGame; GameOrClient = TargetRules.TargetType.Game; if (ClientNotGame) { GameOrClient = TargetRules.TargetType.Client; } if (InGameProj.GameName != BranchConfig.Branch.BaseEngineProject.GameName && GameProj.Properties.Targets.ContainsKey(TargetRules.TargetType.Editor)) { bIsCode = true; } else { bIsCode = false; } // verify we actually built these var WorkingGameProject = InGameProj; if (!WorkingGameProject.Properties.Targets.ContainsKey(TargetRules.TargetType.Editor)) { // this is a codeless project, use the base project WorkingGameProject = BranchConfig.Branch.BaseEngineProject; } var AllTargetPlatforms = new List<UnrealTargetPlatform>(); if (ClientTargetPlatforms != null) { if (!WorkingGameProject.Properties.Targets.ContainsKey(GameOrClient)) { throw new AutomationException("Can't make a game build for {0} because it doesn't have a {1} target.", WorkingGameProject.GameName, GameOrClient.ToString()); } foreach (var Plat in ClientTargetPlatforms) { if (!AllTargetPlatforms.Contains(Plat)) { AllTargetPlatforms.Add(Plat); } } if (ClientConfigs == null) { ClientConfigs = new List<UnrealTargetConfiguration>() { UnrealTargetConfiguration.Development }; } foreach (var Plat in ClientTargetPlatforms) { if (!WorkingGameProject.Properties.Targets[GameOrClient].Rules.GUBP_GetPlatforms_MonolithicOnly(HostPlatform).Contains(Plat)) { throw new AutomationException("Can't make a game/client build for {0} because we didn't build platform {1}.", WorkingGameProject.GameName, Plat.ToString()); } foreach (var Config in ClientConfigs) { if (!WorkingGameProject.Properties.Targets[GameOrClient].Rules.GUBP_GetConfigs_MonolithicOnly(HostPlatform, Plat).Contains(Config)) { throw new AutomationException("Can't make a game/client build for {0} because we didn't build platform {1} config {2}.", WorkingGameProject.GameName, Plat.ToString(), Config.ToString()); } } } } if (ServerTargetPlatforms != null) { if (!WorkingGameProject.Properties.Targets.ContainsKey(TargetRules.TargetType.Server) && ServerTargetPlatforms != null) { throw new AutomationException("Can't make a server build for {0} because it doesn't have a server target.", WorkingGameProject.GameName); } foreach (var Plat in ServerTargetPlatforms) { if (!AllTargetPlatforms.Contains(Plat)) { AllTargetPlatforms.Add(Plat); } } if (ServerConfigs == null) { ServerConfigs = new List<UnrealTargetConfiguration>() { UnrealTargetConfiguration.Development }; } foreach (var Plat in ServerTargetPlatforms) { if (!WorkingGameProject.Properties.Targets[TargetRules.TargetType.Server].Rules.GUBP_GetPlatforms_MonolithicOnly(HostPlatform).Contains(Plat)) { throw new AutomationException("Can't make a server build for {0} because we didn't build platform {1}.", WorkingGameProject.GameName, Plat.ToString()); } foreach (var Config in ServerConfigs) { if (!WorkingGameProject.Properties.Targets[TargetRules.TargetType.Server].Rules.GUBP_GetConfigs_MonolithicOnly(HostPlatform, Plat).Contains(Config)) { throw new AutomationException("Can't make a server build for {0} because we didn't build platform {1} config {2}.", WorkingGameProject.GameName, Plat.ToString(), Config.ToString()); } } } } // add dependencies for cooked and compiled foreach (var Plat in AllTargetPlatforms) { AddDependency(GamePlatformCookedAndCompiledNode.StaticGetFullName(HostPlatform, GameProj, Plat)); } }
public override int CISFrequencyQuantumShift(GUBP.GUBPBranchConfig BranchConfig) { return(base.CISFrequencyQuantumShift(BranchConfig) + 3); }
public ToolsForDocumentationNode(GUBP.GUBPBranchConfig InBranchConfig, UnrealTargetPlatform InHostPlatform) : base(InBranchConfig, InHostPlatform, false) { AgentSharingGroup = "Documentation" + StaticGetHostPlatformSuffix(InHostPlatform); }
public GatherRocketNode(GUBP.GUBPBranchConfig InBranchConfig, UnrealTargetPlatform HostPlatform, List<UnrealTargetPlatform> InCodeTargetPlatforms, string InOutputDir) : base(HostPlatform) { BranchConfig = InBranchConfig; OutputDir = InOutputDir; CodeTargetPlatforms = new List<UnrealTargetPlatform>(InCodeTargetPlatforms); AddDependency(FilterRocketNode.StaticGetFullName(HostPlatform)); AddDependency(BuildDerivedDataCacheNode.StaticGetFullName(HostPlatform)); AgentSharingGroup = "RocketGroup" + StaticGetHostPlatformSuffix(HostPlatform); }
public FilterRocketNode(GUBP.GUBPBranchConfig InBranchConfig, UnrealTargetPlatform InHostPlatform, List<UnrealTargetPlatform> InTargetPlatforms, string[] InCurrentFeaturePacks, string[] InCurrentTemplates) : base(InHostPlatform) { BranchConfig = InBranchConfig; TargetPlatforms = new List<UnrealTargetPlatform>(InTargetPlatforms); CurrentFeaturePacks = InCurrentFeaturePacks; CurrentTemplates = InCurrentTemplates; DepotManifestPath = CommandUtils.CombinePaths(CommandUtils.CmdEnv.LocalRoot, "Engine", "Saved", "Rocket", HostPlatform.ToString(), "Filter.txt"); // Add the editor AddDependency(GUBP.VersionFilesNode.StaticGetFullName()); AddDependency(GUBP.ToolsForCompileNode.StaticGetFullName(HostPlatform)); AddDependency(GUBP.RootEditorNode.StaticGetFullName(HostPlatform)); AddDependency(GUBP.ToolsNode.StaticGetFullName(HostPlatform)); // Add all the monolithic builds from their appropriate source host platform foreach(UnrealTargetPlatform TargetPlatform in TargetPlatforms) { UnrealTargetPlatform SourceHostPlatform = RocketBuild.GetSourceHostPlatform(BranchConfig.HostPlatforms, HostPlatform, TargetPlatform); bool bIsCodeTargetPlatform = RocketBuild.IsCodeTargetPlatform(SourceHostPlatform, TargetPlatform); AddDependency(GUBP.GamePlatformMonolithicsNode.StaticGetFullName(SourceHostPlatform, BranchConfig.Branch.BaseEngineProject, TargetPlatform, Precompiled: bIsCodeTargetPlatform)); } // Also add stripped symbols for all the target platforms that require it List<string> StrippedNodeNames = new List<string>(); foreach(UnrealTargetPlatform TargetPlatform in TargetPlatforms) { if(StripRocketNode.IsRequiredForPlatform(TargetPlatform)) { UnrealTargetPlatform SourceHostPlatform = RocketBuild.GetSourceHostPlatform(BranchConfig.HostPlatforms, HostPlatform, TargetPlatform); string StripNode = StripRocketMonolithicsNode.StaticGetFullName(SourceHostPlatform, BranchConfig.Branch.BaseEngineProject, TargetPlatform, RocketBuild.IsCodeTargetPlatform(SourceHostPlatform, TargetPlatform)); AddDependency(StripNode); StrippedNodeNames.Add(StripNode); } } // Also add signed node for all the target platforms that require it List<string> SignedNodeNames = new List<string>(); foreach (UnrealTargetPlatform TargetPlatform in TargetPlatforms) { if (SignRocketNode.IsRequiredForPlatform(TargetPlatform)) { UnrealTargetPlatform SourceHostPlatform = RocketBuild.GetSourceHostPlatform(BranchConfig.HostPlatforms, HostPlatform, TargetPlatform); string SignNode = SignRocketMonolithicsNode.StaticGetFullName(SourceHostPlatform, BranchConfig.Branch.BaseEngineProject, TargetPlatform, RocketBuild.IsCodeTargetPlatform(SourceHostPlatform, TargetPlatform)); AddDependency(SignNode); SignedNodeNames.Add(SignNode); } } // Add win64 tools on Mac, to get the win64 build of UBT, UAT and IPP if (HostPlatform == UnrealTargetPlatform.Mac && BranchConfig.HostPlatforms.Contains(UnrealTargetPlatform.Win64)) { AddDependency(GUBP.ToolsNode.StaticGetFullName(UnrealTargetPlatform.Win64)); AddDependency(GUBP.ToolsForCompileNode.StaticGetFullName(UnrealTargetPlatform.Win64)); } // Add all the feature packs AddDependency(GUBP.MakeFeaturePacksNode.StaticGetFullName(GUBP.MakeFeaturePacksNode.GetDefaultBuildPlatform(BranchConfig.HostPlatforms))); // Find all the host platforms we need SourceHostPlatforms = TargetPlatforms.Select(x => RocketBuild.GetSourceHostPlatform(BranchConfig.HostPlatforms, HostPlatform, x)).Distinct().ToList(); if(!SourceHostPlatforms.Contains(HostPlatform)) { SourceHostPlatforms.Add(HostPlatform); } // Add the stripped host platforms if(StripRocketNode.IsRequiredForPlatform(HostPlatform)) { AddDependency(StripRocketToolsNode.StaticGetFullName(HostPlatform)); StrippedNodeNames.Add(StripRocketToolsNode.StaticGetFullName(HostPlatform)); AddDependency(StripRocketEditorNode.StaticGetFullName(HostPlatform)); StrippedNodeNames.Add(StripRocketEditorNode.StaticGetFullName(HostPlatform)); } // Add the signed host platforms if (SignRocketNode.IsRequiredForPlatform(HostPlatform)) { AddDependency(SignRocketToolsNode.StaticGetFullName(HostPlatform)); SignedNodeNames.Add(SignRocketToolsNode.StaticGetFullName(HostPlatform)); AddDependency(SignRocketEditorNode.StaticGetFullName(HostPlatform)); SignedNodeNames.Add(SignRocketEditorNode.StaticGetFullName(HostPlatform)); } // Set all the stripped manifest paths foreach(string StrippedNodeName in StrippedNodeNames) { StrippedNodeManifestPaths.Add(StrippedNodeName, Path.Combine(Path.GetDirectoryName(DepotManifestPath), "Filter_" + StrippedNodeName + ".txt")); } // Set all the signed manifest paths foreach (string SignedNodeName in SignedNodeNames) { SignedNodeManifestPaths.Add(SignedNodeName, Path.Combine(Path.GetDirectoryName(DepotManifestPath), "Filter_" + SignedNodeName + ".txt")); } }
public SignRocketNode(GUBP.GUBPBranchConfig InBranchConfig, UnrealTargetPlatform InHostPlatform, UnrealTargetPlatform InTargetPlatform, string InSignedDir) : base(InHostPlatform) { BranchConfig = InBranchConfig; TargetPlatform = InTargetPlatform; SignedDir = InSignedDir; }
public PublishRocketSymbolsNode(GUBP.GUBPBranchConfig InBranchConfig, UnrealTargetPlatform HostPlatform, IEnumerable<UnrealTargetPlatform> TargetPlatforms, string InSymbolsOutputDir) : base(HostPlatform) { BranchConfig = InBranchConfig; SymbolsOutputDir = InSymbolsOutputDir; AddDependency(GUBP.ToolsForCompileNode.StaticGetFullName(HostPlatform)); AddDependency(GUBP.RootEditorNode.StaticGetFullName(HostPlatform)); AddDependency(GUBP.ToolsNode.StaticGetFullName(HostPlatform)); foreach(UnrealTargetPlatform TargetPlatform in TargetPlatforms) { if(HostPlatform == RocketBuild.GetSourceHostPlatform(BranchConfig.HostPlatforms, HostPlatform, TargetPlatform)) { bool bIsCodeTargetPlatform = RocketBuild.IsCodeTargetPlatform(HostPlatform, TargetPlatform); AddDependency(GUBP.GamePlatformMonolithicsNode.StaticGetFullName(HostPlatform, BranchConfig.Branch.BaseEngineProject, TargetPlatform, Precompiled: bIsCodeTargetPlatform)); } } AgentSharingGroup = "RocketGroup" + StaticGetHostPlatformSuffix(HostPlatform); }
public LabelPromotableNode(GUBP.GUBPBranchConfig InBranchConfig, string InPromotionLabelPrefix, string InPromotionLabelSuffix, bool bInLabelPromoted) { BranchConfig = InBranchConfig; PromotionLabelPrefix = InPromotionLabelPrefix; bLabelPromoted = bInLabelPromoted; AddDependency(WaitForPromotionUserInput.StaticGetFullName(PromotionLabelPrefix, InPromotionLabelSuffix, bLabelPromoted)); }