Commit Graph

121 Commits

Author SHA1 Message Date
Ben Marsh
cbb950c578 UBT: Use ILogger throughout UBT, rather than legacy EpicGames.Core.Log methods. All output going forwards should use structured logging rather than String.Format style logging.
#preflight 628e9dc6e746de4961f60032

[CL 20373777 by Ben Marsh in ue5-main branch]
2022-05-25 19:55:37 -04:00
Ben Marsh
8bfdd6d555 UBT: Tweak how single-file compiles work.
- When a file list is specified, any headers identified via a scan are added to a separate list of files to be compiled. These are always considered optional; since we don't know for sure whether they're part of the target, they are excluded from checks that require a matching binary to be identified for them.
- The -IgnoreInvalidFiles argument doesn't seem to have been working as intended, since the BuildBinaries will already contain all binaries for the target despite claims made in a comment (so bBuildShouldContinue will default to, and remain set to, false).
- While we could fix the logic to filter the binaries built for single-file compiles, it seems simpler to keep the same codepath as regular builds.

#preflight none

[CL 19408219 by Ben Marsh in ue5-main branch]
2022-03-16 13:37:05 -04:00
jonathan adamczewski
760399b892 UnrealBuildTool: Add -SaveCrashDumps option that will attempt to find and copy crash dump files to a specified location.
#jira none
#rnx
#preflight 623104afe50582311ac32ec6

[CL 19396686 by jonathan adamczewski in ue5-main branch]
2022-03-15 17:57:47 -04:00
jeff newquist
7dbd77f49a SN-DBS executor improvements
- Prevent the unnecessary scanning of response files
- Prevent the unnecessary scanning and distribution of header files for other platforms
- Add bAllowOverVpn and VpnSubnets XmlConfigFile settings to allow restriction of distribution over VPN
- Utilize ProgressWriter to better mark up progress text as is done with other executor implementations
#jira none
#rb joe.kirchoff
#preflight none

[CL 19208610 by jeff newquist in ue5-main branch]
2022-03-01 17:39:49 -05:00
tim smith
057c2b3b0f Modify UBT to not check for live coding unless there are actions to execute.
#rb Jonathan.Adamczewski
#jira UE-139892
#preflight 61eeecacef289ffc6df11d7f

#ROBOMERGE-AUTHOR: tim.smith
#ROBOMERGE-SOURCE: CL 18711519 in //UE5/Release-5.0/... via CL 18711563 via CL 18711691
#ROBOMERGE-BOT: UE5 (Release-Engine-Test -> Main) (v903-18687472)

[CL 18711705 by tim smith in ue5-main branch]
2022-01-24 13:38:36 -05:00
chris constantinescu
8c968941f9 UBT TestMode that allows building a test executable for an associated target.
- Each module can now have a Tests folder at its root containing low level tests written with Catch2
- Used like this: UnrealBuildTool.exe -Mode=Test TargetName Platform Configuration
- It creates a test executable that's associated with the specified build Target and it includes all the tests for the Target AND all its dependencies as well
- When building without -Mode=Test it will omit the Tests folder contents from compilation: in theory we never allowed folders named Tests at the root of modules, but there might be isolated exceptions where we didn't validate folder names - in this case we will need to move that Tests folder one level up for example
- Code paths for test and non-test builds are entirely separated

#jira UE-135280
#rb Jerome.Delattre
#preflight 61e839d5276892ce10759205

[CL 18663474 by chris constantinescu in ue5-main branch]
2022-01-19 15:00:37 -05:00
Marc Audy
0c3be2b6ad Merge Release-Engine-Staging to Test @ CL# 18240298
[CL 18241953 by Marc Audy in ue5-release-engine-test branch]
2021-11-18 14:37:34 -05:00
aurel cordonnier
fc542f6cfd Merge from Release-Engine-Staging @ 18081189 to Release-Engine-Test
This represents UE4/Main @18073326, Release-5.0 @18081140 and Dev-PerfTest @18045971

[CL 18081471 by aurel cordonnier in ue5-release-engine-test branch]
2021-11-07 23:43:01 -05:00
aurel cordonnier
a12d56ff31 Merge from Release-Engine-Staging @ 17791557 to Release-Engine-Test
This represents UE4/Main @17774255, Release-5.0 @17791557 and Dev-PerfTest @17789485

[CL 17794212 by aurel cordonnier in ue5-release-engine-test branch]
2021-10-12 21:21:22 -04:00
jonathan adamczewski
28669b8fb6 UnrealBuildTool: Update source dependency json parsing for imported modules
#jira none

#ROBOMERGE-AUTHOR: jonathan.adamczewski
#ROBOMERGE-SOURCE: CL 17653767 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v875-17642767)

[CL 17653789 by jonathan adamczewski in ue5-release-engine-test branch]
2021-09-28 18:49:01 -04:00
jonathan adamczewski
2f91a18571 UnrealBuildTool: allow MemoryPerAction to be set per-target
Can be used to reduce the number of build actions that will be run in parallel by ParallelExecutor or TaskExecutor.

Example use, in MyProject.Target.cs:

public class MyProjectTarget : TargetRules
{
	public MyProjectTarget(TargetInfo Target) : base(Target)
	{
		Type = TargetType.Game;
		DefaultBuildSettings = BuildSettingsVersion.V2;

		ExtraModuleNames.AddRange( new string[] { "MyProject" } );

		MemoryPerActionGB = 4;
	}
}

#jira none

#ROBOMERGE-AUTHOR: jonathan.adamczewski
#ROBOMERGE-SOURCE: CL 17546182 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v870-17433530)

