Commit Graph

256 Commits

Author SHA1 Message Date
jamie dale
87c34119f4 Don't mount localization data for explicitly loaded plugins by default
This allows them to separate their mounting and content loading into two phases, such as allowing a GFP to mount the plugin when "registered" and defer mounting the localization data until "activating".

Note: Anything that was calling one of the MountExplicitlyLoadedPlugin functions to load a plugin, will now need to also call MountExplicitlyLoadedPluginLocalizationData if it wants to also mount the localization data.

#rb anton.dunchev, Leon.Huang

[CL 32029617 by jamie dale in ue5-main branch]
2024-03-05 14:18:02 -05:00
jamie dale
edef03928d Don't load localization data for unmounted explicitly loaded plugins
[FYI] Leon.Huang
#rnx

[CL 31978251 by jamie dale in ue5-main branch]
2024-03-02 17:41:16 -05:00
matt breindel
3c6cf59c14 Infrastructure and general implementation of a new system for providing improve error messages when we skip loading a package during import because the plugin wasn't mounted. the plugin manager and the GameFeatureSubsystem now have an opportunity to provide additional information to the user about why the plugin wasn't loaded or the package wasn't found.
#jira UE-205029
[REVIEW] [at]will.brown [at]*eric.knapik [at]*danny.couture
[FYI] [at]francis.hurteau
#rb danny.couture, Eric.Knapik

[CL 31957199 by matt breindel in ue5-main branch]
2024-03-01 16:48:08 -05:00
will brown
9171aa0825 Added new function suite to return found plugins that are enabled. Updated the LoadBuiltInGameFeaturePlugins sort function to skip plugin dependencies that are not enabled for correctness however it does not impact the final EnabledPlugins list
#rb Eric.Knapik

[CL 31824835 by will brown in ue5-main branch]
2024-02-26 19:29:36 -05:00
will brown
89e769075b In editor, optional plugin dependencies need to be compiled enabled or command line enabled otherwise they are ignored. Updated UBT to write out the BuildPlugins names to the target receipt or compiled into the executable.
#rb Joe.Kirchoff, Justin.Marcus
[FYI] Eric.Knapik

[CL 31774544 by will brown in ue5-main branch]
2024-02-23 15:23:25 -05:00
josh adams
08e95db7d2 Fixed the warning that caused the original backout
[Backout] - CL31459949
[FYI] bob.tellez
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL31443953
[FYI] Josh.Adams
Original CL Desc
-----------------------------------------------------------------
Phase 1 of the FConfigBranch changes:
Introduced FConfigBranch which maintains logic and data for each individual branch of GConfig (Engine, Game, Input, DeviceProfiles, etc), with static and dynamic layers
Introduced FConfigCommandStream which is how each layer is loaded, and Apply'd to an FConfigFile
Added a new way of making a "diff" of in-memory vs what's loaded, which creates an FConfigCommandStream that can be re-applied (more useful in Phase 2, see below)
Expectation is no visible differences from before this change, as it's mostly internal data structure changes
Phase 2 is where the functional changes will happen, with the dynamic layers being able to be removed at runtime, and the state of GConfig is maintained as expdected
The editor does maintain full state of where config values come from, so the "getini" command in the editor will show a lot more information now
Runtime will not keep any state, so unloading dynamic layers is not supported by default (running with -ConfigReplayMethod=1 or 2 will allow for it, but will use more memory)

#rb david.harvey
#jira UE-201472

[CL 31470013 by josh adams in ue5-main branch]
2024-02-14 08:59:25 -05:00
bob tellez
005a9bf20c [Backout] - CL31443953
[FYI] Josh.Adams
Original CL Desc
-----------------------------------------------------------------
Phase 1 of the FConfigBranch changes:
Introduced FConfigBranch which maintains logic and data for each individual branch of GConfig (Engine, Game, Input, DeviceProfiles, etc), with static and dynamic layers
Introduced FConfigCommandStream which is how each layer is loaded, and Apply'd to an FConfigFile
Added a new way of making a "diff" of in-memory vs what's loaded, which creates an FConfigCommandStream that can be re-applied (more useful in Phase 2, see below)
Expectation is no visible differences from before this change, as it's mostly internal data structure changes
Phase 2 is where the functional changes will happen, with the dynamic layers being able to be removed at runtime, and the state of GConfig is maintained as expdected
The editor does maintain full state of where config values come from, so the "getini" command in the editor will show a lot more information now
Runtime will not keep any state, so unloading dynamic layers is not supported by default (running with -ConfigReplayMethod=1 or 2 will allow for it, but will use more memory)

