MSYS2 (MinGW) compilation guide
Install MSYS2
MSYS2 provides a simple command line solution that can be used to set up all the required tools and libraries to build and run GemRB from source. Download and install it. More detailed instructions are available here.
It uses pacman, which is the package management tool used by Arch Linux. It will require approximately 2.5GB of space to install everything, but the download size is actually much smaller.
Install build tools
If you closed it, open up the MSYS2 shell again.
This command will install the required collection of tools for compilation. Tip: you can copy it to the clipboard and press Shift+Insert to run it in the terminal.
pacman -S --needed \
mingw-w64-x86_64-gcc \
mingw-w64-x86_64-cmake \
mingw-w64-x86_64-extra-cmake-modules \
git make
Install dependencies
All the dependencies GemRB requires can also be installed from within MSYS2.
First the required dependencies:
pacman -S --needed\
mingw-w64-x86_64-python2 \
mingw-w64-x86_64-SDL2
Zlib has already been installed during the initial MSYS2 setup.
Note: If you have python 2.7 installed on your system already, CMake should find it and you don’t need to install it here.
Then come the optional dependencies:
pacman -S --needed \
mingw-w64-x86_64-openal \
mingw-w64-x86_64-SDL2_mixer \
mingw-w64-x86_64-libogg \
mingw-w64-x86_64-libvorbis
pacman -S --needed \
mingw-w64-x86_64-libpng \
mingw-w64-x86_64-freetype
Iconv should already be present just like Zlib.
We also use libvlc for videos in mac versions of a game, but that’s both very
rare and requires further tweeking to get mingw-w64-x86_64-vlc
(a 2GB install)
recognized.
Get GemRB sources and build them
Grab your fork’s Git URL or use the main repository one as in this example (see note). The following commands will do everything else:
git clone https://github.com/gemrb/gemrb.git gemrb
mkdir gemrb/build
# start building
cd gemrb/build
cmake -G "MSYS Makefiles" -DCMAKE_BUILD_TYPE=Debug ..
cmake --build .
Alternatively, -G Ninja
can be used for Ninja build system. Being native
to Windows system, Ninja is generally faster than MSYS2 make build system.
Configure and run the game
Follow the common instructions.
Then change to the gemrb directory inside the build directory and run GemRB:
cd gemrb
./gemrb.exe
It is possible to use multiple game configuration files to support running different
games at the same time. For example, make a copy of GemRB.cfg
to Torment.cfg
and run the game with the command./gemrb.exe -c Torment.cfg
.
You can try making a symbolic link to the exe as well. The name of the file is also
the name of the configuration file that will be sought. Eg. ./myiwd2.exe
will
search for ./myiwd2.cfg
.
Configure Windows search paths
On Windows 10, you can simply type env
in the start menu search box to get to
the relevant control panel to do this. On other versions you can usually get to
system properties by right clicking My Computer
.
Running from outside the shell
If you want to be able run the game from outside of the MSYS2 terminal, you will
need to add the MinGW dll file location to the Windows PATH
environment variable
or it will not be able to find them.
The MSYS2 installer avoids doing this by default to avoid causing potential conflicts on a user’s system, but unless you already have another MinGW or Cygwin setup installed, it should not cause any issues, and is easily reversible if it does.
Add C:\msys64\mingw64\bin
if you installed it in the default location, while
the following screenshot used a different path:
At this stage, you should be able to run the game from Windows Explorer
by just clicking on gemrb.exe
.
Setting the python path
If you are going to use the python package that comes with MSYS2, you will also
need to set the PYTHONPATH
variable to C:\msys64\mingw64\lib\python2.7
.
Adapt the path if you installed MSYS2 somewhere else.