Commit Graph

160 Commits

Author SHA1 Message Date
michael wanderson
442065010d Undo backout CL-31249033
Expose RuntimeDependencies to ToolChain ModifyBuildProducts and LinkFiles methods. This is required to properly bundle DLLs on some platforms.

#Jira UE-199874
#rb David.Harvey

[CL 31277174 by michael wanderson in ue5-main branch]
2024-02-07 18:34:43 -05:00
bob tellez
1b52ec8938 [Backout] - CL31242703
[FYI] michael.wanderson
Original CL Desc
-----------------------------------------------------------------
Expose RuntimeDependencies to ToolChain ModifyBuildProducts and LinkFiles methods. This is required to properly bundle DLLs on some platforms.

#Jira UE-199874
#rb David.Harvey


#changelist validated
#virtualized

[CL 31249061 by bob tellez in ue5-main branch]
2024-02-07 01:15:42 -05:00
michael wanderson
8497503f5a Expose RuntimeDependencies to ToolChain ModifyBuildProducts and LinkFiles methods. This is required to properly bundle DLLs on some platforms.
#Jira UE-199874
#rb David.Harvey


#changelist validated
#virtualized

[CL 31243629 by michael wanderson in ue5-main branch]
2024-02-06 20:39:23 -05:00
joe kirchoff
55dc07301f Prevent unnecessary rebuilds of windows resource files for development builds to reduce how often binaries relink
Only embed info from Build.version in exes and dlls for precompiled or shipping targets. This information is always available at runtime via the BuildSettings module regardless of being embedded in the binaries
Set default windows resource ProductVersion to ENGINE_VERSION_STRING if BUILD_VERSION is not defined

#jira UE-195983
#rb ryan.hummer

[CL 28250002 by joe kirchoff in ue5-main branch]
2023-09-26 17:42:24 -04:00
joe kirchoff
da089d0875 Support for .natstepfilter
#rnx
#jira UE-190863
#jira UE-191341

#ushell-cherrypick of 26715542 by Joe.Kirchoff

[CL 26723680 by joe kirchoff in ue5-main branch]
2023-07-31 18:02:16 -04:00
robert millar
c1261e2c67 Add natvis files to build outputs and manifest to ensure they are copied to intermediate directory during precompile and tagged in horde builds.
#rb joe.kirchoff
#jira UE-182499

[CL 26720420 by robert millar in ue5-main branch]
2023-07-31 16:50:42 -04:00
galeone
431c09150e [UBT] Add support for Code coverage on Linux
#rb Brandon.Schaefer, Jerome.Delattre, Joe.Kirchoff

[CL 25794147 by galeone in ue5-main branch]
2023-06-05 12:03:25 -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
josh adams
24ceb3f238 - Hiding warning/error about missing identity (which is okay to be missing - depending Mac configuration it could be an error not a warning)
- Only use new dSYM utility when doing monolothic binaries, otherwise the normal path works fine (reduces risk)
#jira UE-183336
#rb calvin.zheng
#preflight https://horde.devtools.epicgames.com/job/6439834bdb681113a400ab59

[CL 25054467 by josh adams in ue5-main branch]
2023-04-14 19:13:01 -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
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
henrik karlsson
97f71e1fef [UBT]
* Fixed mac linker error where same link input files were added multiple times. Removed confusing comment saying this could only happen in monolithic builds. Also changed the code to be fronted by a hashset to reduce performance cost (which was the reason the change was made first place)

This fixes Mac linker dup errors

#preflight skipped
#rb joe.kirchoff

[CL 23932005 by henrik karlsson in ue5-main branch]
2023-01-31 13:23:33 -05:00
henrik karlsson
c6787926bd [UBT]
* Minor optimizations based on superluminal profiling information

#preflight 63d860d77a39a180218b2490
#rb joe.kirchoff

[CL 23924068 by henrik karlsson in ue5-main branch]
2023-01-31 01:28:40 -05:00
Joe Kirchoff
49941df8c8 UnrealBuildTool: Prevent multiple target leaking bundle dependencies on Mac
#rnx
#rb Josh.Adams
#preflight 63d1978cbe435f17b408210c
#preflight 63d1af24be435f17b40e38f4

[CL 23858824 by Joe Kirchoff in ue5-main branch]
2023-01-25 17:55:46 -05:00
christopher waters
b23304da2d Fixing -Module=XXX -nolink on Modular builds. The mapping of modules->cpp files wasn't being updated when linking was disabled.
#rb joe.kirchoff
#preflight 63c0699f1a06fc610580e24b

[CL 23670633 by christopher waters in ue5-main branch]
2023-01-12 17:29:45 -05:00
Josh Adams
b337b06556 - Allow for a platform to compile for multiple architectures, and have the high-level compile separately, and then link not separately (this means we can't use the one-target-per-architecture stuff that is already present)
- Mac changes to compile separately,  but link together (with lipo) after making two .dylibs/executables
- Removed FixDylibDependencies on Mac by making "stub dylibs" to mimic what Windows does with import libs, to solve circular dependencies
- Added DependenciesToSkipByArchitecture to ModuleRules that is used, when making a new single-arch LinkEnvironment from a multi-arch LinkEnvironment, to strip out libraries, etc, that should not be included with that single architecture
#preflight 6387891b4004f73f623c85a0
#rb zack.neyland

[CL 23336522 by Josh Adams in ue5-main branch]
2022-11-30 13:38:45 -05:00
Ben Marsh
467087fdc4 UBT: Fix single-file compile for monolithic targets.
#preflight none

[CL 21018555 by Ben Marsh in ue5-main branch]
2022-07-08 20:56:21 -04:00
Ben Marsh
cbb950c578 UBT: Use ILogger throughout UBT, rather than legacy EpicGames.Core.Log methods. All output going forwards should use structured logging rather than String.Format style logging.
#preflight 628e9dc6e746de4961f60032

[CL 20373777 by Ben Marsh in ue5-main branch]
2022-05-25 19:55:37 -04:00
Joe Kirchoff
c512a89ace Rename UnrealBuildTool.EngineSourceDirectory -> Unreal.EngineSourceDirectory
#rnx
#rb trivial
#preflight 628e9fdaf622d972b59ebe85

[CL 20372061 by Joe Kirchoff in ue5-main branch]
2022-05-25 17:54:39 -04:00
nuno leiria
6e8dcfdc2f Change direct reference to Desktop platforms to allow dynamic linking on consoles
#rb jeff.newquist, jonathan.adamczewski
#preflight 62669bc27e06ec7505a51159

[CL 19936018 by nuno leiria in ue5-main branch]
2022-04-27 03:50:57 -04:00