Commit Graph

315 Commits

Author SHA1 Message Date
Martin Sevigny
2ddf750a2c Fix problem with Platform Extensions that are not calling StartupModule on added modules. Problem reported on UDN.
#jira none
#rb David.Harvey
#preflight 62f3e6d5bc175ec68c4717d7

[CL 21321663 by Martin Sevigny in ue5-main branch]
2022-08-10 13:22:22 -04:00
henrik karlsson
3d2cb1ce91 [Engine Runtime]
PluginManager - Disabled ini file find caching for all windows configs (not only editor).. this should probably be disabled for everything but since I can't test it easily I will leave that to someone else to change.

This saves ~3 seconds of loading in to some Epic games

#rb Josh Adams
#preflight skipped

#ROBOMERGE-AUTHOR: henrik.karlsson
#ROBOMERGE-SOURCE: CL 21277482 via CL 21292916 via CL 21293206 via CL 21293352
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)

[CL 21296402 by henrik karlsson in ue5-main branch]
2022-08-09 15:44:05 -04:00
Bryan sefcik
b4a6e947d8 Ran IWYU on Public headers under Engine/Source/Runtime/...
Headers are updated to contain any missing #includes needed to compile and #includes are sorted.  Nothing is removed.

#ushell-cherrypick of 21065896 by bryan.sefcik
#preflight 62d4b1a5a6141b6adfb0c892
#jira

#ROBOMERGE-OWNER: Bryan.sefcik
#ROBOMERGE-AUTHOR: bryan.sefcik
#ROBOMERGE-SOURCE: CL 21150156 via CL 21151754 via CL 21154719
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)
#ROBOMERGE-CONFLICT from-shelf

[CL 21181076 by Bryan sefcik in ue5-main branch]
2022-07-20 11:31:36 -04:00
mike beach
b8e0e2682c Fixing issues with plugins, where calling RefreshPluginsList() could discard previously enabled versions of a plugin (when there are multiple version of the same plugin).
#rb Tim.Smith, Francis.Hurteau
#preflight 62c63458b47aed4cf12ec0c7

#ROBOMERGE-OWNER: david.hibbitts
#ROBOMERGE-AUTHOR: mike.beach
#ROBOMERGE-SOURCE: CL 20985176 via CL 20990831 via CL 20991137
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)

[CL 21002412 by mike beach in ue5-main branch]
2022-07-08 02:51:02 -04:00
marc audy
cd4b7d3c78 Game user settings fix and rollback of 20905839, which was itself a rollback of 20029182
#rb [at]Josh.Adams
#preflight

#ROBOMERGE-OWNER: marc.audy
#ROBOMERGE-AUTHOR: mic.rooney
#ROBOMERGE-SOURCE: CL 20973575 via CL 20978259
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v972-20964824)
#ROBOMERGE-CONFLICT from-shelf

[CL 20980862 by marc audy in ue5-main branch]
2022-07-07 01:55:35 -04:00
mike beach
823cfda241 Making some optimizations to plugin discovery in the plugin manager.
Uses the assumption that there shouldn't be other .uplugin files nested under the top level .uplugin directory (no nested .uplugins).

#rb Tim.Smith
[FYI] Matt.Johnson
#preflight 62be4fbf8d5e67875900323e

#ROBOMERGE-OWNER: david.hibbitts
#ROBOMERGE-AUTHOR: mike.beach
#ROBOMERGE-SOURCE: CL 20947488 via CL 20954138 via CL 20954694
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v971-20777995)

[CL 20956964 by mike beach in ue5-main branch]
2022-07-05 22:35:43 -04:00
mic rooney
f5a58f4e71 Temp backout while Josh is out so that we don't break workflows and he can re-backout/unrevert this when he's back in.
* Contains some selected back outs from other cls that included config context dependent changes, though it's limited to only backing out broken parts as much as possible to minimize surface area.

