Commit Graph

217 Commits

Author SHA1 Message Date
Joe Kirchoff
328db31586 UnrealBuildTool: Always compile engine modules with C++20, unless the platform doesn't support it
* Add MaxCppStandard option to the target, so the CppStd can be limited if it would be set higher for any reason. HoloLens for example does not support c++20 because it uses the /ZW flag to enable WinRT and these are incompatible. I will look into making WinRT only be added if it is required for a Module at a later time
* Any module that sets bTreatAsEngineModule will be upgraded to c++20 unless it has already overridden it to c++17, unless MaxCppStandard is set.
* Some modules, mostly in plugins, are set in the ModuleRules to always build with c++17. This is generally because third party source is included that are incompatible with c++20 but there are a few cases that should be looked into later
* VS2019 needed a few extra fixes but also supports c++20. Reminder that support for the 2019 toolchain is going to be removed in 5.5

#jira UE-182121
#rb Francis.Hurteau
#preflight 6441adee434155a8f8688d45
#preflight 6441adfcf030f684d53981c5

[CL 25153700 by Joe Kirchoff in ue5-main branch]
2023-04-21 17:04:15 -04:00
bryan sefcik
baa4c8aada Updated UBT to throw warnings or errors(based a build config xml property) if there are PCH performance issues detected in the buildgraph.
#rb joe.kirchoff
#fyi marc.audy
#preflight 644172b9935b5081b07edd6c

[CL 25132236 by bryan sefcik in ue5-main branch]
2023-04-20 14:17:10 -04:00
Joe Kirchoff
40fe5af915 UnrealBuildTool: Use a force include file for preprocessor defines in .c files when compiling
#rb trivial
#preflight 644078cfb91c130758cbcf9f

[CL 25120195 by Joe Kirchoff in ue5-main branch]
2023-04-19 19:45:30 -04:00
Joe Kirchoff
bcedb28640 UnrealBuildTool: MSVC deterministic mode pch variant
#rnx
#rb trivial
#preflight 643f391a211b661dc483c71f

[CL 25099894 by Joe Kirchoff in ue5-main branch]
2023-04-18 22:23:21 -04:00
Tim Smith
5a4c8c3cee Fixed issue where the check for first header include was not being reported as an actual warning/error.
#rb ryan.hummer
#preflight 6436c029b67b6017ea5b9ff9

[CL 25007285 by Tim Smith in ue5-main branch]
2023-04-12 10:51:39 -04:00
Jeff Fisher
25ff24a7b1 UE-181824 Move HeadMountedDisplay files to XRBase plugin to reduce UE overhead.
-Moving much of engine/source/runtime/headmounteddisplay to a plugin mainly to reduce minimum UE executable size and memory use.  But this is also nice for organization.  The ideal would be to move everything except interfaces used by core engine. VREditor pulling in UMotionControllerComponent is the main blocker at this time.  That dependency is expected to go away eventually at which point we can do the rest of this transfer.
-Added dependencies to XRBase plugin or module as necessary, refactored to avoid some dependencies, removed a few unnecessary dependencies.
-Stripped vestigial VR references from a few project templates.  Mostly just unused HeadMountedDisplay module refs, but a tiny bit of code from TP_Puzzle.
-Fixed dependency cycle ignores related to MaterialShaderQualitySettings PIEPreviewDeviceProfileSelector and UnrealEd.  For reasons I do not understand the HeadMountedDisplay dependency on AugmentedReality was preventing the detection of those, long existent, cycles.
#jira UE-181824
#review
#rb Robert.Srinivasiah
#preflight 642f3cbf4c3ccbbdf1990a1f  6434291c28551807175e1142

[CL 24984065 by Jeff Fisher in ue5-main branch]
2023-04-10 17:12:32 -04:00
saam barati
33186743fe Fix areas where I used spaces instead of tabs in 24959203
#rb none
#preflight none

[CL 24984001 by saam barati in ue5-main branch]
2023-04-10 17:09:31 -04:00
saam barati
d38bd62f99 Land public UBT portions of SOL-4383
#preflight 642dca73c6769c6082fc8693
#rb Phil.Pizlo
#rb Andrew.Scheidecker

This patch makes it possible to generate header files in a way that the Verse VM will take advantage of.

