Commit Graph

1451 Commits

Author SHA1 Message Date
henrik karlsson
fcb86aef13 [UnrealBuildTool]
* Change so SingleFile will not build dependents by default. This can be enabled with -SingleFileBuildDependents

#preflight skipped
#rb joe.kirchoff

[CL 24344617 by henrik karlsson in ue5-main branch]
2023-02-21 13:37:57 -05:00
joe kirchoff
79ae250739 UnrealBuildTool: Enable BuildSettings.V3 as default for Engine modules
#rnx
#rb Henrik.Karlsson
#jira UE-176989
#preflight 63efc55f90198dffba00b1f9

[CL 24286835 by joe kirchoff in ue5-main branch]
2023-02-17 13:38:47 -05:00
joe kirchoff
db2575d135 [Backout] - CL24273393
[FYI] Joe.Kirchoff
Original CL Desc
-----------------------------------------------------------------
UnrealBuildTool: Enable BuildSettings.V3 as default for Engine modules

#rnx
#rb Henrik.Karlsson
#jira UE-176989

[CL 24275425 by joe kirchoff in ue5-main branch]
2023-02-16 21:10:36 -05:00
bryan sefcik
4522523cb7 Fixed a PCH issue when compiling with multiple architectures at the same time.
#preflight 63eebdc13c1eb56f05661567

[CL 24272931 by bryan sefcik in ue5-main branch]
2023-02-16 18:55:59 -05:00
bryan sefcik
7dc0758263 Updated UBT to create the shared PCH instances before setting up the modules so all the PCHs and parent PCHs are setup beforehand.
#preflight 63eeb441977ceed915cb4207
#rb joe.kirchoff

[CL 24272192 by bryan sefcik in ue5-main branch]
2023-02-16 18:31:35 -05:00
Joe Kirchoff
55f8984bfb UnrealBuildTool: Enable BuildSettingsVersion.V3 as default for Engine modules
#jira UE-176989
#rb henrik.karlsson
#preflight 63eea1a3d60e91569b66188a

[CL 24270612 by Joe Kirchoff in ue5-main branch]
2023-02-16 17:45:35 -05:00
Tim Smith
e203b191fb Fix for changed container error during project file generation.
#rb self
#rnx
#preflight 63ee377c956709374a42dc74

[CL 24257248 by Tim Smith in ue5-main branch]
2023-02-16 09:31:40 -05:00
bryan sefcik
0ef675123b Possible fix for SNDBS when compiling with PCH chains.
#jira
#rb joe.kirchoff
#preflight 63ed1d817d2ec3d2fd4c3452

[CL 24251837 by bryan sefcik in ue5-main branch]
2023-02-16 02:02:35 -05:00
joe kirchoff
ab11875d50 UnrealBuildTool: Always make a unity file for small modules when enabled unless requested to not do so
#rnx
#rb trivial

[CL 24225341 by joe kirchoff in ue5-main branch]
2023-02-14 20:53:25 -05:00
ben woodhouse
982c48de6a Add support for overriding module optimization mode from a target. This allows game projects to override engine module optimization modes.
Note: This also implicitly disables PCH usage if a private PCH isn't set (this was previously fatal, but we need to be more flexible if we're overriding from the target).

#rb joe.kirchoff

[CL 24225336 by ben woodhouse in ue5-main branch]
2023-02-14 20:53:08 -05:00
Josh Adams
0f1dbb1c49 - Added MarkUsed flag to CommandLineAttribute
- Fixed up how UnrealArchitectureConfig classes have commandline applied
- Proper fix for UE-176691
#jira UE-176691
#rb joe.kirchoff
#preflight 63ebd379514832b2425b83c2

[CL 24217163 by Josh Adams in ue5-main branch]
2023-02-14 13:57:08 -05:00
josh adams
f881608487 - Fixing location for UHT generated headers to not have architecture in the path, because they are per-arch, and with InstalledBuilds, if we made a Universal build, but then user does non-universal, the UHT intermediates would look in a different location than where we put them ('arm64' vs 'arm64+x64')
#jira UE-176191
#preflight 63e401713c44c83044e5b2c3

[CL 24214920 by josh adams in ue5-main branch]
2023-02-14 12:40:03 -05:00
Joe Kirchoff
f2bf59fcf7 UnrealBuildTool: Command line arg to enable edit and continue support
#rnx
#rb trivial
#preflight 63eabeb1956709374a642166

[CL 24194002 by Joe Kirchoff in ue5-main branch]
2023-02-13 18:04:25 -05:00
joe kirchoff
2871eccc2c UnrealBuildTool: Fix issue that is causing -Compiler= to not be applied to WindowsTargetRules by applying arch configs and command lines in the TargetRules. Partial back out of 23931789
#rnx
#jira UE-176691
[FYI] Josh.Adams
#preflight 63e58a7dcf3b0e3deea9303e

[CL 24114144 by joe kirchoff in ue5-main branch]
2023-02-09 22:37:55 -05:00
bryan sefcik
592942fad7 Added support for Clang PCH chaining
https://clang.llvm.org/docs/PCHInternals.html#chained-precompiled-headers

Linux - EngineTestEditor -allmodules
Before:
Total PCH Size: 3.41 GB

After:
Total PCH Size: 2.65 GB

#jira
#rb joe.kirchoff
#preflight 63e57da9636f66aac7dc1818

[CL 24114121 by bryan sefcik in ue5-main branch]
2023-02-09 22:37:30 -05:00
henrik karlsson
8238c1d56b [UBT]
* Fixed so .gen.cpp files are also using shared rsp. Also made code a little bit simpler

