Commit Graph

141 Commits

Author SHA1 Message Date
ben woodhouse
982c48de6a Add support for overriding module optimization mode from a target. This allows game projects to override engine module optimization modes.
Note: This also implicitly disables PCH usage if a private PCH isn't set (this was previously fatal, but we need to be more flexible if we're overriding from the target).

#rb joe.kirchoff

[CL 24225336 by ben woodhouse in ue5-main branch]
2023-02-14 20:53:08 -05:00
chris constantinescu
4e7e7f9f3f LLT cleanup and improvements/updates:
- remove dependency on LaunchEngineLoop.cpp which also allows compilation against engine to succeed
- LowLevelTestsRunner no dependency on engine modules required: Launch, Core, Project
- EXPLICIT_TESTS_TARGET definition for self-contained tests: test modules and targets that derive from TestModuleRules/TestTargetRules respectively
- Cleanup Launch dependencies from existing explicit tests
- Cleanup redundant flags from existing explicit tests
- rename Self -> Foundation for in Horde
- additional platform fixes
Default #preflight 63e14d37244dc45a20e29337
All platform/tests LLTs #preflight 63e022f91b44ee7cb1c11d60
#rnx

[CL 24035900 by chris constantinescu in ue5-main branch]
2023-02-06 14:27:24 -05:00
ben woodhouse
61d6a27216 Add support for overriding an individual module's optimization level via a new OptimizationLevel property. This requires either a private PCH, or PCHUsageMode=NoPCHs (not recommended) because Clang requires that a PCH's optimization flags match the compile unit.
#rb Joe.Kirchoff

[CL 23933583 by ben woodhouse in ue5-main branch]
2023-01-31 14:12:11 -05:00
josh adams
1610c3bee3 UnrealArch/UnrealArchitectures changes
- Creates the UnrealArchitectures class, which wraps a list of UnrealArch objects
 - UnrealArch is a single architecture, expandable enum-like struct
 - There is no more concept of "no/default architecture", there is always a valid active architecture when building
 - Most uses of "string Architecture" are replaced with one of the two above, depending if multiple architectures are supported or not
 - UnrealArch has some platform-extensions for platform-specific naming (like Linux adds in LinuxName that turns, for instance, Arm64 -> aarch64-unknown-linux-gnueabi, which is used in folder names, etc)
 - UnrealArch has bIsX64 which can be used determine intel instruction set (as opposed to arm)
 - TargetRules class has an "Architecture" accessor that will return a single architecture if the active architectures is a single architecture, or throw an exception if multiple. This is useful in a majority of the cases where a paltform can only have a single architecture active in TargetRules (microsoft platforms, for instance, will create separate targets when compiling multiple architectures at once)
 - Added UnrealArchitectureConfig class, which contains all the architecture information for a platform (what architectures are supported, what ones are currently active for given project, etc)

#preflight 63c81fb5b065224750a1759e
#rb mike.fricker,roman.dzieciol,joe.kirchoff,dmytro.vovk,brandon.schaefer [various parts]
#p4v-preflight-copy 23562471

[CL 23829977 by josh adams in ue5-main branch]
2023-01-24 09:30:28 -05:00
guillaume guay
54d72765a0 - Defined WITH_GAMEPLAY_DEBUGER_MENU to compile the gameplay debugger categories menus either when WITH_GAMEPLAY_DEBUGGER is defined or when WITH_GAMEPLAY_DEBUGGER_CORE is defined but except in Shipping.
- Debugger Input bindings are automatically registered only when WITH_GAMEPLAY_DEBUGGER is enabled.

[REVIEW] [at]maxime.mercier, [at]yoan.stamant
#preflight https://horde.devtools.epicgames.com/job/63cae88d8421864a9ca132ea

[CL 23797681 by guillaume guay in ue5-main branch]
2023-01-20 16:51:42 -05:00
guillaume guay
36c4c9951d Forcing the Gameplay Debugger Menu to be compiled even in Shipping when bBuildDeveloperTools=true
[REVIEW] [at]maxime.mercier, [at]yoan.stamant

