Commit Graph

1391 Commits

Author SHA1 Message Date
Joe Kirchoff
b76676d7e5 UnrealBuildTool: Clean up VCToolChain functions that add command line args to be more consistently used, allowing more paths that can be relative to reduce command line length
Verified relative pathing works fine for msvc clang builds
Use .d files for dependencies when compiling with windows clang, instead of piping through cl-filter.exe
Use relative pathing for generated unity files

#rb Jonathan.Adamczewski
#rnx
#preflight 60d4de2bcaf0590001e62de9
#preflight 60d4efbccaf0590001e9af24

[CL 16779820 by Joe Kirchoff in ue5-main branch]
2021-06-24 19:00:31 -04:00
Joe Kirchoff
9f286a1c41 LiveCoding: Support updating actions that are invoking cl.exe or clang-cl.exe
#rb trivial
#rnx

[CL 16776753 by Joe Kirchoff in ue5-main branch]
2021-06-24 14:45:11 -04:00
Joe Kirchoff
69fd3e1226 UnrealBuildTool: Use /sourceDependencies to generate dependency list instead of cl-filter if the the msvc compiler version is at least 14.27
#rb Ben.Marsh
#preflight 60d34f6ea81904000181d05a

[CL 16758831 by Joe Kirchoff in ue5-main branch]
2021-06-23 12:39:54 -04:00
Joe Kirchoff
4395ab0221 UnrealBuildTool: Action Executor that uses async tasks instead of background threads (currently disabled)
#rb none

[CL 16682139 by Joe Kirchoff in ue5-main branch]
2021-06-15 19:38:08 -04:00
Brandon Schaefer
da6e2eb1e2 Rename LinuxAArch64 to LinuxArm64
#jira UE-118127
#rb Michael.Sartain
#fyi Marc.Audy, Aurel.Cordonnier

[CL 16660821 by Brandon Schaefer in ue5-main branch]
2021-06-14 13:39:47 -04:00
jeanfrancois dube
50e5591882 UnrealBuildTool: added CppCompileEnvironment.AnalyzeStackSizeWarning to replace hardcoded value of 80K (now defaults to 300K).
Our stack size defaults to 4.7M on Windows, so allowing functions to use more stack space in favor of going through the heap.

#rb steve.robb


#ROBOMERGE-SOURCE: CL 16653849
#ROBOMERGE-BOT: (v834-16658389)

[CL 16659295 by jeanfrancois dube in ue5-main branch]
2021-06-14 11:58:20 -04:00
jonathan adamczewski
8d1ebef30a UnrealBuildTool:
Per-project rules assembly csprojen.

Previously: all .build.cs and .target.cs were being grouped into a single project, which resulted in duplicate symbols when trying to build the project.

Now: multiple assemblies csprojs are generated, one for each Engine & Game project. Also, includes preprocessor defines.

#jira none
#rb ben.marsh

[CL 16658600 by jonathan adamczewski in ue5-main branch]
2021-06-14 10:59:59 -04:00
jonathan adamczewski
48dd1912e1 UnrealBuildTool
Adding "using UnrealBuildBase" to some files (submitted separately to make subsequent CLs smaller)

#jira none
#trivial

[CL 16657799 by jonathan adamczewski in ue5-main branch]
2021-06-14 09:25:26 -04:00
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
joe kirchoff
b1dbb8de60 UnrealBuildTool: Remove LocalExecutor and use ParallelExecutor for all host platforms
Update ManagedProcess to capture stderr if using C# Process objects

#jira UE-117670
#rb Ben.Marsh

[CL 16647451 by joe kirchoff in ue5-main branch]
2021-06-11 17:19:03 -04:00
joe kirchoff
adb0960f09 [Backout] - CL16642253
#fyi Joe.Kirchoff
Original CL Desc
-----------------------------------------------------------------
UnrealBuildTool: Remove LocalExecutor and use ParallelExecutor for all host platforms
Update ManagedProcess to capture stderr if using C# Process objects

#jira UE-117670
#rb Ben.Marsh
#preflight 60c2a1d3730f8a000185ae66
#preflight 60c2a5bab1a4a300012ea45d

