How Unreal Build Tool works

I need to import a library to UE4 source but the only documentation I’ve found is this: A new, community-hosted Unreal Engine Wiki - Announcements and Releases - Unreal Engine Forums

I have to understant how UBT works and what are the exact use UBT makes for each array written below:

  • Definitions
  • PublicSystemIncludePaths
  • PublicLibraryPaths
  • PublicAdditionalLibraries
  • PublicDelayLoadDLLs
  • RuntimeDependencies
  • PublicAdditionalShadowFiles

If you want to add an external library to Unreal Engine, then you will probably want to make it a plug-in. In that case, you can see how other plug-ins link by browsing their source code.

https://github.com/EpicGames/UnrealEngine/tree/release/Engine/Plugins

It’s been a little while, but it looks like LeapMotion might be a good example of a simple library to add.

It’s what I did, but I think is more useful know exactly what is the meaning of each of array.

In this moment I can only speculate, and this force me to make useless tests.

  • Definitions
    Defines passed to compiler, e.g. WITH_EDITOR, FOO=1, etc.
  • PublicSystemIncludePaths
    Haven’t used, include paths for platform headers probably?
  • PublicLibraryPaths
    Paths in which to search for static libraries
  • PublicAdditionalLibraries
    Names of static libraries to link against, e.g. foo.lib for Windows.
  • PublicDelayLoadDLLs
    Names of dlls which should not be loaded instantly on program startup, but will wait until their symbols are first needed. This lets you load them yourself during your module startup routine, where you can specify their location. Means you don’t have to have them deployed in the same directory as the program binary. I think Windows platforms only, not sure.
  • RuntimeDependencies
    Paths to any extra files you want to distribute with packaged builds. They wind up at same relative path in package as they are in the project folder. Most common use is third party dlls.
  • PublicAdditionalShadowFiles
    Don’t know.

Very good Thanks you!!!