[CL 23784878 by guillaume guay in ue5-main branch]
2023-01-19 20:48:22 -05:00
Joe Kirchoff
24ebcdfb1d UnrealBuildTool: Support msvc analyzer extensions
Enable by setting ModuleRules.bStaticAnalyzerExtensions = true.

It is recommended to use ModuleRules.StaticAnalyzerRulesets to filter the warnings that are reported as this will enable a large number of additional warnings.

Please see the following links for more details:
https://learn.microsoft.com/en-us/cpp/code-quality/using-the-cpp-core-guidelines-checkers
https://learn.microsoft.com/en-us/cpp/code-quality/using-rule-sets-to-specify-the-cpp-rules-to-run

#jira UE-174521
#rb trivial
#preflight 63c9e333977c626356cdf40f

[CL 23784396 by Joe Kirchoff in ue5-main branch]
2023-01-19 19:46:12 -05:00
guillaume guay
1c91bfc34a Allow Gameplay Debugger categories to be compiled in Gameplay Debugger Core mode but never in Shipping.
This will allow game teams to create on-the-fly the Gameplay Debugger when desired (like in Test build) and add the Engine categories they need for the core mode.
Also moved the  Gameplay Debugger Categories header file their corresponding public folder.

[REVIEW] https://p4-swarm.epicgames.net/reviews/23684361
#preflight https://horde.devtools.epicgames.com/job/63c856b602024f93d8e9b510

[CL 23781711 by guillaume guay in ue5-main branch]
2023-01-19 17:10:04 -05:00
henrik karlsson
ffe6cab480 [UBT]
* Deprecated ModuleRules bEnforceIWYU. IWYUSupport property should be used instead

#preflight 63c1eafaa06ab115ea24e6a7
#rb none

[CL 23696267 by henrik karlsson in ue5-main branch]
2023-01-13 23:34:44 -05:00
henrik karlsson
eb3e372b6c [Chaos]
* Moved Rotation.h from Chaos to ChaosCore
* Removed HEADER_UNIT_SKIP in Core.h now when all its includes are valid module dependency wise

#preflight 63c1eafaa06ab115ea24e6a7
#rb chris.caulfield

[CL 23696263 by henrik karlsson in ue5-main branch]
2023-01-13 23:34:40 -05:00
henrik karlsson
23ea716c7a [UBT]
* Added IWYU toolchain which can be enabled with -IWYU
* Added IWYU mode that can be used with -Mode=IWYU. This can be used to modify code files
* Binary of include-what-you-use that contains a ton of fixes to make ue build

#preflight skipped
#rb joe.kirchoff

[CL 23631202 by henrik karlsson in ue5-main branch]
2023-01-10 14:52:00 -05:00
guillaume guay
071218f056 Changing bUseGameplayDebugger to be an enum (Default, Core, Disabled) instead of a bool
Added a new Target's option 'UseGameplayDebuggerCore' to remove GP DBG's menu and default categories
#preflight https://horde.devtools.epicgames.com/job/638f8776c0652bbec27cbe97
#rb mieszko.zielinski

[CL 23422415 by guillaume guay in ue5-main branch]
2022-12-06 20:01:28 -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
guillaume guay
b59eecf4c5 - Moved GameplayDebugger from Developer/ into Runtime/ and Editor source folder to be able to use it in shipping build.
- Moved the code originally in a Editor/ folder into its own GameplayDebuggerEditor module and added it so it get dynamically loaded in the editor
- Added some delegates so GameplayDebugger code can communicate to GameplayDebuggerEditor without referencing it. As only GameplayDebuggerEditor should reference GameplayDebugger, not the opposite.

#preflight https://horde.devtools.epicgames.com/job/637808462a05dabce95c5b9e
[REVIEW] https://p4-swarm.epicgames.net/reviews/23207203
[FYI] guillaume.morreel, andrew.ladenberger

[CL 23258875 by guillaume guay in ue5-main branch]
2022-11-24 09:49:23 -05:00
bryan sefcik
ac642e3ace Updated to disable XGE and SNDBS when profiling.
Added a flag that turns off module unity size overrides.