#rb david.harvey
#jira UE-201472

[CL 31459959 by bob tellez in ue5-main branch]
2024-02-13 23:13:53 -05:00
josh adams
bf1468e4b0 Phase 1 of the FConfigBranch changes:
Introduced FConfigBranch which maintains logic and data for each individual branch of GConfig (Engine, Game, Input, DeviceProfiles, etc), with static and dynamic layers
Introduced FConfigCommandStream which is how each layer is loaded, and Apply'd to an FConfigFile
Added a new way of making a "diff" of in-memory vs what's loaded, which creates an FConfigCommandStream that can be re-applied (more useful in Phase 2, see below)
Expectation is no visible differences from before this change, as it's mostly internal data structure changes
Phase 2 is where the functional changes will happen, with the dynamic layers being able to be removed at runtime, and the state of GConfig is maintained as expdected
The editor does maintain full state of where config values come from, so the "getini" command in the editor will show a lot more information now
Runtime will not keep any state, so unloading dynamic layers is not supported by default (running with -ConfigReplayMethod=1 or 2 will allow for it, but will use more memory)

#rb david.harvey
#jira UE-201472

[CL 31444162 by josh adams in ue5-main branch]
2024-02-13 15:40:54 -05:00
dan oconnor
b700017558 Support important messages for platform splash screen and improve plugin managers slow task reporting
#rb ben.hoffman

[CL 31024101 by dan oconnor in ue5-main branch]
2024-01-30 17:34:47 -05:00
holger schmidt
1bd34d8c73 Added option to prevent unload of code library for GameFeaturePlugins.
#rb Justin.Marcus

[CL 30816240 by holger schmidt in ue5-main branch]
2024-01-23 15:40:21 -05:00
steve robb
66266c6a11 Fixed up DerivedDataCache, DesktopPlatform, ApplicationCore, AssetRegistry, Core, CoreUObject, Projects, Sockets code to use EAllowShrinking instead of bools.
[CL 30676428 by steve robb in ue5-main branch]
2024-01-17 19:51:06 -05:00
marc audy
56a32fea9d Silence false V621, V654, and V1078 warnings mostly caused by TStaticArray, placement new, or population of the array inside a lambda
[CL 30587485 by marc audy in ue5-main branch]
2024-01-12 00:52:57 -05:00
marc audy
40118bf525 Silence warnings
[CL 30444877 by marc audy in ue5-main branch]
2023-12-22 17:21:37 -05:00
matt peters
3274ca2761 PluginManager: Improve feedback when a required plugin is unavailable and the process is terminated.
#rnx
#rb Josh.Adams

[CL 30029239 by matt peters in ue5-main branch]
2023-11-30 18:49:18 -05:00
marc audy
763a611985 Fix C4072 warnings
#rnx

[CL 29852844 by marc audy in ue5-main branch]
2023-11-20 17:26:53 -05:00
jeremie roy
f2b22d2836 Add optional plugins to DefaultEngine config
#rb jason.walter
#jira UE-200398

[CL 29777963 by jeremie roy in ue5-main branch]
2023-11-16 10:37:37 -05:00
jamie dale
3c292f5408 Process all configs related to a plugin when it is loaded, even if the related configs were discovered before the plugin was loaded
#rb Josh.Adams
#rnx

[CL 28804446 by jamie dale in ue5-main branch]
2023-10-16 13:06:39 -04:00
jack porter
60c662e101 Allow ForPlatform FConfigContexts for Plugin ini files (ie named the same as the Plugin) to be read from the Plugin config hierarchy instead of the default hierarchy.
#rb Florin.Pascu, Josh.Adams

