Commit Graph

267 Commits

Author SHA1 Message Date
bryan sefcik
adc423d1db Fixed an issue where the linux editor would not create/use the unrealed shared PCH.
#jira

[CL 25861570 by bryan sefcik in ue5-main branch]
2023-06-07 18:56:39 -04:00
joe kirchoff
030f1a90c3 UnrealBuildTool: Allow any engine module (bTreatAsEngineModule) to access Internal include paths from other modules
#jira UE-186956

[CL 25829083 by joe kirchoff in ue5-main branch]
2023-06-06 17:28:21 -04:00
bryan sefcik
e40d241cde Updated the shared pch logic to not follow the private module dependencies/includes when getting all the possible modules referenced in the pch header.
#jira
#preflight 647bc13b67505cf55c9db0c0

[CL 25783023 by bryan sefcik in ue5-main branch]
2023-06-03 19:34:57 -04:00
bryan sefcik
5fcc1c97a3 Updated the shared pch logic to traverse the dependency tree to find the best shared pch for each module. The logic before would only look at the direct dependencies which if changed could result in possibly worse compile times because a less optimal pch could be picked.
Note: There however are occasions where the old logic can give better shared pchs because it doesn't check whether there is a circular dependency. The new logic does check for circular dependencies so it can sometimes return a safer but less optimal shared PCH. If we find the old logic gives a better shared pch then we go ahead and use it. This will be removed after some of the circular dependencies are resolved.

#rb joe.kirchoff
#preflight 6477e3b87f02573726be946c

[CL 25720154 by bryan sefcik in ue5-main branch]
2023-05-31 23:29:01 -04:00
joe kirchoff
acacd6a8de UnrealBuildTool: More automated code cleanup
* Use object type rather than var
* Remove double newlines
* Use pattern matching

#rnx
#preflight 647780095d23eca37d28a387

[CL 25706751 by joe kirchoff in ue5-main branch]
2023-05-31 13:37:21 -04:00
joe kirchoff
acf80ab609 [Backout] - CL25694851
[FYI] Joe.Kirchoff
Original CL Desc
-----------------------------------------------------------------
UnrealBuildTool: More automated code cleanup

#rnx

[CL 25695155 by joe kirchoff in ue5-main branch]
2023-05-30 19:55:37 -04:00
joe kirchoff
7ed1a39679 UnrealBuildTool: More automated code cleanup
#rnx

[CL 25694864 by joe kirchoff in ue5-main branch]
2023-05-30 19:36:05 -04:00
joe kirchoff
c04da27b3b UnrealBuildTool: More automated code cleanup
#rnx
#preflight 64767efb4b1ead7c7f428c7a

[CL 25693857 by joe kirchoff in ue5-main branch]
2023-05-30 18:59:32 -04:00
joe kirchoff
36d266e932 UnrealBuildTool: Automated code cleanup
#rnx
#preflight 6476799e947ff6973c225619

[CL 25693241 by joe kirchoff in ue5-main branch]
2023-05-30 18:38:07 -04:00
joe kirchoff
57a8fe409c UnrealBuildTool: Use expression body for simple properties and accessors
#rnx
#preflight 64766abcfe6a3b258a04cb50

[CL 25691579 by joe kirchoff in ue5-main branch]
2023-05-30 18:01:50 -04:00
marc audy
b85c7f6304 [Backout] - CL25633679
[FYI] jodon.karlik
Original CL Desc
-----------------------------------------------------------------
UBT: Recursively gather the PublicDependencies and link the entire chain so the writer of a module does not need to understand the linking requirements of every Plugin they use.

#jira UE-166371
#preflight 646fbee150786bb5ba9e2ed2

[CL 25646787 by marc audy in ue5-main branch]
2023-05-26 12:41:53 -04:00
jodon karlik
6c93e02c88 UBT: Recursively gather the PublicDependencies and link the entire chain so the writer of a module does not need to understand the linking requirements of every Plugin they use.
#jira UE-166371
#preflight 646fbee150786bb5ba9e2ed2

