dependencies.md 5.4 KB

Compiling dependencies manually

Below you will find a list of dependencies that Banshee relies on, as well as links to their source code and/or binaries. If a dependency isn't provided in binary form you will have to manually compile it (this is the case for the large majority or them). Make sure to compile the exact version of the dependency listed below. Newer versions might work, but haven't been tested.

Once you have the dependency development files (headers and binaries) you will need to make sure they placed in the appropriate folders so Banshee can find them during the build process.

The dependencies are searched for in these locations:

  • The /Dependency folder within Banshee's source. See below for the exact breakdown of how this folder is supposed to look. Usually you want to put all your dependencies here.
  • If dependency cannot be found in the /Dependency folder, its default install path is searched for instead. For example usr/local on Linux/macOS or default install path if the dependency comes with an installer.

Note that on Windows most dependencies do not have default install paths and should therefore be placed in the /Dependency folder. In order to avoid problems with dependency versions this should be the preferred behaviour on Linux/macOS as well.

/Dependency folder breakdown:

  • Static & shared libraries (.lib, .a, .so):
    • Pick one of:
    • (BansheeSource)/Dependencies/(DepName)/lib
    • (BansheeSource)/Dependencies/(DepName)/lib/(Platform)
    • (BansheeSource)/Dependencies/(DepName)/lib/(Platform)/(Configuration)
    • (BansheeSource)/Dependencies/(DepName)/lib/(Configuration)
  • Dynamic libraries (.dll, .dylib)
    • Place in (BansheeSource)/bin/(Platform)/(Configuration)
  • Includes
    • Place in (BansheeSource)/Dependencies/(DepName)/include
  • Tools (executables)
    • Place in (BansheeSource)/Dependencies/tools/(DepName)

Legend:

  • (BansheeSource) - root directory of Banshee
  • (DepName) - name of the dependency (title of each dependency shown below)
  • (Platform) - x86 for 32-bit builds, x64 for 64-bit builds
  • (Configuration) - Debug, OptimizedDebug or Release

Each library is accompanied by a Find***.cmake CMake module that is responsible for finding the library. These modules are located under Source/CMake/Modules. They follow the rules described above, but if you are unsure where library outputs should be placed you can look at the source code for those modules to find their search paths.

Additionally, if the dependency structure still isn't clear, download one of the pre-compiled dependency packages to see an example.

Library list

snappy

nvtt

FBXSDK

  • FBX SDK 2016.1
  • http://usa.autodesk.com/fbx
  • Required by BansheeFBXImporter
  • No compilation required, libraries are provided pre-compiled

freetype

freeimg

mono

  • Mono 4.4.0
  • http://www.mono-project.com/
  • Required by BansheeMono
  • Compile as a dynamic library
    • See Mono-4.4.0-IntegrationGuide.txt for additional notes

PhysX

OpenAL

libogg

  • libogg v1.3.2
  • https://xiph.org/downloads/
  • Required by BansheeOpenAudio and BansheeFMOD
  • Compile as a static library
    • Switch runtime library to dynamic to avoid linker warnings when adding it to Banshee
    • This is also required when compiling libvorbis and libflac (below). See readme files included with those libraries.

libvorbis

libFLAC

glslang

XShaderCompiler

bison

flex

BansheeSBGen