Browse Source

Updated the compilation guide to match the new dependency structure

BearishSun 9 năm trước cách đây
mục cha
commit
9cf6e5d39c
2 tập tin đã thay đổi với 240 bổ sung20 xóa
  1. 44 20
      Documentation/GitHub/compiling.md
  2. 196 0
      Documentation/GitHub/dependencies.md

+ 44 - 20
Documentation/GitHub/compiling.md

@@ -8,32 +8,56 @@ It can be compiled using:
  - MSVC++ 14.0 (Visual Studio 2015)
  - Clang
  
-Use CMake to generate a VS solution, makefile or other type of build file. CMake root file is available at Source/CMakeLists.txt.
- 
 Banshee currently only compiles on Windows, but Mac & Linux ports are coming soon.
 
-# Third party dependencies
-Aside from the source code you will also need various third party dependencies. You may retrieve/compile those dependencies yourself by following a guide in "CompilingDependenciesManually.txt" (provided with the source code). 
+To compile follow these steps:
+ 1. Download source code
+ 2. Download [data files](#data) and extract them into the source directory
+ 3. Set up [third party dependencies](#dependencies)
+ 4. Generate a build file (e.g. Visual Studio solution or a Makefile) using CMake
+  - You can customize your build by choosing options like render API (DirectX, OpenGL), audio module and whether to build the entire editor or just the engine.
+ 5. Compile using your favorite tool
 
-Optionally, if you are using VS2015 you can avoid compiling dependencies by downloading the archive below, containing a set of pre-compiled dependencies. These should be extracted in the root of the directory containing Banshee source code.
+# <a name="data"></a>Data files
+Data files are non-code resources like images, shaders, etc. needed to run the editor, engine and example projects.
 
-[Download dependencies (VS2015)] (http://bearishsun.thalassa.feralhosting.com/BansheeDependencies_VS2015_v0.3.0.zip)
+[Download data files (Latest)] (http://bearishsun.thalassa.feralhosting.com/BansheeData_Master.zip)
 
 For older versions check the git release tag descriptions for links.
+ 
+# <a name="dependencies"></a>Third party dependencies
+Banshee relies on a variety of third party dependencies. We provide a set of pre-compiled dependencies needed for the latest version of Banshee using Visual Studio 2015, to save you the hassle of compiling them yourself. If you are not using VS2015 or want to compile the dependencies yourself for some other reason, a guide is provided below.
 
-## Windows dependencies
-For Windows additional dependencies not included in the dependencies package are needed.
-
-Make sure to:
- - Install Windows SDK if on Windows 8 or higher.
- - Install DirectX SDK.
-   - Set up DXSDK_DIR environment variable to point to the SDK install directory.
- - Install DirectX Debug Layer in Windows 10:
-   - Settings panel->System->Apps & features->Manage optional Features->Add a feature->Select "Graphics Tools"
-
-# Data files
-You will also need data files (non-code resources like images, shaders, etc.) in order to run the editor, engine and example projects.
+ * [Download dependencies (VS2015)] (http://bearishsun.thalassa.feralhosting.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.
 
-[Download data files] (http://bearishsun.thalassa.feralhosting.com/BansheeData_v0.3.0.zip)
+The following dependencies will need to be installed manually regardless if you used pre-compiled dependency package or have compiled them yourself.
 
-For older versions check the git release tag descriptions for links.
+**DirectX SDK**
+ - Only needed if on Windows 7 or earlier and using DirectX 11 render API
+ - Or for all Windows versions if using DirectX 9 render API
+ - Set up DXSDK_DIR environment variable pointing to the DirectX instalation
+ 
+**Windows SDK**
+ - Only needed if on Windows 8 or later and using DirectX 11 render API
+ 
+**DirectX Debug Layer**
+ - 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"
+ 
+**Python 3.5**
+ - Only needed if you plan on running Python scripts in the /Scripts folder
+ - https://www.python.org/downloads/
+
+**FMOD Low Level Programmer API**
+ - Only needed if you selected the FMOD audio module during build configuration (not selected by default)
+ - 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**
+ - If you wish to compile managed assemblies using 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/

+ 196 - 0
Documentation/GitHub/dependencies.md

@@ -0,0 +1,196 @@
+# Compiling dependencies manually
+To compile/retrieve dependencies manually follow the guides provided by each individual library. Below you will find a list of all the libraries, links to their download and outputs expected by Banshee.
+
+Rename and place the compiled/retrieved outputs into proper folders depending on their type:
+  - Static libraries (.lib, .a): 
+   - Place outputs in (BansheeSource)\Dependencies\(LibName)\lib\(Platform)
+  - Dynamic libraries (.dll, .so, .dylib)
+   - Place outputs in (BansheeSource)\bin\(Platform)\(Configuration)
+  - Includes
+   - Place outputs in (BansheeSource)\Dependencies\(LibName)\include
+  - Tools (executables)
+   - Place outputs in (BansheeSource)\Dependencies\(tools)\(LibName)  
+   
+Each library below lists a set of outputs required by Banshee. After you compile/retrieve the library rename the outputs to what Banshee expects and place them relative to the above paths, depending on their type. Depending on which platform you're compiling for you will need to compile 32-bit or 64-bit versions of the libraries (or both).
+   
+Legend:
+  - (BansheeSource) - root directory of Banshee's source code
+  - (LibName) - name of the library (title of the each library shown below)
+  - (Platform) - x86 for 32-bit builds, x64 for 64-bit builds
+  - (Configuration) - Debug, OptimizedDebug or Release
+   
+If the library structure still isn't clear, download one of the pre-compiled dependency packages to see an example.   
+      
+## Library list 
+	  
+**nvtt**
+ - NVIDIA Texture Tools 2.0.8
+ - https://code.google.com/p/nvidia-texture-tools/
+ - Compilation notes:
+  - Compile using the "no-cuda" configurations
+  - Minor tweaks to compile with newer compilers might be required, see Documentation/NVTTCompilationGuide.txt
+ - Required by BansheeCore
+ - Outputs: 
+   - Windows (Dynamic library):
+    - /Debug/nvtt.lib (Debug configuration)
+	- /Release/nvtt.lib (Release configuration)
+	- nvtt.dll (All configurations)
+ 
+**FBXSDK**
+ - FBX SDK 2016.1
+ - http://usa.autodesk.com/fbx
+ - Compilation notes:
+  - No compilation required, libraries are provided pre-compiled
+ - Required by BansheeFBXImporter
+ - Outputs:  
+  - Windows (Static library):
+    - /Debug/libfbxsdk-md.lib (Debug configuration)
+	- /Release/libfbxsdk-md.lib (Release configuration)
+ 
+**freetype**
+ - Freetype 2.3.5
+ - http://www.freetype.org
+ - Compilation notes:
+  - Make sure to define FREETYPE2_STATIC as it might not be defined by default
+ - Required by BansheeFontImporter
+ - Outputs:
+  - Windows (Static library):
+   - /Debug/freetype.lib (Debug configuration)
+   - /Release/freetype.lib (Release configuration)
+   
+**freeimg**
+ - FreeImage 3.13.1
+ - http://freeimage.sourceforge.net
+ - Required by BansheeFreeImgImporter
+ - Outputs:
+  - Windows (Static library):
+   - /Debug/FreeImage.lib (Debug configuration)
+   - /Release/FreeImage.lib (Release configuration)
+   
+**OIS**
+ - BansheeOIS - Slightly modified version of OIS 1.3
+ - Source code included in the dependencies package
+ - Required by BansheeOISInput
+ - Outputs:
+  - Windows (Dynamic library):
+   - /Debug/BansheeOIS.lib (Debug configuration)
+   - /Release/BansheeOIS.lib (Release configuration)
+   - BansheeOIS.dll (All configurations)
+   
+**mono**
+ - Mono 4.4.0
+ - http://www.mono-project.com/
+ - Compilation notes:
+  - See Mono-4.4.0-IntegrationGuide.txt
+ - Required by BansheeMono
+ - Outputs:
+  - Windows (Dynamic library):
+   - /Debug/mono-2.0.lib (Debug configuration)
+   - /Release/mono-2.0.lib (Release configuration)
+   - mono-2.0.dll (All configurations)
+   
+**PhysX**
+ - PhysX 3.3
+ - https://github.com/NVIDIAGameWorks/PhysX-3.3
+ - Required by BansheePhysX
+ - Outputs:
+  - Windows (Dynamic library):
+   - x64
+    - /Debug/PhysX3CharacterKinematicCHECKED_x64.lib (Compile using "checked" configuration)
+	- /Debug/PhysX3CHECKED_x64.lib (Compile using "checked" configuration)
+	- /Debug/PhysX3CommonCHECKED_x64.lib (Compile using "checked" configuration)
+	- /Debug/PhysX3CookingCHECKED_x64.lib (Compile using "checked" configuration)
+	- /Debug/PhysX3ExtensionsCHECKED.lib (Compile using "checked" configuration)
+    - /Release/PhysX3CharacterKinematic_x64.lib (Compile using "release" configuration)
+	- /Release/PhysX3_x64.lib (Compile using "release" configuration)
+	- /Release/PhysX3Common_x64.lib (Compile using "release" configuration)
+	- /Release/PhysX3Cooking_x64.lib (Compile using "release" configuration)
+	- /Release/PhysX3Extensions.lib (Compile using "release" configuration)
+    - PhysX3CharacterKinematicCHECKED_x64.dll (For Debug configuration)
+	- PhysX3CHECKED_x64.dll (For Debug configuration)
+	- PhysX3CommonCHECKED_x64.dll (For Debug configuration)
+	- PhysX3CookingCHECKED_x64.dll (For Debug configuration)
+    - PhysX3CharacterKinematic_x64.dll (For Release/OptimizedDebug configuration)
+	- PhysX3_x64.dll (For Release/OptimizedDebug configuration)
+	- PhysX3Common_x64.dll (For Release/OptimizedDebug configuration)
+	- PhysX3Cooking_x64.dll (For Release/OptimizedDebug configuration)
+   - x86
+    - /Debug/PhysX3CharacterKinematicCHECKED_x86.lib (Compile using "checked" configuration)
+	- /Debug/PhysX3CHECKED_x86.lib (Compile using "checked" configuration)
+	- /Debug/PhysX3CommonCHECKED_x86.lib (Compile using "checked" configuration)
+	- /Debug/PhysX3CookingCHECKED_x86.lib (Compile using "checked" configuration)
+	- /Debug/PhysX3ExtensionsCHECKED.lib (Compile using "checked" configuration)
+    - /Release/PhysX3CharacterKinematic_x86.lib (Compile using "release" configuration)
+	- /Release/PhysX3_x86.lib (Compile using "release" configuration)
+	- /Release/PhysX3Common_x86.lib (Compile using "release" configuration)
+	- /Release/PhysX3Cooking_x86.lib (Compile using "release" configuration)
+	- /Release/PhysX3Extensions.lib (Compile using "release" configuration)
+    - PhysX3CharacterKinematicCHECKED_x86.dll (For Debug configuration)
+	- PhysX3CHECKED_x86.dll (For Debug configuration)
+	- PhysX3CommonCHECKED_x86.dll (For Debug configuration)
+	- PhysX3CookingCHECKED_x86.dll (For Debug configuration)
+    - PhysX3CharacterKinematic_x86.dll (For Release/OptimizedDebug configuration)
+	- PhysX3_x86.dll (For Release/OptimizedDebug configuration)
+	- PhysX3Common_x86.dll (For Release/OptimizedDebug configuration)
+	- PhysX3Cooking_x86.dll (For Release/OptimizedDebug configuration)	
+	
+**OpenAL**
+ - OpenAL Soft 1.17.2
+ - https://github.com/kcat/openal-soft
+ - Required by BansheeOpenAudio
+ - Outputs:
+  - Windows (Dynamic library):
+   - OpenAL32.lib (Compile using "release" configuration)
+   - OpenAL32.dll (All configurations)
+   
+**libogg**
+ - libogg v1.3.2
+ - https://xiph.org/downloads/
+ - Compilation notes:
+  - 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.
+ - Required by BansheeOpenAudio and BansheeFMOD
+ - Outputs:
+  - Windows (Static library):
+   - Debug/libogg.lib (Debug configuration)
+   - Release/libogg.lib (Release configuration)
+   
+**libvorbis**
+ - libvorbis commit:5bbe49dc947ea9f1532273644348c53054ca214a
+ - https://git.xiph.org/?p=vorbis.git
+ - Compilation notes:
+  - Requires libogg, as described in its readme file.
+ - Required by BansheeOpenAudio and BansheeFMOD
+ - Outputs:
+  - Windows (Dynamic library):
+   - libvorbis.lib (Compile using "release" configuration)
+   - libvorbisfile.lib (Compile using "release" configuration)
+   - libvorbis.dll (All configurations)
+   - libvorbisfile.dll (All configurations)
+   
+**libFLAC**
+ - libflac commit:94a61241b02064c7d9fe508f72a742f2a90b8492
+ - https://git.xiph.org/?p=flac.git
+ - Compilation notes:
+  - Requires libogg, as described in its readme file.
+ - Required by BansheeOpenAudio
+ - Outputs:
+  - Windows (Dynamic library):
+   - libFLAC.lib (Compile using "release" configuration)
+   - libFLAC_dynamic.dll (All configurations)
+   
+**bison**
+ - Bison 2.7
+ - http://sourceforge.net/projects/winflexbison/files/
+ - Required by BansheeSL
+ - Outputs:
+  - Windows (tool):
+   - bison/bison.exe (Including all other installation files)
+   
+**flex**
+ - Flex 2.5.37
+ - http://sourceforge.net/projects/winflexbison/files/
+ - Required by BansheeSL
+  - Outputs:
+   - Windows (tool):
+    - flex/flex.exe (Including all other installation files)