Difference between revisions of "Third-party libraries and tools"

From KlayGE
Jump to: navigation, search
(Created page with "Before compiling KlayGE, the following third-party libraries and tools must be installed: == Core requires: == *[http://www.python.org/ Python] 2.6, 2.7 or 3.1. Debug versio...")
 
(53 intermediate revisions by 2 users not shown)
Line 1: Line 1:
Before compiling [[KlayGE]], the following third-party libraries and tools must be installed:
+
[[KlayGE]]'s code depends on these following third-party libraries and tools. Since 3.12.0, the source code of these libraries are included in KlayGE. Users can run build_external.py to build and install them. Before running the building script, [http://www.python.org/ Python] 2.7+ and [http://www.cmake.org/ CMake] 3.4+ must be installed.
  
== Core requires: ==
+
= List =
*[http://www.python.org/ Python] 2.6, 2.7 or 3.1. Debug version pythonxx_d.dll need to be compiled from Python's source yourself.
+
Here is a full list of libraries under External folder in 4.15.
*[http://www.boost.org/ Boost] 1.45.0. Recommanded bjam command line please check [[FAQ]]
+
*[http://rapidxml.sourceforge.net/ RapidXml] 1.13
+
  
== D3D11 Rendering System and DSound Audio System require: ==
+
{| class="wikitable"
*[http://msdn.microsoft.com/directx DirectX SDK] June 2010
+
|-
 +
! Name !! Version !! CMake Provided !! Need to Build !! Usage !! License
 +
|-
 +
| [http://7-zip.org 7-zip] || {{No}}Forked git (Fixes for UWP and Android) || No || Yes || Runtime || LGPL/BSD-3-clause
 +
|-
 +
| [https://developer.android.com/ndk/downloads/index.html android_native_app_glue] || {{No}}Patched 16B || No || No || Runtime || Apache 2
 +
|-
 +
| [https://github.com/assimp/assimp assimp] || git || Yes || Yes || Dev || BSD-3-Clause
 +
|-
 +
| [http://www.boost.org/ boost] || Slimmed 1.70.0 [[Used boost libraries|partly used]] || Yes, but not used || Yes || Runtime || Boost
 +
|-
 +
| [https://github.com/jarro2783/cxxopts cxxopts] || git || Yes || No || Dev || MIT
 +
|-
 +
| d3dcompiler || N/A || No || No || Dev || DirectX SDK EULA
 +
|-
 +
| [https://github.com/gongminmin/FreeImage FreeImage] || {{No}}Forked git (Fixes C++17, MinGW, and ARM) || No || Yes || Dev || GPL
 +
|-
 +
| [https://www.freetype.org/ freetype] || git || Yes || Yes || Dev || FreeType (BSD-style)
 +
|-
 +
| [https://github.com/google/googletest googletest] || git || Yes || Yes || Dev || BSD-3-Clause
 +
|-
 +
| [https://github.com/xiph/ogg libogg] || git || Yes || Yes || Runtime || BSD
 +
|-
 +
| [https://github.com/xiph/vorbis libvorbis] || git || Yes || Yes || Runtime || BSD
 +
|-
 +
| [https://github.com/memononen/nanosvg nanosvg] || git || No || No || Dev || Zlib
 +
|-
 +
| [https://github.com/kcat/openal-soft openal-soft] || git || Yes || Yes || Runtime || LGPL
 +
|-
 +
| [https://github.com/python/cpython Python] || {{No}}Forked git (Fixes for UWP and MinGW) || No || Yes || Runtime || Python Software Foundation (BSD-style)
 +
|-
 +
| [https://github.com/python-cmake-buildsystem/python-cmake-buildsystem python-cmake-buildsystem] || {{No}}Forked git (Fixes for Android, iOS, Python 3.7, and MinGW) || Yes || Yes || Dev || Apache 2
 +
|-
 +
| [https://github.com/Tencent/rapidjson rapidjson] || git || Yes || No || Runtime || MIT
 +
|-
 +
| [https://github.com/valnoel/rapidxml rapidxml] || git || No || No || Runtime || MIT
 +
|-
 +
| [https://github.com/gongminmin/UniversalDXSDK UniversalDXSDK] || git || No || No || Dev || MIT
 +
|-
 +
| [https://github.com/xceedsoftware/wpftoolkit wpftoolkit] || {{No}}Forked git (Change the output directories) || No || Yes || Dev || Ms-PL
 +
|-
 +
| [https://github.com/madler/zlib zlib] || git || Yes || Yes || Runtime || Zlib
 +
|}
  
 
+
Other than these libraries, you may need to install an OpenGL ES SDK to build glloader_es and OpenGLES rendering system. [http://code.google.com/p/angleproject/ Google ANGLE] is a good choice.
== DShow Show System requires: ==
+
*Microsoft Windows SDK 7.0A comes with Visual Studio 2010, Microsoft Windows SDK 6.0A comes with Visual Studio 2008, or [http://www.microsoft.com/downloads/details.aspx?FamilyID=484269e2-3b89-47e3-8eb7-1f2be6d7123a&displaylang=en Windows(R) Server 2003 R2 Platform SDK]
+
 
+
 
+
== OggVorbis Audio Datasource requires: ==
+
*[http://xiph.org/downloads/ libogg] 1.2.0 and [http://xiph.org/downloads/ libvorbis] 1.3.1, must be compiled to static library
+
 
+
 
+
== OpenAL Audio System requires: ==
+
*[http://www.openal.org/downloads.html OpenAL SDK] 1.1
+
 
+
 
+
== OpenGL Rendering System requires: ==
+
*[http://developer.nvidia.com/object/cg_toolkit.html NVIDIA Cg] 3.0
+
 
+
 
+
== OpenGL ES 2 Rendering System requires: ==
+
*[http://www.malideveloper.com/tools/software-development/opengl-es-20-emulator.php ARM Mali OpenGL ES 2.0 Emulator] v1.2
+
 
+
 
+
== KFontGen tool requires: ==
+
*[http://freetype.sourceforge.net/ FreeType] 2.4.3, LIB Debug and LIB Release solution configurations should be compiled
+
 
+
 
+
= Notes =
+
 
+
As mentioned previously, before the first compilation of KlayGE, run the env_vars.py Python script to set the required environment variables.
+
 
+
As KlayGE uses VC Multi-threaded DLL runtime library, it needs ALL libs that linked to exes change to use Multi-threaded DLL runtime library (Project->Properties->Configuration Properties->C/C++->Code Generation->Runtime Library, select Multi-threaded Debug DLL/Multi-threaded DLL).
+
 
+
In addition, using VC8 and VC9 to compile Release versions of Boost needs to define the _SECURE_SCL = 0 macro. If you are using Boost Build (bjam) to build the libraries, make sure to add "define=_SECURE_SCL=0" to the bjam command line.
+
  
 
[[zh:第三方库和工具]]
 
[[zh:第三方库和工具]]
 +
[[ru:Сторонние библиотеки и инструменты]]

Latest revision as of 01:27, 26 July 2019

KlayGE's code depends on these following third-party libraries and tools. Since 3.12.0, the source code of these libraries are included in KlayGE. Users can run build_external.py to build and install them. Before running the building script, Python 2.7+ and CMake 3.4+ must be installed.

List

Here is a full list of libraries under External folder in 4.15.

Name Version CMake Provided Need to Build Usage License
7-zip Forked git (Fixes for UWP and Android) No Yes Runtime LGPL/BSD-3-clause
android_native_app_glue Patched 16B No No Runtime Apache 2
assimp git Yes Yes Dev BSD-3-Clause
boost Slimmed 1.70.0 partly used Yes, but not used Yes Runtime Boost
cxxopts git Yes No Dev MIT
d3dcompiler N/A No No Dev DirectX SDK EULA
FreeImage Forked git (Fixes C++17, MinGW, and ARM) No Yes Dev GPL
freetype git Yes Yes Dev FreeType (BSD-style)
googletest git Yes Yes Dev BSD-3-Clause
libogg git Yes Yes Runtime BSD
libvorbis git Yes Yes Runtime BSD
nanosvg git No No Dev Zlib
openal-soft git Yes Yes Runtime LGPL
Python Forked git (Fixes for UWP and MinGW) No Yes Runtime Python Software Foundation (BSD-style)
python-cmake-buildsystem Forked git (Fixes for Android, iOS, Python 3.7, and MinGW) Yes Yes Dev Apache 2
rapidjson git Yes No Runtime MIT
rapidxml git No No Runtime MIT
UniversalDXSDK git No No Dev MIT
wpftoolkit Forked git (Change the output directories) No Yes Dev Ms-PL
zlib git Yes Yes Runtime Zlib

Other than these libraries, you may need to install an OpenGL ES SDK to build glloader_es and OpenGLES rendering system. Google ANGLE is a good choice.