Commit Graph

160 Commits

Author SHA1 Message Date
christopher waters
06c921fe43 NonUnity command line arguments should be per-target while build configuration XML settings should be global.
#rb joe.kirchoff

[CL 26589778 by christopher waters in 5.3 branch]
2023-07-25 17:30:34 -04:00
christopher waters
95ea0ff61a Adding UnrealIntermediateEnvironment to allow different intermediate paths based on build settings.
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 26514773 by christopher waters in 5.3 branch]
2023-07-21 12:03:57 -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
tim smith
cf626105dd 1) Replaced bCanCache with new artifact mode flags
2) Added support in artifacts for relative paths
3) Modified ISPC header generation to be cached

At this time, only MSVC compiles are cached and -deterministic must be specified when building.

#rb josh.adams
#preflight 6470a172054af2576a2bd4b9

[CL 25647092 by tim smith in ue5-main branch]
2023-05-26 12:48:45 -04:00
tim smith
22562c2f2c Added the ability to log artifact cache misses.
#rb self
#preflight 6464c4c82d446eac96bbd7c2

[CL 25507081 by tim smith in ue5-main branch]
2023-05-17 10:33:55 -04:00
tim smith
c4e58dd394 Implementation of the action artifact cache.
#rb ben.marsh
#preflight 645a299fa73096fab761de62

[CL 25386005 by tim smith in ue5-main branch]
2023-05-09 08:29:47 -04:00
tim smith
e32f741420 1) Addition of the artifact interfaces
2) Moved common code from executors into an immediate action queue.
3) Added support in the immediate action queue to read/write artifacts

#rb joe.kirchoff
#preflight 6454f3c5ed7ffaa0f5b2fbfa

[CL 25355149 by tim smith in ue5-main branch]
2023-05-05 11:19:57 -04:00
Ben Marsh
3889217961 UBT: Merging CL 25121561 to support async ToolMode and ActionExecutor instances.
#preflight none

[CL 25121660 by Ben Marsh in ue5-main branch]
2023-04-19 21:44:13 -04:00
Joe Kirchoff
78cc2f35ee UnrealBuildTool: Fix issue where -SingleFile was writing a makefile without linked outputs
#preflight 641ce79f974dfaa53cb33439

[CL 24770594 by Joe Kirchoff in ue5-main branch]
2023-03-23 20:04:28 -04:00
Joe Kirchoff
0846b9bf69 UnrealBuildTool: Only -SingleFile compile files if they are included in the target. Requires storing the header list in the makefile
#rnx
#rb Josh.Adams
#rb Henril.Karlsson
#preflight 64125819bf53fdee19bbc593

[CL 24665702 by Joe Kirchoff in ue5-main branch]
2023-03-15 20:07:14 -04:00
Joe Kirchoff
f5ea54cb70 UnrealBuildTool: Don't -SingleFile compile a file that doesn't exist such as a file open for delete
#rnx
#preflight 640f57c428026468d94788a6

[CL 24615618 by Joe Kirchoff in ue5-main branch]
2023-03-13 13:10:29 -04:00
Joe Kirchoff
eb868d8709 UnrealBuildTool: Fix issues with Modified Files Only compiles
#rnx
#rb tivial
#preflight 640294741d304a5471217842

[CL 24511169 by Joe Kirchoff in ue5-main branch]
2023-03-03 19:51:51 -05:00
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
henrik karlsson
dceb9f0713 [UnrealBuildTool]
* Fixed so -SingleFile includes running prereq actions if they are not up to date.

#preflight skipped
#rb joe.kirchoff
#jira none

[CL 24239919 by henrik karlsson in ue5-main branch]
2023-02-15 15:31:40 -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
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
henrik karlsson
2a6a846215 [UBT]
* Fixed inverted logic in BuildConfiguration.bIgnoreInvalidFiles check for singlefile compile

#preflight skipped
#rb none

[CL 24107279 by henrik karlsson in ue5-main branch]
2023-02-09 16:50:09 -05:00
henrik karlsson
d000338c6c [UBT]
* Fixed so BuildConfiguration.bIgnoreInvalidFiles is checked before outputting error when building with -SingleFile containing invalid files

#preflight skipped
#rb none

[CL 24107264 by henrik karlsson in ue5-main branch]
2023-02-09 16:49:47 -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
joe kirchoff
58fa457026 UnrealBuildTool: When requesting -SingleFile builds, outdated PrerequisiteActions still need to be built as one of the single files could require their outputs such as generated ispc headers
#rnx
#rb Josh.Adams
#jira UE-131018
#preflight 63da9edbba4fadeef009a776

[CL 23960960 by joe kirchoff in ue5-main branch]
2023-02-01 19:24:30 -05:00
Josh Adams
bff11d0cb8 - Another HoloLens compiler fix for allowing XmlConfig and CommandLine overrides for compiler version (to specify 2019 compiler). Only project settings were being respected before
- Apply commandline options to UnrealArchitectureConfig objects in Build and GenProject modes
- Also fixed a commant for XML documentation
#rb tim.smith
#jira UE-175633
#preflight 63d9525931334253e599eaa5

[CL 23930591 by Josh Adams in ue5-main branch]
2023-01-31 12:48:45 -05:00