[CL 17546186 by jonathan adamczewski in ue5-release-engine-test branch]
2021-09-16 19:35:07 -04:00
jonathan adamczewski
42ef103436 UnrealBuildTool:
Add new commandline option: -AlwaysRulesCompile, ensures that rules assemblies will be compiled during the run.

#jira none

#ROBOMERGE-SOURCE: CL 17428445 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17428452 by jonathan adamczewski in ue5-release-engine-test branch]
2021-09-03 19:27:06 -04:00
jonathan adamczewski
e020e6dc4a UnrealBuildTool:
"-Rebuild" command line option for build targets, to perform a clean on a target before attempting to build it.

#jira none
#rb ben.marsh

#ROBOMERGE-SOURCE: CL 17401398 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17401442 by jonathan adamczewski in ue5-release-engine-test branch]
2021-09-02 08:28:06 -04:00
jonathan adamczewski
04318edf4e UnrealBuildTool:
Simplify ExternalExecution.ExecuteHeaderToolIfNecessary() interface

#jira none

#ROBOMERGE-SOURCE: CL 17360308 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17360318 by jonathan adamczewski in ue5-release-engine-test branch]
2021-08-30 18:28:35 -04:00
jonathan adamczewski
1539a435f3 UnrealBuildTool:
Remove bIsGatheringBuild; directory timestamps do not need to be checked, and a null build of UHT is much cheaper than it used to be.

#jira none

#ROBOMERGE-SOURCE: CL 17359968 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17359974 by jonathan adamczewski in ue5-release-engine-test branch]
2021-08-30 18:10:06 -04:00
jonathan adamczewski
5219a3d9a4 UnrealBuildTool:
Remove always true bIsAssembling mode variable.

#jira none
#trivial

#ROBOMERGE-SOURCE: CL 17355911 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17355924 by jonathan adamczewski in ue5-release-engine-test branch]
2021-08-30 14:27:17 -04:00
jonathan adamczewski
9ccfa4b86c UnrealBuildTool, AutomationTool:
Print path to log file, print a timestamp at the top of each log file, don't print (wrong) callstack location.

#jira none
#rb ben.marsh

#ROBOMERGE-SOURCE: CL 17351052 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)

[CL 17351057 by jonathan adamczewski in ue5-release-engine-test branch]
2021-08-30 08:44:36 -04:00
jonathan adamczewski
64c210d294 AutomationTool, BuildUtilities:
UnrealBuild -> Unreal for EngineDirectory, RootDirectory, IsEngineInstalled, UnrealBuildToolPath
Remove CommandUtils EngineDirectory, RootDirectory, IsEngineInstalled - use equvalents from UnrealBuildBase.Unreal

#jira none

#ROBOMERGE-SOURCE: CL 16648181 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v833-16641396)

[CL 16648203 by jonathan adamczewski in ue5-release-engine-test branch]
2021-06-11 18:21:35 -04:00
jonathan adamczewski
233b7719a5 <saved by Perforce>
#ROBOMERGE-SOURCE: CL 16642197 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v833-16641396)

[CL 16642206 by jonathan adamczewski in ue5-release-engine-test branch]
2021-06-11 11:37:42 -04:00
zousar shaker
0bfa0c6063 Allow TargetRules to specify pointer behavior overrides that will be applied when calling UnrealHeaderTool. This is to permit individual projects (eg: ShooterGame) to enforce use of TObjectPtr in place of raw pointer members without requiring that other projects do the same. Example usage from ShooterGameEditor.target.cs:
NativePointerMemberBehaviorOverride = PointerMemberBehavior.Disallow;

#rb jonathan.adamczewski

#ROBOMERGE-SOURCE: CL 16640935 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v831-16623017)

[CL 16640936 by zousar shaker in ue5-release-engine-test branch]
2021-06-11 10:08:10 -04:00
jonathan adamczewski
d58996b916 UnrealBuildTool: move some path constants into BuildUtilities
RootDirectory, EngineDirectory, UnrealBuildToolPath are now found in BuildUtilities' UnrealBuild namesapce.

The way these are computed has changed. Previously, it was assumed that the application is UnrealBuildTool, and paths were constructed relative to that assembly.

Now, the assumption is that the process is located under a "Engine/Build/DotNET" sub-path and paths are constructed relative to that.

#jira none

#ROBOMERGE-SOURCE: CL 16607440 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v828-16531559)

[CL 16607455 by jonathan adamczewski in ue5-release-engine-test branch]
2021-06-09 12:55:13 -04:00
jonathan adamczewski
a865a21fb0 Move FileItem and DirectoryItem into BuildUtilities
#jira none

#ROBOMERGE-SOURCE: CL 16596289 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v828-16531559)

[CL 16596323 by jonathan adamczewski in ue5-release-engine-test branch]
2021-06-08 19:06:03 -04:00
aurel cordonnier
b2a924fe3e Fix for single file compile via UnrealVS
#fyi Alexis.Matte, James.Hopkin
#jira none

[CL 16548461 by aurel cordonnier in ue5-main branch]
2021-06-03 12:13:14 -04:00
Marc Audy
0cbbc781ca Merge UE5/Release-Engine-Staging @ 15740152 to UE5/Main
This represents UE4/Main @ 15709114

[CL 15740605 by Marc Audy in ue5-main branch]
2021-03-18 15:20:03 -04:00
Ben Marsh
d2af06bed6 Fix support for C++20 modules.
#rb none
#rnx
#preflight 604a88b003c5190001d96f42

[CL 15681675 by Ben Marsh in ue5-main branch]
2021-03-11 18:03:43 -04:00