[CL 24960308 by saam barati in ue5-main branch]
2023-04-06 19:30:49 -04:00
Joe Kirchoff
60234ab3bb UnrealBuildTool: Update support for minimum cpu arch for x64 platforms. Replaces ModuleRules.bUseAVX
* Add MinimumCpuArchitectureX64 enum, valid values are None, AVX, AVX2, & AVX512. Default value is None
* Obsolete boolean bUseAVX in favor of MinCpuArchX64
* Add MinCpuArchX64 setting to TargetRules
* Add Optional MinCpuArchX64 to ModuleRules, will override any target setting if not null
* Only pass this /arch for x64 platforms
* Can be controlled on the command line with -MinCpuArchX64=

#jira UE-181851
#rb Bryan.Sefcik
#preflight 6425fc7f91589478cdc7867c

[CL 24861220 by Joe Kirchoff in ue5-main branch]
2023-03-30 17:52:50 -04:00
Joe Kirchoff
2a261c113d EpicGames.Core: Obsolete ReadOnlyHashSet in favor of IReadOnlySet
#rb Ben.Marsh
#preflight 641e1145a86ae7cbcc86bc53

[CL 24789316 by Joe Kirchoff in ue5-main branch]
2023-03-24 17:59:47 -04:00
avudnez
ed061d2ae4 PR #10269: Add TargetRules.bWarnAboutMonolithicHeadersIncluded to control UE_IS_? (Contributed by avudnez)
#preflight 6419e728bb1320be412c3fbd

[CL 24734730 by avudnez in ue5-main branch]
2023-03-21 13:24:47 -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
88c89989cd UnrealBuildTool: Update -Deterministic to not have a per module setting as this doesn't work due to PCH requirements and instead add a setting to control warning level
#rb Henrik.Karlsson

[CL 24647188 by joe kirchoff in ue5-main branch]
2023-03-14 19:43:44 -04:00
Joe Kirchoff
0ad148be67 UnrealBuildTool: ModuleRules CppStandardVersion should be nullable so we can detect when it's actually overridden
#preflight 64066ea48832f48a4ddaee26

[CL 24532882 by Joe Kirchoff in ue5-main branch]
2023-03-06 18:04:01 -05:00
joe kirchoff
01501efcf9 [Backout] - CL24530832
#fyi Joe.Kirchoff
Original CL Desc
-----------------------------------------------------------------
UnrealBuildTool: Module CppStandard needs to be overridden if it doesn't match the target, rather than if it doesn't match the default
#preflight 640659f02559570cc77b55ed

[CL 24532448 by joe kirchoff in ue5-main branch]
2023-03-06 17:40:10 -05:00
Joe Kirchoff
d39367f0ef UnrealBuildTool: Module CppStandard needs to be overridden if it doesn't match the target, rather than if it doesn't match the default
#preflight 640659f02559570cc77b55ed

[CL 24530832 by Joe Kirchoff in ue5-main branch]
2023-03-06 16:37:42 -05:00
Josh Adams
864b1270f6 - Skip hidden source files
#preflight 64060c6b2559570cc75368a8
#rb henry.falconer

[CL 24523412 by Josh Adams in ue5-main branch]
2023-03-06 11:07:00 -05:00
Joe Kirchoff
029b190e08 UnrealBuildTool: Allow overriding bWarningsAsErrors on a per module basis
#rb christopher.waters
#preflight 63ff840ca134e0b0590f38a5

[CL 24464453 by Joe Kirchoff in ue5-main branch]
2023-03-01 12:12:31 -05:00
bryan sefcik
a9014116de Replaced the target rule bool "bMergeModuleAndGeneratedUnityFiles" with a list of modules that disable the functionality of merging the module and generated cpp files(DisableMergingModuleAndGeneratedFilesInUnityFiles). The engine modules will depend on merging the module and generated cpp files being in the same unity files very soon so we can't allow turning off the functionality across all the code. This change allows licensees to disable the merging of a specific module if it is needed.
#rb joe.kirchoff
#preflight 63fe7a3c437ce3e7f3b53617

[CL 24453378 by bryan sefcik in ue5-main branch]
2023-02-28 17:39:01 -05:00
bryan sefcik
798f48c9f9 Removed the ability to disable inlining gen.cpp files. The engine code relies on this feature and can't compile without it now.
#fyi joe.kirchoff
#preflight 63fd48de2b1a2765f9a987a5

[CL 24447101 by bryan sefcik in ue5-main branch]
2023-02-28 13:50:14 -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
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
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