[CL 25646395 by jodon karlik in ue5-main branch]
2023-05-26 12:35:49 -04:00
Joe Kirchoff
3a974f2a9d UnrealBuildTool: Print reference chain correctly for include path modules. Process references before include path modules
#rnx
#rb trivial
#preflight 646fc9db2739064275f3c804

[CL 25629576 by Joe Kirchoff in ue5-main branch]
2023-05-25 17:24:14 -04:00
bryan sefcik
543057b477 Fixed an issue where the public dependencies weren't being added to the include path list.
#rb joe.kirchoff
#preflight 645d0d91592448f08b9ce111
#preflight 6464fa322d446eac96d40d6a

[CL 25509605 by bryan sefcik in ue5-main branch]
2023-05-17 12:31:45 -04:00
bryan sefcik
130ae2366e [Backout] - CL25429497
#fyi bryan.sefcik
Original CL Desc
-----------------------------------------------------------------
Fixed an issue where the public dependencies weren't being added to the include path list.

#rb joe.kirchoff
#preflight 645d0d91592448f08b9ce111

[CL 25432128 by bryan sefcik in ue5-main branch]
2023-05-11 14:14:52 -04:00
bryan sefcik
47d43ac65f Fixed an issue where the public dependencies weren't being added to the include path list.
#rb joe.kirchoff
#preflight 645d0d91592448f08b9ce111

[CL 25429497 by bryan sefcik in ue5-main branch]
2023-05-11 12:22:26 -04:00
Josh Adams
1e6ed89565 - Frameworks working on Mac with Modern Xcode just like IOS frameworks
- Update frameworks with a Framework mode to differentiate between linking with it and copying to .app (in case of a static lib framework, or load-only dylib
- Updated CEF3 to work as a normal framework (if we have a universal framework binary, it would be simpler, because LoadInMain() would work without any paths)
#rb roman.dzieciol
#preflight 643484117536ac6b78ae7ce3

[CL 24985043 by Josh Adams in ue5-main branch]
2023-04-10 18:08:40 -04:00
robert millar
240c37b769 Link natvis files from module directories into binary debug info.
#rb joe.kirchoff

[CL 24824604 by robert millar in ue5-main branch]
2023-03-28 15:31:18 -04:00
joe kirchoff
22d71006f0 UnrealBuildTool: Add SupportedTargetTypes attribute, allowing for ModuleRules to be marked as supported for only specific TargetTypes (Editor, Game, Client, Server).
* Add SupportedPlatformGroup attribute, which will resolve to a SupportedPlatform attribute that contains all the platforms in that group
* Allow SupportedConfigurations attribute on ModuleRules
* Filter out -AllModules plugin modules that are unsupported
* Print warning with reference chain when a module is referenced but unsupported

#jira UE-177807
#preflight 641a3684ee0aed1347594abc
#rb Francis.Hurteau

[CL 24756436 by joe kirchoff in ue5-main branch]
2023-03-22 19:44:40 -04:00
tim smith
d790b6cc5a Fixed UBT log event level check that resulted is massive spam to the logger.
#rb josh.adams
#preflight 6419c7b93f3d31c94a042007

[CL 24734531 by tim smith in ue5-main branch]
2023-03-21 13:15:39 -04:00
Ben Marsh
7e26c34d2b EpicGames.Core: Deprecate legacy log methods to prefer structured logging interface.
#preflight 640a23d928026468d9de7cbd

[CL 24580590 by Ben Marsh in ue5-main branch]
2023-03-09 14:51:40 -05:00
josh adams
4d71aa084a - Fixed .precompiled file location to be architcture independent
- Added IntermediateDirectoryNoArch to UEBuildModule (we can use this in the future to put generated definitions headers, which can help reduce rebuilds going between multi- and single-arch)
#rb Joe.kirchoff
#jira UE-178211,UE-178589
#preflight 63fd3cb72b1a2765f9a46322

[CL 24441385 by josh adams in ue5-main branch]
2023-02-28 09:01:08 -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
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
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