[CL 28800505 by jack porter in ue5-main branch]
2023-10-16 11:57:21 -04:00
justin marcus
33c24f543b FPluginManager::UnmountExplicitlyLoadedPlugin can unmount code modules
#rb Mike.Fricker
[FYI] Daniel.Lamb

[CL 28687532 by justin marcus in ue5-main branch]
2023-10-11 18:25:45 -04:00
josh adams
5d9b0e221f - Deprecated FPaths::EnginePlatformExtensionsDir() and FPaths::ProjectPlatformExtensionsDir(), as they do not work with Programs
- Introduced the following to FPaths:
   - EnginePlatformExtensionDir(Platform) - gets the Engine PlatExt dir for the given platform
   - ProjectPlatformExtensionDir(Platform) - gets the Project PlatExt dir for the given platform, where Project can be a Program
   - ConvertPath(Path, Method, ExtraData) - converts a Path for platform extensions and Restricted locations. This is going to be "ground truth" for how to get an extension directory (the two functions above call this).
- Added FConfigContext::VisualizeHierarchy() (static and member versions with differing params) that can log ini hierarchies
#rb david.harvey

[CL 28140788 by josh adams in ue5-main branch]
2023-09-22 12:33:38 -04:00
josh adams
aeb5cb1347 - Restoring a backout after fixing the issue that causes the backout
[Backout] - CL27745134
[FYI] stan.hormell
Original CL Desc
-----------------------------------------------------------------
[Backout] - CL27731288 - CIS / Build Errors
[FYI] Josh.Adams
Original CL Desc
-----------------------------------------------------------------
- Deprecated GetSectionPrivate and FindOrAddSection, and accessors in FConfigFile that could return a non-const FConfigSection (this is so we can track modifications to config values)
- Added AddToSection, RemoveKeyFromSection, etc to replace directly accessing a FConfigSection
- Fixed up Epic code for the deprecations (at least the majority, some projects that aren't built by Horde presubmit may have some that we will address going forward)
#jira UE-194955
#rb david.harvey and various others

[CL 27923017 by josh adams in ue5-main branch]
2023-09-15 13:39:02 -04:00
stan hormell
37bad2d07b [Backout] - CL27731288 - CIS / Build Errors
[FYI] Josh.Adams
Original CL Desc
-----------------------------------------------------------------
- Deprecated GetSectionPrivate and FindOrAddSection, and accessors in FConfigFile that could return a non-const FConfigSection (this is so we can track modifications to config values)
- Added AddToSection, RemoveKeyFromSection, etc to replace directly accessing a FConfigSection
- Fixed up Epic code for the deprecations (at least the majority, some projects that aren't built by Horde presubmit may have some that we will address going forward)
#jira UE-194955
#rb david.harvey and various others

[CL 27745141 by stan hormell in ue5-main branch]
2023-09-10 22:58:21 -04:00
josh adams
a8a9a0b759 - Deprecated GetSectionPrivate and FindOrAddSection, and accessors in FConfigFile that could return a non-const FConfigSection (this is so we can track modifications to config values)
- Added AddToSection, RemoveKeyFromSection, etc to replace directly accessing a FConfigSection
- Fixed up Epic code for the deprecations (at least the majority, some projects that aren't built by Horde presubmit may have some that we will address going forward)
#jira UE-194955
#rb david.harvey and various others

[CL 27731364 by josh adams in ue5-main branch]
2023-09-08 17:58:55 -04:00
jamie dale
07cb9e312c Downgrade warning to display to avoid CIS errors when running with -EnableAllPlugins
#jira
#rb none
#rnx

[CL 27723879 by jamie dale in ue5-main branch]
2023-09-08 15:35:24 -04:00
jamie dale
8e37caac97 Improved plugin manager exclusion support when using -EnableAllPlugins
* Added -ExceptRestrictedPlugins to allow you to exclude any restricted plugins
* Added wildcard support to -ExceptPlugins (and -EnablePlugins and -DisablePlugins) so you can do something like -ExceptPlugins="Online*"

#jira
#rb Dave.Belanger, Jason.Walter

[CL 27688930 by jamie dale in ue5-main branch]
2023-09-07 17:09:11 -04:00