Commit Graph

92 Commits

Author SHA1 Message Date
joe kirchoff
e294f152e8 UnrealBuildTool: bTreatAsEngine module creates a pch variant, clean up some unneeded logic
#rnx
#rb christopher.waters, henrik.karlsson

[CL 31070432 by joe kirchoff in ue5-main branch]
2024-01-31 17:57:54 -05:00
joe kirchoff
8557838a06 UnrealBuildTool: Fix incorrect comment for CppCompileEnvironment.bValidateInternalApi
#rnx

[CL 30812717 by joe kirchoff in ue5-main branch]
2024-01-23 14:11:52 -05:00
matt johnson
19a5270ad5 UBT: add "bVcRemoveUnreferencedComdat" ModuleRules property to control whether /Zc:inline is enabled with MSVC
#rb Joe.Kirchoff

[CL 30329213 by matt johnson in ue5-main branch]
2023-12-14 15:09:30 -05:00
joe kirchoff
fbc3e63d8a UnrealBuildTool: Set UE_VALIDATE_INTERNAL_API to control the define UE_INTERNAL which will be set to an empty macro for Engine modules and [[deprecated]] for non-engine modules. This will create a pch variant but will allow a way to stop (or at least discourage) the use of internal code that needs to be in public headers for performance or historical reasons, as well as a way to migrate internal code out of public headers over the span of a few releases
#jira UE-201038
#rb David.Harvey, Devin.Doucette

[CL 30172737 by joe kirchoff in ue5-main branch]
2023-12-06 19:31:44 -05:00
joe kirchoff
d6b2c9077a UnrealBuildTool: Support emiting line tables only for debugging rather than disabling debug info entirely
Configuration is the same as TargetRules.DebugInfo and will override that setting except when debug info is disabled for the entire target

[CL 28558101 by joe kirchoff in ue5-main branch]
2023-10-06 17:13:05 -04:00
henrik karlsson
65b9042153 [UBT]
* Added support for pch using header units.

#rb joe.kirchoff

[CL 28138630 by henrik karlsson in ue5-main branch]
2023-09-22 11:51:23 -04:00
joe kirchoff
9b2f302d4b UnrealBuildTool: Always enable ValidateFormatStrings for engine modules, and create a pch variant for modules that opt out
#rnx

[CL 27352456 by joe kirchoff in ue5-main branch]
2023-08-24 14:59:44 -04:00
joe kirchoff
092ff454ad [Backout] - CL27330584
[FYI] Joe.Kirchoff
Original CL Desc
-----------------------------------------------------------------
UnrealBuildTool: Always enable ValidateFormatStrings for engine modules, and create a pch variant for modules that opt out

#rnx

[CL 27331965 by joe kirchoff in ue5-main branch]
2023-08-23 22:16:13 -04:00
joe kirchoff
c0b34f9bb3 UnrealBuildTool: Always enable ValidateFormatStrings for engine modules, and create a pch variant for modules that opt out
#rnx

[CL 27330607 by joe kirchoff in ue5-main branch]
2023-08-23 20:55:29 -04:00
neil henning
f222493c8a Make CPP files on windows depend on the AutoRTFM compiler version if we are using it.
#rb joe.kirchoff

[CL 27302143 by neil henning in ue5-main branch]
2023-08-23 07:19:35 -04:00
andrew scheidecker
36ed1de4ba Add UBT options that allow per-target and per-module choice between "precise" or "imprecise" FP semantics.
#rb Fabian.Giesen, Joe.Kirchoff

[CL 26615577 by andrew scheidecker in ue5-main branch]
2023-07-26 14:23:55 -04:00
neil henning
74ab43b41c Make the AutoRTFM compiler having changed cause the compiler sources to be clean compiled.
#rb josh.adams

[CL 26506100 by neil henning in ue5-main branch]
2023-07-21 03:55:21 -04:00
joe kirchoff
3cde89ad9a BuildSettingsVersion.V4: Default CppStandard to Cpp20. Latest is not being updated to V4 with this change and will happen at a later date
* Add new setting CppStandardEngine so this can be controlled separately for engine module
* CppStandard no longer requires RequiresUniqueBuildEnvironment as it does not affect engine modules

#rb christopher.waters

[CL 25821375 by joe kirchoff in ue5-main branch]
2023-06-06 13:38:28 -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
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
brandon schaefer
918a67f6d9 Support enabling AutoRTFM instrumentation on a Module level in UBT
#rb Neil.Henning, Joe.Kirchoff
#preflight 646655bd743f7c995bc7a7ff

[CL 25532181 by brandon schaefer in ue5-main branch]
2023-05-18 15:44:35 -04:00
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
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
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
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
e44f248987 UnrealBuildTool: Fix issue generating visual studio solution because of incorrect check if a PCH is in use which was causing modules to use an incorrect SharedPCH when a Private PCH should have been used
#jira UE-177193
#rb Josh.Adams
#lockdown Francis.Hurteau
#preflight 6409298f827cf9251b4fc513

[CL 24579368 by joe kirchoff in ue5-main branch]
2023-03-09 13:42:19 -05:00
Andrew Scheidecker
02f9686b0f Fix ClangToolchain omitting global compiler options from the command line on platforms that don't use a shared response file.
#jira none
#rb Joe.Kirchoff
#preflight 6408d6096c1b9295b9bddca7

[CL 24564056 by Andrew Scheidecker in ue5-main branch]
2023-03-08 13:59:38 -05:00
Joe Kirchoff
04b2b155bc UnrealBuildTool: Make CStandard enum consistent with CppStandard
#rnx
#preflight 6407c690c13b7130d276f1b8

[CL 24551440 by Joe Kirchoff in ue5-main branch]
2023-03-07 18:41:02 -05:00