In an Unreal Engine .uproject file there is a Modules section which lists the project-specific modules with a source code folder under the Source folder.
Each such module definition has an AdditionalDependencies field with a list of strings.
What is the meaning of this AdditionalDependencies field? Is it a list of modules or plugins?
If modules, what does it mean for a module A to have a dependency on module B? That is, what effect does this listing have:
"Modules":[
{
"Name":"A",
...
"AdditionalDependencies":[
"B"
]
},
...
]
Each module has an associated build file .Build.cs, and in it is contained PublicDependencyModuleNames and PrivateDependencyModuleNames lists.
Is the kind of module dependency declared by .uproject/AdditionalDependencies different from the kind of module dependency declared by .Build.cs/DependencyModuleNames ? If so, how?
(Crossposted https://forums.unrealengine.com/t/what-does-the-additionaldependencies-field-mean-in-uproject-modules-section/589091?u=zos and https://www.reddit.com/r/unrealengine/comments/vjg6q9/what_does_additionaldependencies_in_an_unreal/)
I found this note about the field at https://docs.unrealengine.com/5.0/en-US/unreal-engine-modules/:
So what I suspect is that the
AdditionalDependenciesfield is some kind of evolutionary left over, and that the dependencies declared in the.Build.csfile are intended to completely replace it.I have entirely removed the
AdditionalDependenciesfields from my.uprojectfile, and thus far have not observed any ill-effects.I'd still be curious to know the story behind it if anyone knows.