I would like to understand how UE4 toolset is generating this list as I seem unable to access the public include folder of the LandscapeEditor module. I had assumed that when you reference the module in the CS file and force a rebuild that it would auto-magically add it as part of the search path - but it doesn’t seem to be. Are these search folders fixed or is there some other dependency for the creation of the search paths? I’m trying to gain access to various structs defined in this module from my plugin. I’ve been assuming I’m not going to be forced into manually adding this path as I’d like to be able to upgrade this with newer versions without creating compatibility issues.
So I found this post: https://answers.unrealengine.com/que…her-modul.html which was helpful at least in understanding some limitations. I’ve also noticed that the vast majority of C++ specific configuration settings seem to be hidden from the developer (compiler options, linker options, etc.). Finally I’ve seen many references to Intellisense issues where many people seem to be directing folks to just “ignore” intellisense.
If there is anyone out there that has a good understanding of how to influence the include directory paths when you are needing to dip into module private definitions I think you’d be doing the community a great service by explaining it. Disabling/ignoring intellisense is not optimal as it can be a great typo time saver and if there was a way to more directly influence the paths that Intellisense is searching …
The build system works on many platforms and compilers. It does not use the project files in visual studio. Those are generated for human use only.
The CS file is typically called the Build file. Best to use that name when referencing it instead of CS file.
After changing the build file, make sure to right-click the .uproject and generate project files. This generates the visual studio project files. The project generator emits highly-accurate definitions and includes paths which are used by VS IntelliSense while you are working in UE4 code.
(Assuming your “force a rebuild” above implies a visual studio rebuild and not a re-generation of project files.)
Thank you for the links. It was unclear to me how much of the project settings were auto-generated but this implies quite a few are. If you are making use of libraries/SDKs that are outside of the Unreal domain how do you “teach” it to be aware of their location when you don’t have direct access to C++ settings?
External libraries are referred to as Third Party SDKs.
You add them to the build file in a similar manner:
// Add any include paths for the plugin
// Add any import libraries or static libraries
PublicAdditionalLibraries.Add(Path.Combine(ModuleDirectory, “lib”, “foo.a”));
Remember to GenerateProjectFiles after editing.
Hope that helps