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]
[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]
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]
* 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]
- 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]
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]
* 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]
* Minor optimizations based on superluminal profiling information
#preflight 63d860d77a39a180218b2490
#rb joe.kirchoff
[CL 23924068 by henrik karlsson in ue5-main branch]
- 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]