# Compiling ## Quick start Use the commands below to get Banshee up and running as quickly as possible. Scroll further below for advanced build options that allow for more customization. **Windows (Visual Studio 2015)** Make sure you have installed *git* and *CMake* (version 3.7.2 or newer). Make sure paths to their binaries are in your *PATH* enviroment variable. Run the following commands and the *.sln* will be placed in the */Build* folder: ``` git clone https://github.com/BearishSun/BansheeEngine.git cd BansheeEngine mkdir Build cd Build cmake -G "Visual Studio 14 2015 Win64" ../Source ``` >Note: If compilation fails with errors related to DirectX, you need to install relevant DirectX dependencies as described [here](#otherDeps). **Linux** *Coming soon* **OS X** *Coming soon* ## Customizing the build By default the process above will fetch the *master* branch. If required switch to a different branch before building: - **preview** - This branch always contains latest "stable" pre-release version. This might be a few months behind master. - **master** - This branch contains the latest changes, might be quite unstable and might not even compile. Use this if you absolutely need the bleeding edge changes. Variety of *CMake* variables are provided that allow you to customize the build: - By default the process above will build the complete Banshee 3D runtime. You can pick between two modes using the *BUILD_SCOPE* variable in *CMake*: - **Runtime** (default) - This will compile the entire engine, scripting system and the editor. This is intended for those that plan on using the editor as their main environment for development. - **Framework** - This will compile only the C++ engine framework without the editor or the scripting API. This is intended for those that prefer to develop more directly with less high level abstractions. - Additional variables allow you to pick between the render API (Vulkan, DirectX, OpenGL), audio module (FMOD, OpenAudio) among other options. Run *CMake* to see all options. - Note that non-default *CMake* options might require additional dependencies to be installed, see [here](#otherDeps). You can choose to use a different *CMake* generator than those specified above, as long as the platform/compiler is supported: - Supported platforms: - Windows - (Mac & Linux coming soon) - Supported compilers: - MSVC++ 14.0 (Visual Studio 2015) - (Clang/GCC coming soon) ### Third party dependencies Banshee relies on a variety of third party dependencies. A set of pre-compiled dependencies are provided for every supported platform/compiler. These will be fetched automatically by the build process, but you may also download them manually or compile them from source: * [Download dependencies (VS2015)](http://data.banshee3d.com/BansheeDependencies_VS2015_Master.zip) * [Compiling dependencies manually](dependencies.md) For older versions of pre-compiled dependencies check the git release tag descriptions for links. ## Other dependencies The following dependencies will need to be installed manually. Which ones are required depend on the selected *CMake* options and your usage of Banshee (check text of each entry below). **DirectX SDK** (Optional if not using DirectX) - Only needed if on Windows 7 or earlier and using DirectX 11 render API - Set up DXSDK_DIR environment variable pointing to the DirectX instalation **Windows SDK** (Optional if not using DirectX) - Only needed if on Windows 8 or later and using DirectX 11 render API **DirectX Debug Layer** (Optional if not using DirectX) - Only needed if on Windows 10 and using DirectX 11 render API - Go to Settings panel (type "Settings" in Start)->System->Apps & features->Manage optional Features->Add a feature->Select "Graphics Tools" **Vulkan SDK** (Optional if not using Vulkan) - Only needed if you selected the Vulkan render API during build configuration - https://lunarg.com/vulkan-sdk/ - If CMake complains it cannot find Vulkan, manually set the Vulkan_INSTALL_DIRS to your installation directory **Python 3.5** (Optional) - Only needed if you plan on running Python scripts in the /Scripts folder - https://www.python.org/downloads/ **FMOD Low Level Programmer API** (Optional) - Only needed if you selected the FMOD audio module during build configuration - http://www.fmod.org/download/ - If CMake complains it cannot find FMOD, manually set the FMOD_INSTALL_DIRS to your installation directory - Copy the dynamic libraries from {INSTALLDIR}/api/lowlevel/lib into /bin folder in Banshee source code folder - Use logging libraries for the Debug builds, and non-logging for OptimizedDebug and Release builds **Mono 4.2** (Optional) - If you wish to compile managed assemblies using a Microsoft compiler (e.g. using Visual Studio) yet still be able to debug the generated assemblies, you must install Mono 4.2. and set up an environment variable MONO_INSTALL_DIR pointing to the Mono installation directory. When this is set up "pdb2mdb" script will trigger on next compile generating the needed debug symbols. - http://www.mono-project.com/download/