[Backout] - CL20029182
[FYI] josh.adams
Original CL Desc
-----------------------------------------------------------------
- Adding FConfigContext which is used to repalce LoadExternalIniFile, LoadLocalIniFile, etc, as well as have localized data for all configs read on a thread (like the other platform configs loaded in the editor)
- The Load*IniFile functions will create a Context, but eventually those APIs will go away and the Context will be the only way to load ini files
- Simplified some of the ini loading code, like removing the HierarchyCache (it wasn't helping editor load times, and added much complexity, and was not thread-safe, and it shouldn't actually be helpful because all the calls to Load*IniFile should eventually be replaced with either GConfig or FCOnfigCacheIni::ForPlatform(), which won't need to re-read in files
- Ini reading time actually went down due to the simplification, including Cache removal
- Left in old code for now behing a #define (USE_CONTEXT) in case something goes wrong
- Added in VERIFY_CONTEXT mode which I used to run original and Context modes and compare (including preflighting builds) (I also added a Compare function that we may want to keep around to use for future debugging)
- Added a separate set of config layers for plugins which speeds up plugin parsing, but also will fix the issue with BaseEngine.ini vs DefaultEngine.ini in Engine vs Project plugins (this shows how Contexts can bring useful information down into the guts - however a later change will enable it)
- Once this is all seen to be working, I will clean up the non-Context functions, and some globals vs static members, etc
#rb paul.chipchase
#preflight 62716c1c5e6ce673f452005a


#ROBOMERGE-AUTHOR: josh.adams
#ROBOMERGE-SOURCE: CL 20029165 via CL 20029180 via CL 20905839 via CL 20905880
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v971-20777995)

[CL 20908094 by mic rooney in ue5-main branch]
2022-06-30 20:54:32 -04:00
mike beach
f03de94c79 Fixing misconfigured ensure (which was blocking functionality).
[FYI] Votch.Levi

#ROBOMERGE-OWNER: mike.beach
#ROBOMERGE-AUTHOR: mike.beach
#ROBOMERGE-SOURCE: CL 20846649 via CL 20848564 via CL 20848577
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v971-20777995)

[CL 20849663 by mike beach in ue5-main branch]
2022-06-28 03:10:32 -04:00
mike beach
633a592bfd Providing a way for external systems to extend the plugin configuration process.
#rb Tim.Smith
#preflight 62ba031e4209c7c579e14e50

#ROBOMERGE-OWNER: mike.beach
#ROBOMERGE-AUTHOR: mike.beach
#ROBOMERGE-SOURCE: CL 20845730 via CL 20847881 via CL 20847947
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v971-20777995)

[CL 20849238 by mike beach in ue5-main branch]
2022-06-28 02:45:09 -04:00
mike beach
3720eebcf6 Adding the ability to supply multiple versions of a named plugin to UE (defaulting to the latest), along with the ability to reference a specific version.
#rb Francis.Hurteau, Tim.Smith
[FYI] Francis.Hurteau, Tim.Smith, matt.johnson, votch.levi
#preflight 62acf450d35e30c5cf2e0a54

#ROBOMERGE-OWNER: mike.beach
#ROBOMERGE-AUTHOR: mike.beach
#ROBOMERGE-SOURCE: CL 20739405 via CL 20742266 via CL 20762166
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v970-20704180)

[CL 20764079 by mike beach in ue5-main branch]
2022-06-21 15:52:51 -04:00
andrew scheidecker
1218625098 Changed boolean property bVersePublicApi on Build.cs and uplugin files to an enum named VerseScope with three states InternalAPI, PublicAPI and User.
Submitting on behalf of Markus.Breyer.

#rnx
#rb Markus.Breyer, Graeme.Thornton, Eric.Knapik
#preflight 62a74175af7ad033effb81ad

#ROBOMERGE-OWNER: andrew.scheidecker
#ROBOMERGE-AUTHOR: andrew.scheidecker
#ROBOMERGE-SOURCE: CL 20629231 via CL 20629334 via CL 20629474 via CL 20629523
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v955-20579017)

[CL 20636288 by andrew scheidecker in ue5-main branch]
2022-06-13 18:37:53 -04:00
Martin Ridgers
1f733c02cf Fixed misspelt variable name.
#rb trivial
#rnx
#preflight 6299bd256438e3c731452d4c

