I have the same question with darkgaze‘s question in the Unreal forums. It is kind of annoying to decide which dependency lists property should I use.
PublicIncludePathModuleNames (List<String>)
List of modules names (no path needed) with header files that our module’s public headers needs access to, but we don’t need to “import” or link against.
PublicDependencyModuleNames (List<String>)
List of public dependency module names (no path needed) (automatically does the private/public include). These are modules that are required by our public source files.
PublicIncludePaths (List<String>)
List of all paths to include files that are exposed to other modules. (This setting is currently not needed as we discover all files from the Public folder).
References
- Module Properties
- Build System IncludePathsModuleNames and DependencyModuleNames documentation clarification