Updated a few project generators to be thread safe.
Fixed an issue where the vproject generation wasn't deterministic.
Updated the project generation to output the total time it took to execute.
Before: 21.62 seconds
After: 17.56 seconds
#jira
#rb joe.kirchoff
[CL 27179702 by bryan sefcik in ue5-main branch]
-The logic in NativeProjects.cs IsHybridContentOnlyProject which decides whether we need to build an executable for a project was always using the buildhost platform (usually win64) to decide which plugins were active. This caused it to miss enabled code plugins that build for the actual target platform but not the host platform and potentially not do an executible build when one is required.
-Now we pass the TargetPlatforms for the current build into ConditionalMakeTempTargetForHybridProject so that we can test against them. If any project in this list needs code built we will make a temp target.
#jira UE-189611 UE-192833
#rb Josh.Adams
[CL 27101769 by jeff fisher in ue5-main branch]
This removes the old hack that renames the target based on nonunity being set while also adding a new intermediates folder for IWYU.
#jira UE-190274
#rb joe.kirchoff
[CL 26514944 by christopher waters in ue5-main branch]
* Write PrimaryProjectPath.txt with the location of the solution, this could be different than the root depending on project gen arguments
* Update SourceCodeAccessor accordingly to get the correct path to the solution, maintaining old defaults if the PrimaryProjectPath.txt file is not found
#rnx
#jira UE-114382
[CL 25935357 by joe kirchoff in ue5-main branch]
#fyi Joe.Kirchoff
Original CL Desc
-----------------------------------------------------------------
UnrealBuildTool: Fix failure to open/browse to source file in Visual Studio
* Always update PrimaryProjectName.txt when a project specific solution is generated
* -Game solution is always placed under the project directory, update SourceCodeAccessor according, this code was out of date
#rnx
#jira UE-114382
#preflight 6449c0c4401d328ad93a635b
[CL 25732405 by joe kirchoff in ue5-main branch]
* Use object type rather than var
* Remove double newlines
* Use pattern matching
#rnx
#preflight 647780095d23eca37d28a387
[CL 25706751 by joe kirchoff in ue5-main branch]
[FYI] Joe.Kirchoff
Original CL Desc
-----------------------------------------------------------------
UnrealBuildTool: More automated code cleanup
#rnx
[CL 25695155 by joe kirchoff in ue5-main branch]
- Added a top-level .xcconfig file to Xcode workspace for use with UnrealGame/etc so it knows where to find staged data, and set the commandline automatically
- Stage the UECommandLine.txt file for modern builds because we no longer make the Bootstrap .app
- Added XcodeBuildMode enum/string so scripts can tell when the project is being built (so build time could act differently than stage time, etc)
- Making use of the enum and other env vars to skip steps when not needed
- Other fixes for project generation
- Added -modernxcode and -legacyxcode comandline options which will override the .ini setting (refactored all UseModern checks into one function)
- Support for programs that have a .uproject, and GPF with -game -project=<program.uproject>
- Added success return value to FinalizeAppWithModernXcode
- Added quotes to fix paths with spaces in GenerateProjectFiles.command
- Enabled parallel AddAdditionalNativeTargetInformation for gathering Frameworks from targts, now that parallel project generation has been enabled and most parallel issues are fixed
#preflight 646ce67c2e78be98411323d9
#rb zack.neyland
#preflight 646f8f2850786bb5ba8a98f0
[CL 25623979 by Josh Adams in ue5-main branch]
- Only active when the project generator says it supports ContentOnly projects, although that is just for now until Xcode can test it out, in case it causes Visual Studio issues
#rb joe.kirchoff
#preflight 64638f4a4404e3cdd240327f
[CL 25490732 by Josh Adams in ue5-main branch]
- Updated the temp .Target.cs to use modern include order to avoid some warning spam
#preflight 645871664c3ec54e6ef344ca
#rb none (but tested by wei.lu)
[CL 25370095 by Josh Adams in ue5-main branch]