This represents UE4/Main @17911760, Release-5.0 @17915875 and Dev-PerfTest @17914035
[CL 17918595 by aurel cordonnier in ue5-release-engine-test 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
#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]
Default is still VS2019, running `GenerateProjectFiles.bat -2022` will create a solution and projects that pass -2022 to UnrealBuild tool when compiling from Visual Studio to force it to use the 2022 toolchain.
Please note, as the defaults are unchanged building from UnrealGameSync will still compile with VS2019 so I would disable that build if testing VS2022.
None of this is necessary to use VS2022, it can open VS2019 solutions and will use the Vs2019 toolchain to build.
#rb Ben.Marsh
#pf 60aebccd7d4b9f0001197729
[CL 16478477 by Joe Kirchoff 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]
VS2019 is the minimum required VS version, and has support for NET Core projects - we no longer need this check.
#jira none
[CL 16175554 by jonathan adamczewski in ue5-main branch]
#rb Ben.Marsh
Renamed UE4.natvis to Unreal.natvis
Fixed up Project File Generator within the Unreal Build Tool
[CL 15009828 by mark lintott in ue5-main branch]
* Added support for more complex Msbuild conditions (using static property methods) as we use this to do per platform checks in the csprojs.
* Tweaks to the parsing of csprojs as expecations are different for netcore (mostly for how configurations are defined)
* Lastly if -dotnetcore flag is present when generating projects, use the netcore project files instead.
#rb ben.marsh
[CL 14572331 by Joakim Lindqvist in ue5-main branch]
* Improved detection of UE solution by using a special section outputted to the solution, this replaces the need to add a special comment into the solution (or relying on naming convention as was the fallback). This still works with the old conventions to support being used in a UE4 solution.
* Inverted Quickbuild menu to dynamically populate the platforms instead - this allows UnrealVS to data drive the platform list. Unfortunatley due to how visual studio UI handles dynamic lists we can not have a menu that is dynamic and has children. Thus configurations are now hard coded instead - these are still only visible when they are actually supported, but it means UnrealVS needs to be updated when new configurations are added.
* Fixed issue setting debug arguments to net core projects (due to the change to launchSettings.json to store the debug arguments)
#rb ben.marsh
#jira UE-100134, UE-95503
[CL 14444525 by Joakim Lindqvist in ue5-main branch]
To disable the use of shared include paths (at the expensive of Visual Studio using more memory), put this in BuildConfiguration.xml:
<?xml version="1.0" encoding="utf-8" ?>
<Configuration xmlns="https://www.unrealengine.com/BuildConfiguration">
<VCProjectFileGenerator>
<MaxSharedIncludePaths>0</MaxSharedIncludePaths>
</VCProjectFileGenerator>
</Configuration>
The setting specifies the maximum length of the shared include paths to use, in bytes. The default value is 24,576 (24k).
#jira
#ROBOMERGE-SOURCE: CL 13151316 via CL 13151320 via CL 13151331
#ROBOMERGE-BOT: RELEASE (Release-Engine-Staging -> Main) (v688-13145358)
[CL 13151347 by ben marsh in Main branch]