[CL 20484073 by Martin Ridgers in ue5-main branch]
2022-06-03 04:11:15 -04:00
markus breyer
45f42535a5 Added new properties to Build.cs and uplugin files to support Verse public API
- new property bVersePublicApi in Build.cs files that is set to expose the associated Verse code to public users
- new property "VersePublicApi" in uplugin files that is set to expose the associated Verse code to public users

#rb andrew.scheidecker, conan.reis
#rnx
#preflight 628c579c3b67edca7a615f57
#preflight 628fe09bf622d972b5f58a6e

#ROBOMERGE-OWNER: markus.breyer
#ROBOMERGE-AUTHOR: markus.breyer
#ROBOMERGE-SOURCE: CL 20386247 via CL 20386248 via CL 20386313 via CL 20386316
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v949-20362246)

[CL 20387729 by markus breyer in ue5-main branch]
2022-05-26 19:24:39 -04:00
dave belanger
356027e04e Remove log error from FPluginManager::AddToModuleNameToPluginMap until UE5 occurences are fixed
#rb Eric.McDaniel
#preflight skip

#ROBOMERGE-OWNER: eric.mcdaniel
#ROBOMERGE-AUTHOR: dave.belanger
#ROBOMERGE-COMMAND: _robomerge[bot4] UE5-MAIN
#ROBOMERGE-SOURCE: CL 20266942 via CL 20266961 via CL 20267145 via CL 20267156
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 20267183 by dave belanger in ue5-main branch]
2022-05-18 16:02:55 -04:00
dave belanger
ce03b17767 Module name to plugin lookup table in plugin manager
#rb Bob.Tellez
#preflight 6283e3264316db80d19e3b85

#ROBOMERGE-AUTHOR: dave.belanger
#ROBOMERGE-SOURCE: CL 20261041 via CL 20261054 via CL 20261065 via CL 20261072
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 20263090 by dave belanger in ue5-main branch]
2022-05-18 12:58:18 -04:00
justin marcus
f6e05bc741 When unmounting a plugin, remove it from [Core.System]:Paths.
[REVIEW] [at]Josh.Adams [at]Graeme.Thornton

#ROBOMERGE-AUTHOR: justin.marcus
#ROBOMERGE-SOURCE: CL 20247079 via CL 20247098 via CL 20247134 via CL 20247158
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 20250995 by justin marcus in ue5-main branch]
2022-05-17 17:09:39 -04:00
dave belanger
c7522dfbad FProjectDescriptor::HasModule to quickly test whether a given module is a project module (editor only)
#rb Bob.Tellez
#preflight 62829370734d06577038e5ee

#ROBOMERGE-AUTHOR: dave.belanger
#ROBOMERGE-SOURCE: CL 20242585 via CL 20242697 via CL 20242711 via CL 20242726
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v943-19904690)

[CL 20244342 by dave belanger in ue5-main branch]
2022-05-17 11:44:01 -04:00
zorbathut
9bf5cacadb Improve the warning logged when we detect a plugin using an engine version that is not compatible with the current engine version.
#rb Paul.Chipchase
#rnx
#jira UE-133191
PR #8567: Improve diagnostics for plugin version mismatch. (Contributed by zorbathut)
#preflight 628248becf7e4667a98c2c49

- I tweeked the log message slightly from the PR
-Worth noting that we don't need to localize this message even if it does feel a bit user facing as ::PromptToLoadIncompatiblePlugin will display a localized error message relating to the problem to the end user.

[CL 20222531 by zorbathut in ue5-main branch]
2022-05-16 09:07:41 -04:00
Josh Adams
2023137e20 - Changed Plugins to use an FConfigContext, uising the FConfigContext::ReadPluginFile() factory, this dramatically reduces the number of files to scan, solves the BaseFoo.ini vs DefaultFoo.ini issue for Engine vs Project plugins
- Moved the IniCacheSet into the FConfigContext, and out of FConfigCacheIni. We could possibly get rid of it now entirely with the reduced number of paths we look for (and the fact that plugin scanning will be multithreaded soon)
- Removed the TRUEENGINE workaround now that Plugins are using a context to load the file, this makes the workaround unnecessary since plugins don't fake the EngineConfigDir
#rb jon.nabozny
#preflight 627959cf242446ce6c637258
#jira UE-151373,UE-151376

