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]
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]
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]
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]
#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]
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]
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]
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]
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]
- 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]
- Account for caching of disk-backed files when computing free memory
- Determine actual number of physical CPU cores
#jira none
#rb Joe.Kirchoff
[CL 16355600 by jonathan adamczewski in ue5-main branch]
* Filter out numerous source files that match */Source/ThirdParty/* that should have already been filtered, this does not include Module.Build.cs or .tps files, or if bGatherThirdPartySource is enabled
* Filter out source files that match */third_party/* by default
* Add option bIncludeDotNetPrograms to remove all ..NET projects, doing so saved me around 400MB. Note if you disable the .NET projects UnrealBuildTool won't build before compiling (but GenerateProjectFiles.bat will still build it)
Attempted changes that did not reduce memory usage by a significant amount:
* Filtering out project configurations
* Filtering out Engine/Shaders or Engine/Content/Editor/Templates
* Increasing the shared include size, even making it large enough to contain every include path didn't really make a difference. Also it can't really be increased anyway because that entire property is added to the process environment when starting a build and there's a max environment size of around 32k
Other Fixes:
* Fix vs2019 ToolVersionString 15.0 -> 16.0
* Add VCProjectVersion to Project globals
* Update UniqueIdentifier GUIDs in projects to be stable by hashing the directory path and using that hash as the GUID
* Don't write ProjectConfiguration if filtered out (Didn't affect memory usage)
* Add optional configuration filter for Debug, DebugGame, & Development
#jira UE-111822
#rb none
[CL 16319735 by Joe Kirchoff in ue5-main branch]