#preflight 63e49b72ea7ad6869855fccd
#rb joe.kirchoff

[CL 24106316 by henrik karlsson in ue5-main branch]
2023-02-09 16:24:11 -05:00
henrik karlsson
5f74d114d5 [UBT]
Changed how single files are built. We don't want to invalidate makefile everytime we build single files since it destroys turnaround times. With this change a single file compile can take 2s (+ the actual compile time).

The new behavior injects a special action per module when creating the makefile. These actions can be used to on-the-fly create a proper compile action that follows the rules of the module that the specific file belongs to.. In a normal build these actions are ignored since the logic deciding which actions to build is backtraced from which binaries we want to create.

When a specific file compile is triggered, the logic deciding which files to build search up all these special actions and create a lookup based on which folders the special actions handle. It then try to find the special action that handles the specific file. The matching special action then creates a compile action that can handle that specific file and then queue up the action for execution. If no special action is found it falls back to try to use actions that have this specific file as input (ispc files for example)

Details:
* Removed lots of custom code for "specific files" handling
* Changed so pch (both private and shared) always use definition file. Added #pragma once and change so pch wrapper file include definition file. This made the adaptive path and specific file easy to implement (just disable pch in compile environment and it will just work)
* Added SingleFileAction for both VCToolChain and ClangToolChain. It now works to compile specific headers and cpp files. (It creates wrapper files on the fly to be able to compile all header files (compiling headers directly blow up if there are circular includes)
* Fixed so GenerateClangDatabase mode works with new changes
* Moved the logic that makes sure all (directly) depending cpp files are recompiled when .h are included in the singlefile option

#preflight 63dcc46f78716a01e8069649
#rb joe.kirchoff

[CL 24094027 by henrik karlsson in ue5-main branch]
2023-02-09 04:20:43 -05:00
henrik karlsson
1a528a125b [UBT]
* Changed so code generating unity file is modifying the right compile environment when adding lookup for source file -> .gen.cpp

Fixes a bug where sndbs fails to remotely build unity files properly

#preflight skipped
#rb joe.kirchoff

[CL 24092753 by henrik karlsson in ue5-main branch]
2023-02-08 23:59:58 -05:00
joe kirchoff
0e0c85e015 UnrealBuildTool: Use a force include define header for .ixx compiles
#rnx
#rb Henrik.Karlsson
#jira UE-175773
#preflight 63e2a028c2257e56f40f5b85

[CL 24058078 by joe kirchoff in ue5-main branch]
2023-02-07 15:41:28 -05:00
chris constantinescu
4e7e7f9f3f LLT cleanup and improvements/updates:
- remove dependency on LaunchEngineLoop.cpp which also allows compilation against engine to succeed
- LowLevelTestsRunner no dependency on engine modules required: Launch, Core, Project
- EXPLICIT_TESTS_TARGET definition for self-contained tests: test modules and targets that derive from TestModuleRules/TestTargetRules respectively
- Cleanup Launch dependencies from existing explicit tests
- Cleanup redundant flags from existing explicit tests
- rename Self -> Foundation for in Horde
- additional platform fixes
Default #preflight 63e14d37244dc45a20e29337
All platform/tests LLTs #preflight 63e022f91b44ee7cb1c11d60
#rnx

[CL 24035900 by chris constantinescu in ue5-main branch]
2023-02-06 14:27:24 -05:00
marc audy
254574121a Restore the setting of UE_USE_VERSE_PATHS
[FYI] Josh.Adams
#rnx

[CL 24007092 by marc audy in ue5-main branch]
2023-02-03 22:41:37 -05:00
joe pribele
378a101376 changed message for circular plugin dependencies to print the cycle per UDN suggestion from Simon Harvey
https://jira.it.epicgames.com/browse/UE-165111

https://p4-swarm.epicgames.net/reviews/23962465

#rb joe.kirchoff
#jira UE-165111
#preflight 63dbe1a97e4c10fe066518ef

[CL 23970883 by joe pribele in ue5-main branch]
2023-02-02 12:34:18 -05:00
joe kirchoff
de91180c39 UnrealBuildTool: Ensure .cpp files found when scanning -SingleFile headers are added to the build list
This can be a lot of files if you request a very common header! For example -SingleFile=Runtime\Core\Public\Containers\Array.h currently would build over 22k UnrealEditor actions

#rnx
#jira UE-131018
#rb Josh.Adams
#preflight 63daa7a38c7003aa8ca997bd

[CL 23960984 by joe kirchoff in ue5-main branch]
2023-02-01 19:25:15 -05:00
henrik karlsson
0de807f1a8 [UBT]
* Added support for additional response files (will be used by header units)
* Added support for shared response files and changed so normal cpp/h build path uses it if toolchain supports it.
* Enabled shared response files on all platforms but android (which doesnt seem to support reponse files including response files)
* Some cleanup in the iwyu toolchain related to shared rsp files

#preflight 63d9af169b3bb6a66cec9a8e
#rb joe.kirchoff

[CL 23943501 by henrik karlsson in ue5-main branch]
2023-01-31 21:24:28 -05:00
ben woodhouse
61d6a27216 Add support for overriding an individual module's optimization level via a new OptimizationLevel property. This requires either a private PCH, or PCHUsageMode=NoPCHs (not recommended) because Clang requires that a PCH's optimization flags match the compile unit.
#rb Joe.Kirchoff

[CL 23933583 by ben woodhouse in ue5-main branch]
2023-01-31 14:12:11 -05:00