#jira
[FYI] joe.kirchoff
#preflight 637673ccaf52be152449722a

[CL 23182588 by bryan sefcik in ue5-main branch]
2022-11-17 15:29:33 -05:00
Rafa Lecina
df001c1d21 Support enable ARC in modules
#jira UE-107891
#review @Sam.Zamani @Bertrand.Carre @Chris.Varnsverry @Roman.Dzieciol @Josh.Adams  @Jack.Porter
#preflight

[CL 23133821 by Rafa Lecina in ue5-main branch]
2022-11-15 06:02:36 -05:00
chris constantinescu
7859a6cdb4 Catch2 feature introduced: test groups and group events at global, group and test group before/after levels
#preflight 636ab505450be1d9f83e90e4
#rb Jerome.Delattre

[CL 23039159 by chris constantinescu in ue5-main branch]
2022-11-08 16:02:46 -05:00
joe kirchoff
4bd342fb6c UnrealBuildTool: BuildSetting.V3 (currently disabled) which disallows adding module parent directory to include path list
#rnx
#rb bryan.sefcik
#preflight 634df3105f008d633fd571d2

[CL 22798627 by joe kirchoff in ue5-main branch]
2022-10-26 19:13:07 -04:00
joe kirchoff
20c19d6503 [Backout] - CL22754728
[FYI] Joe.Kirchoff
Original CL Desc
-----------------------------------------------------------------
UnrealHeaderTool: BuildSetting.V3 (currently disabled) which disallows adding module parent directory to include path list

#rnx
#rb bryan.sefcik
#preflight 634df3105f008d633fd571d2

[CL 22795918 by joe kirchoff in ue5-main branch]
2022-10-26 18:18:06 -04:00
joe kirchoff
6e28fec987 UnrealHeaderTool: BuildSetting.V3 (currently disabled) which disallows adding module parent directory to include path list
#rnx
#rb bryan.sefcik
#preflight 634df3105f008d633fd571d2

[CL 22793005 by joe kirchoff in ue5-main branch]
2022-10-26 17:30:50 -04:00
benn gallagher
8be43e1076 Enable physics macro deprecation in all modules for non-engine modules that relied on inheriting from dependencies on engine modules.
#jira UE-167375
#preflight 6351922d3d41a4455a3edda3
#rb Chris.Caulfield
#lockdown michael.lentine

[CL 22786966 by benn gallagher in ue5-main branch]
2022-10-26 15:27:30 -04:00
henrik karlsson
a72cec4bbc [UnrealBuildTool]
* Added support for forcing module to use inlined .gen.cpp files

#rb joe.kirchoff
#preflight skipped

[CL 22673962 by henrik karlsson in ue5-main branch]
2022-10-20 17:53:32 -04:00
bryan sefcik
b3f66b2e18 Added GetModuleDirectory which allows you to get the directory of the passed in module. This makes it easier to include directories from other modules.
#jira
[FYI] joe.kirchoff
#preflight 634de3f25f008d633fd22de1

[CL 22594094 by bryan sefcik in ue5-main branch]
2022-10-18 00:55:33 -04:00
Ryan Gerleve
acc1553813 Changes to allow compiling engine modules with Iris replication code by default, and link against modules/projects that don't depend on Iris.
ModuleRules.SetupIrisSupport defines a new macro to enable or disable the Iris fast array bindings for a module, added UHT support for this. This allows the dependency on the Iris bindings to be compiled out of modules that don't need it and still link with Iris-enabled modules.
Iris plugin disabled by default, should be enabled for specific projects that use it.

#jira UE-160209
#rb mattias.hornlund, peter.engstrom
#preflight 6346fd2cfa31324bb153b63b

[CL 22482725 by Ryan Gerleve in ue5-main branch]
2022-10-12 14:28:30 -04:00
Robert Millar
a677dbc70e Allow disabling all static analysis on a module.
#rb joe.kirchoff
#jira none
#preflight https://horde.devtools.epicgames.com/job/6340540e174b13865728ca7c

[CL 22403984 by Robert Millar in ue5-main branch]
2022-10-07 13:30:19 -04:00