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]
Group Automation projects in the same folder with their Game or Sample project.
#jira none
#ROBOMERGE-SOURCE: CL 17401839 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v865-17346139)
[CL 17401858 by jonathan adamczewski in ue5-release-engine-test branch]
Also moves DotNETCommon/Metadata.cs to Shared/Metadata.cs
#jira none
#rb tim.smith
#ROBOMERGE-SOURCE: CL 17116964 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v855-17104924)
[CL 17116977 by jonathan adamczewski in ue5-release-engine-test branch]
Add a layer of caching to avoid running msbuild as much as possible.
#jira UE-109181
#rb ben.marsh
#ROBOMERGE-SOURCE: CL 17102399 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v853-17066230)
[CL 17102408 by jonathan adamczewski in ue5-release-engine-test branch]
#ROBOMERGE-SOURCE: CL 16883248 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v836-16769935)
[CL 16883253 by ben marsh in ue5-release-engine-test 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
#ROBOMERGE-SOURCE: CL 16658600 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v833-16641396)
[CL 16658608 by jonathan adamczewski in ue5-release-engine-test branch]
Create project in its own directory to avoid confusing other builds with UnrealBuildFiles' intermediate files
#jira none
#ROBOMERGE-SOURCE: CL 16646776 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v833-16641396)
[CL 16646811 by jonathan adamczewski in ue5-release-engine-test branch]
Generate UnrealBuildFiles.csproj, a project that contains references to all of the Build.cs and Target.cs files in the solution, and add it to the generated solution.
With this project in the solution, Intellisense is available when editing these files, and the project may be compiled in Visual Studio, providing representative results of what UBT will do with the files (UBT will re-compile the files when it needs to)
Using Visual Studio 2019 16.9.6, adding this project increased memory usage by ~20MB after load (from 540MB to 560MB) for a workspace containing Engine, and two sample games.
#jira none
#rb ben.marsh
#ROBOMERGE-SOURCE: CL 16642908 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v833-16641396)
[CL 16642914 by jonathan adamczewski in ue5-release-engine-test branch]
#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]
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
#ROBOMERGE-SOURCE: CL 16478477 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v823-16466674)
[CL 16483814 by joe kirchoff 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
#ROBOMERGE-SOURCE: CL 16319735 in //UE5/Main/...
#ROBOMERGE-BOT: STARSHIP (Main -> Release-Engine-Test) (v804-16311228)
[CL 16319758 by joe kirchoff in ue5-release-engine-test 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]