BUILDING GEMRB WITH CMAKE
-------------------------

Tools you will need to build GemRB:
  - cmake
  - make
  - a C++11 compatible compiler (g++, clang, MSVC and mingw are known to work)

Required dependencies:
  - ZLib
  - Python 3.3 or better, compiled with shared libraries
  - ICONV
  - SDL 1.2 or SDL 2.0+ (2.0.12 has a palette issue causing piles to have black outlines)

Optional dependencies:
  - OpenAL (for sound; preferred)
  - SDL_mixer / SDL2_mixer (lighter alternative sound driver)
  - (lib)PNG (for the png importer plugin)
  - libvorbis (for ogg/vorbis support)
  - FreeType 2.4.2+ (for the TTF fonts plugin)
  - (lib)VLC 2.0+ (for movies in some mac distributions of the games)
  - OpenGL/OpenGLES drivers and libraries.
  - GLEW libraries (Windows only, required for OpenGL support)

When choosing SDL 1.2 or SDL 2.0.x, pass -DSDL_BACKEND=SDL (for 1.2) or
-DSDL_BACKEND=SDL2 (for 2.0) to cmake invocation. You can also invoke cmake
with -DSDL_BACKEND=Auto (default) or even without defining specific backend
for autodetection.

You can explicitly disable searching (and using) a particular optional
dependency by specifying -DUSE_foo=OFF flags (cumulative), where "foo" can be
any name from the above list.

Building GemRB on unix-like systems
-----------------------------------

The following commands will try to configure, make and install GemRB.
  mkdir build
  cd build
  cmake .. [some options]
  # Or, you can launch GUI:
  cmake-gui ..
  make
  make install

By default, GemRB is installed into /usr/local ("fhs"). You can pass -DLAYOUT
with "home" or "opt" to change the general layout and -DPREFIX to change the
install path prefix. Check the toplevel CMakeLists.txt to get see all the
individual path components you can additionally alter.

Pass -DCMAKE_BUILD_TYPE=Debug to cmake if you want to create a debug build.
Pass -DNOCOLOR=1 if you want to disable colored console output, which is a
useful option for transparent terminal emulators or non white-on-black color
schemes.

If you're on an exotic platform and get a lot of errors trying to build,
also pass -DDISABLE_WERROR=1, so warnings won't impede you. This option is
also suggested if you're making a source package.

If you want to build the OpenGL driver, first ensure you have a working SDL2
install and using SDL2 backend. Then, if you want the standard driver, pass
-DOPENGL_BACKEND=OpenGL and if you want the OpenGL ES driver, pass
-DOPENGL_BACKEND=GLES.

Building on a Raspberry Pi is supported (tested under Raspbian/Raspberry Pi OS).
The build system will automaticalluy add -DOPENGL_BACKEND=GLES, -DSDL_BACKEND=SDL2
to the build options. By default, the build will try to use the legacy/Broadcom GLES libraries in /opt/vc.
If your system is using the Mesa OpenGL driver with KMS support, pass -DDISABLE_VIDEOCORE
to disable the usage of the legacy/Broadcom drivers and you can use either OpenGL or GLES
for the OPENGL_BACKEND option.
Note: the Pi4 does not support the legacy/Broadcom GLES drivers, so you'll have to explicitely
pass -DDISABLE_VIDEOCORE to the 'cmake' build options.


Please let us know if you encounter any problems while building.

Building GemRB with MSVC
------------------------

Check this guide with detailed instructions for installing dependencies
and building GemRB: https://gemrb.github.io/MSVC-build.html


Building GemRB with mingw
-------------------------

The following commands will try to configure, make and install GemRB.
  mkdir build
  cd build
  cmake .. -G "MinGW MakeFiles"
  mingw32-make
  mingw32-make install

By default, GemRB is installed into c:\Program Files\GemRB . Supporting
files are mostly installed into the same directory.

See the following for an extensive build walkthrough:
https://gemrb.github.io/MSYS2-build.html