[CL 20108089 by Josh Adams in ue5-main branch]
2022-05-09 14:58:59 -04:00
justin marcus
bd2ccb7448 Fix typos and remove check for bExplicitlyLoaded. Its ok to add a plugin to the list that doesn't have bExplicitlyLoaded.
#preflight
[REVIEW] [at]Paul.Chipchase

#ROBOMERGE-AUTHOR: justin.marcus
#ROBOMERGE-SOURCE: CL 19849467 via CL 19850987 via CL 19861218 via CL 19861299
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v940-19807014)

[CL 19870849 by justin marcus in ue5-main branch]
2022-04-22 15:49:30 -04:00
justin marcus
0d3a391ab0 Game Feature Plugins get removed from plugin manager in FGameFeaturePluginState_Unmounting if they had to be added to the plugin manager list by FGameFeaturePluginState_Mounting.
[REVIEW] [at]Bob.Tellez [at]Michael.Noland
#preflight 625f0ce93e0f6f80adbd76bb

#ROBOMERGE-AUTHOR: justin.marcus
#ROBOMERGE-SOURCE: CL 19818572 via CL 19821467 via CL 19822259 via CL 19822532
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v940-19807014)

[CL 19827859 by justin marcus in ue5-main branch]
2022-04-20 08:20:37 -04:00
dave belanger
cb92e5be1e Add IPluginManager::GetBuiltInPluginNames
#rb Rex.Hill
#preflight 625ec2b3804460ab0f0556a8

#ROBOMERGE-AUTHOR: dave.belanger
#ROBOMERGE-SOURCE: CL 19808196 via CL 19814134 via CL 19818198 via CL 19819296
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v939-19570697)

[CL 19821677 by dave belanger in ue5-main branch]
2022-04-19 19:20:34 -04:00
dave belanger
3f2387f8c2 Add editor-only CachedJson and AdditionalFieldsToWrite to FPluginReferenceDescriptor similar to what we have in FPluginDescriptor
#rb Rex.Hill
#preflight 624ded4d8d1db441a92569f6

#ROBOMERGE-AUTHOR: dave.belanger
#ROBOMERGE-SOURCE: CL 19655523 via CL 19656850 via CL 19657328 via CL 19657413
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v938-19570697)

[CL 19665916 by dave belanger in ue5-main branch]
2022-04-07 04:38:22 -04:00
rex hill
b3a78942e8 Show dialog and block plugins from overriding specific config ini files.
Config files are marked NoSave when plugin overrides them.
NoSave prevents issues with plugins leaving stale data around in config if turned off later.

#preflight 6238f556ec68595f3b7cac21
#rb dave.belanger

#ROBOMERGE-OWNER: rex.hill
#ROBOMERGE-AUTHOR: rex.hill
#ROBOMERGE-SOURCE: CL 19481929 via CL 19487176 via CL 19497560 via CL 19497573
#ROBOMERGE-BOT: UE5 (Release-Engine-Staging -> Main) (v936-19480137)

[CL 19498734 by rex hill in ue5-main branch]
2022-03-24 13:40:43 -04:00
paul chipchase
5f57376867 Allow stand-alone programs to opt out of plugin discoverability
#rb PJ.Kack
#rnx
#preflight 6239f155ca34ffd7bf6c5f8d
#robomerge FNNC

- By setting "UE_DISABLE_PLUGIN_DISCOVERY=1" in its target.cs a stand-alone program can avoid the cost of iterating over all plugins but still load and enable specific plugins that it knows it needs.
- In the future we could make this data driven by allowing a program to supply something similar to the .upluginmanifest file.

[CL 19479783 by paul chipchase in ue5-main branch]
2022-03-23 11:17:34 -04:00