Commit Graph

104 Commits

Author SHA1 Message Date
jonathan adamczewski
4ece24e65a AutomationTool, BuildUtilities:
UnrealBuild -> Unreal for EngineDirectory, RootDirectory, IsEngineInstalled, UnrealBuildToolPath
Remove CommandUtils EngineDirectory, RootDirectory, IsEngineInstalled - use equvalents from UnrealBuildBase.Unreal

#jira none

[CL 16648181 by jonathan adamczewski in ue5-main branch]
2021-06-11 18:20:44 -04:00
jonathan adamczewski
f9cdd2dc5d UnrealBuildTool:
Move IsEngineInstalled() into BuildUtilities

#jira none

[CL 16642197 by jonathan adamczewski in ue5-main branch]
2021-06-11 11:37:23 -04:00
Zousar Shaker
0b63e379fa 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

[CL 16640935 by Zousar Shaker in ue5-main branch]
2021-06-11 10:07:55 -04:00
jonathan adamczewski
94b14ee042 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

[CL 16607440 by jonathan adamczewski in ue5-main branch]
2021-06-09 12:54:42 -04:00
jonathan adamczewski
44a6d5481e Move FileItem and DirectoryItem into BuildUtilities
#jira none

[CL 16596289 by jonathan adamczewski in ue5-main branch]
2021-06-08 19:05:33 -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
Marc Audy
bc88b73a29 Merge Release-Engine-Staging to Main @ CL# 15151250
Represents UE4/Main @ 15133763

[CL 15158774 by Marc Audy in ue5-main branch]
2021-01-21 16:22:06 -04:00
Marc Audy
bf80889353 UE5/Release-Engine-Staging to UE5/Main
This represents UE4/Main up to CL# 14958402

[CL 15028197 by Marc Audy in ue5-main branch]
2021-01-08 19:56:07 -04:00
Ben Marsh
6f927647b1 Changing C# code over to using EpicGames.Core over DotNETCommon.
#rb none
#rnx

[CL 14962096 by Ben Marsh in ue5-main branch]
2020-12-21 23:07:37 -04:00
Ben Marsh
1e9946779e UBT: Fix up a few more nullable references.
#rb none
#rnx

[CL 14960616 by Ben Marsh in ue5-main branch]
2020-12-20 20:07:40 -04:00
Ben Marsh
68f5abeb09 UBT: Convert UnrealBuildTool to use nullable references.
#rb none
#rnx

[CL 14960546 by Ben Marsh in ue5-main branch]
2020-12-20 18:47:42 -04:00
Ben Marsh
24dc06981b UBT: Remove support for outputting entire action graph for a target. This is not going to be valid with C++20 modules, since we require dependencies discovered at build time to feed back into the action graph execution.
#rb none
#rnx

[CL 14814704 by Ben Marsh in ue5-main branch]
2020-11-25 21:24:19 -04:00
Ben Marsh
7bcee7e396 UBT: Rename QueuedAction to LinkedAction.
#rb none
#rnx

[CL 14812791 by Ben Marsh in ue5-main branch]
2020-11-25 10:13:28 -04:00
Ben Marsh
8d1f11d053 UBT: Start to move Windows specific compile functionality into the VCCompileAction class.
#rb none
#rnx

[CL 14810985 by Ben Marsh in ue5-main branch]
2020-11-24 17:48:38 -04:00
Ben Marsh
f25f409ced UBT: Change the produced/prerequisite item lists for actions to be IEnumerables, so we can generate them dynamically using iterators.
#rb none
#rnx

[CL 14810772 by Ben Marsh in ue5-main branch]
2020-11-24 16:08:50 -04:00
Ben Marsh
51d24bf4cc UBT: Duplicate actions for HotReload rather than mutating existing actions. We can probably make this much cleaner in future, just laying the groundwork.
[CL 14810050 by Ben Marsh in ue5-main branch]
2020-11-24 12:56:09 -04:00
Ben Marsh
7ec8925ea4 UBT: Move all internal derived data for action objects into a separate class. This will allow creating specific action-derived classes for different actions.
#rb none

[CL 14807917 by Ben Marsh in ue5-main branch]
2020-11-23 17:48:35 -04:00
Ben Marsh
0e95359692 UBT: Remove the DistCC executor. We don't maintain this any more.
#rb none

[CL 14807528 by Ben Marsh in ue5-main branch]
2020-11-23 15:53:51 -04:00
Ben Marsh
7bb8c4ae95 UBT: Support for module partitions. Also rework dependency mapping to handle modules in files in files with different names.
#rb none

[CL 14520558 by Ben Marsh in ue5-main branch]
2020-10-19 22:32:26 -04:00
Josh Adams
df33c7885f - Added file logging to GenerteProjectFiles (saved to Engine/Programs/UnrealBuildTool/Log_GPF.txt)
- Improved GPF's SDK error printouts, with no more red error text, and just a list of bad platform SDKs, and a link to the log file to get the detailed information if desired
#rb ben.marsh

[CL 14475783 by Josh Adams in ue5-main branch]
2020-10-12 18:14:03 -04:00
Ben Marsh
57d9b51398 Initial support for C++20 modules.
Requires Visual Studio 2019 15.8 Preview 3, and targets to specify bEnableCppModules = true. Unsupported on other compilers.

Notes:
- Module interfaces need to be placed in .IXX files.
- Module/module dependencies are determined by a post-makefile/pre-build scan of all module interfaces using the compiler, and cause additional prerequisites to be inserted into the dependency graph before execution.
- Available module IFC search paths use normal UE module dependency rules.
- Header units are not currently supported.
- Regular C++ files cannot currently implement functions defined in module interfaces, due to the macros force included by UBT. These macros need to be placed in the global module fragment, but declaring a global module fragment must be done from the translation unit being compiled (making force-included headers invalid).

#rb none

[CL 14354539 by Ben Marsh in ue5-main branch]
2020-09-20 15:04:30 -04:00
Marc Audy
7379fa99c5 Merging //UE5/Release-Engine-Staging to Main (//UE5/Main) @ 14229157
[CL 14233282 by Marc Audy in ue5-main branch]
2020-09-01 14:07:48 -04:00
Marc Audy
11f5b21210 Merging //UE5/Release-Engine-Staging @ 13752110 to Main (//UE5/Main)
#rnx

[CL 13753156 by Marc Audy in ue5-main branch]
2020-06-23 18:40:00 -04:00