[CL 16642682 by joe kirchoff in ue5-main branch]
2021-06-11 12:13:57 -04:00
Joe Kirchoff
96db72f088 UnrealBuildTool: Remove LocalExecutor and use ParallelExecutor for all host platforms
Update ManagedProcess to capture stderr if using C# Process objects

#jira UE-117670
#rb Ben.Marsh
#preflight 60c2a1d3730f8a000185ae66
#preflight 60c2a5bab1a4a300012ea45d

[CL 16642253 by Joe Kirchoff in ue5-main branch]
2021-06-11 11:40:36 -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
b646b726e0 UnrealBuildTool:
Add a StringComparison argument to CreateIntermediateTextFile() and require callers to make a decision about the case-sensitivity used when considering whether to re-write a file.

(This is intentionally explicit and verbose at the call-site - we should implement a better solution. This change makes it clear that there is work to be done to be able to simplify the interface and achieve reliable behavior.)

As a first pass, C++ files (headers, cpp files, pch files) will have a case-sensitive comparison (C++ code is, mostly, case sensitive), Linux script files have a case-sensitive comparison (case-sensitive filesystem), and all other files are compared disregarding case - to match pre-existing behavior, and with the desire to not borrow more surprises than necessary.

#jira none

[CL 16616339 by jonathan adamczewski in ue5-main branch]
2021-06-09 19:45:07 -04:00
jonathan adamczewski
3f32bcdae6 UnrealBuildTool:
Move StartupTraceListener.cs to BuildUtilities

#jira none

[CL 16608546 by jonathan adamczewski in ue5-main branch]
2021-06-09 13:39:05 -04:00
jonathan adamczewski
64bfd9b3f4 UnrealBuildTool:
Move NativeProjects partially into BuildUtilities - class split to avoid pulling in a larger chain of dependencies.

#jira none

[CL 16608480 by jonathan adamczewski in ue5-main branch]
2021-06-09 13:32:14 -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
78076f869d Move DirectoryLookupCache.cs to BuildUtilities
#jira none

[CL 16596484 by jonathan adamczewski in ue5-main branch]
2021-06-08 19:12:07 -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
jonathan adamczewski
0af1ea99af Add a common C# method for detecting the current host platform to EpicGames.Core, and move many a test to use that code.
#jira none
#rb joe.kirchoff

[CL 16593582 by jonathan adamczewski in ue5-main branch]
2021-06-08 17:01:23 -04:00
andrew firth
5cb741bd12 [Workspace] - back out the Lowercasing of the workspace name
#Jira UE-115727
[REVIEW] [at]jeremy.moore
#rb jeremy.moore
[FYI] luke.thatcher


#ROBOMERGE-SOURCE: CL 16592018
#ROBOMERGE-BOT: (v828-16531559)

[CL 16592070 by andrew firth in ue5-main branch]
2021-06-08 15:52:56 -04:00
andrew firth
15364e253d [Workspace] - revert addition of machinename (other tools assume they can independently rebuild this) while maintaining the lowercasing of the string.
Luke.Thatcher
#rb Luke.Thatcher
[FYI] Guillaume.Abadie


#ROBOMERGE-SOURCE: CL 16572629
#ROBOMERGE-BOT: (v828-16531559)

[CL 16572651 by andrew firth in ue5-main branch]
2021-06-07 12:42:02 -04:00
andrew firth
255599d286 [Workspace] - add machinename to workspace default name, and lowercase the whole name to fix UE-115727
- this allows 2 machines with the same user & project to share hw
[REVIEW] [at]luke.thatcher
#jira UE-115727
#rb luke.thatcher
#preflight 60b9235a3291ab0001294ba6


#ROBOMERGE-SOURCE: CL 16553213
#ROBOMERGE-BOT: (v828-16531559)

[CL 16553297 by andrew firth in ue5-main branch]
2021-06-03 17:09:09 -04:00
David Harvey
e581358a11 Add HasExplicitPlatforms property to uplugin definitions, allowing the SupportedTargetPlatforms and WhitelistPlatforms fields to be entirely defined in child plugins. The existing functionality means that an empty platform list implies "all platforms".
#jira UECON-417
#rb ben.marsh

[CL 16531379 by David Harvey in ue5-main branch]
2021-06-02 04:27:26 -04:00