Downloading and Compiling under macOS
ℹ️ This page describes compiling Arx Libertatis from source under macOS and assumes some familiarity with the command-line. If you just want to play the game, it might be easier to grab a binary release or snapshot if available.
This page documents how to compile Arx Libertatis from https://github.com/arx/ArxLibertatis under macOS (formerly OS X).
There are also instructions available for Windows and Linux / FreeBSD
Specific instructions are given for a cleanly installed Lion 10.7.3 system, but the procedure should be similar for other versions.
Using Homebrew
Homebrew greatly simplifies building Arx Libertatis under macOS. After setting up Homebrew, you can use this command to install the latest release version of the arx-libertatis package:
brew install arx-libertatis
To install the development version, use:
brew install --HEAD arx-libertatis
Setting Up the Build Environment
To download and compile Arx Libertatis you will need the following tools:
Xcode
(App Store or https://developer.apple.com/xcode/)CMake
3.12 or newer
Optionally you can use either one of these to install the dependencies:
Your system must have the following dependencies installed:
SDL
2 (recommended), orSDL
1.2.10 or newerlibepoxy
1.2 or newer (recommended), orGLEW
1.5.2 or newerOpenAL
(OpenAL Soft is strongly recommended)Boost
1.50 or newer (headers only)GLM
0.9.5.0 or newerFreeType
2.3.0 or newer
OpenGL
and zlib
are already bundled with macOS. OpenAL
is also bundled with macOS but deprecated.
You can also install git
if you want to compile the development version.
Example
- Download and install the latest version of Xcode from the App Store or from https://developer.apple.com/xcode/, depending on your OS version
- Install command line tools from Xcode, in Preferences -> Download
- Set the path to the Xcode folder:
sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer
After installing Xcode you can either use homebrew or MacPorts to install the dependencies. Using homebrew is recommended because most of the dependencies are already bottled, that is, they will not have to be compiled.
- NOTE: do not install both as they tend to generate issues when installed on the same system
homebrew
- Install
homebrew
:
ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
- Install the dependencies with homebrew:
brew install cmake boost freetype sdl2 libepoxy qt5 cppunit glm openal-soft
MacPorts
- Download and install CMake from https://cmake.org/
- Download and install MacPorts from https://www.macports.org/
- Install the dependencies with MacPorts:
sudo port install libsdl libepoxy boost glm freetype
- NOTE: These packages take a long time to build. Do not be discouraged if it seems like nothing is happening.
Getting the source code
If you want to compile the development version, first install git with homebrew (brew install git
) or from https://git-scm.com/.
- WARNING: last time I tried the development version failed to compile, you should download the latest release instead.
There are several methods to get the Arx Libertatis source code - choose the one that suits you best:
Downloading a released version
The easiest way to get the AL source code is to download a versioned release. This will get you a reasonably up to date copy of the source code that has been tested to work.
- Arx Libertatis Source Codearx-libertatis-1.2.tar.xz2.4 MiB
MD5:8e05754b75af0ed7fbf709d30b28df3c
signature
Cloning the repository
If you want the absolute latest version of the Arx Libertatis development code and stay up to date, you can clone the AL source code repository. Beware that this will give you the current master development branch that we are actively working on. While the code in that branch should always work, it hasn't undergone any significant testing. If you just want to play the game, consider using a released version instead.
To clone the repository, type:
git clone git://github.com/arx/ArxLibertatis.git
This creates a directory called ArxLibertatis and downloads the current source code from github.
Later if you want to update your local copy of the source code, run
git pull
The git repository does not contain raster images for the icon and logo. These will be generated from scalable versions when building Arx Libertatis, but doing so requires additional dependencies (Inkscape, ImageMagick and OptiPNG). To avoid this, you can instead get the generated images from the ArxLibertatisData repo:
git clone --depth 1 git://github.com/arx/ArxLibertatisData.git
Downloading a snapshot
Alternatively you can download the current snapshot of the source code repository as a .zip or .tar.gz file and extract that:
- Arx Libertatis Development Snapshot (tar.gz)latest snapshot of branch 'master'
- Arx Libertatis Development Snapshot (zip)latest snapshot of branch 'master'
This will give you the same code as cloning the repository, but won't let you update it without downloading everything again.
Compiling
Preparing the build directory
First, cd
to where you downloaded / extracted the AL source code (the directory containing the `CMakeLists.txt` file):
cd ArxLibertatis
Then create a build directory that will contain compiled files.
mkdir build cd build
Using the data repository (git checkouts only)
Next, tell the build system where to find the ArxLibertatisData repo (you can skip this if you want to generate the data files yourself or if you are building from a release source archive):
ln -s ../../ArxLibertatisData arx-libertatis-data
Replace ../../ArxLibertatisData
with the path to the ArxLibertatisData checkout. Alternatively you can pass the -DDATA_FILES=../../ArxLibertatisData
option to the cmake command(s) below.
Configuring
Now you should be ready to configure and compile. Run cmake:
cmake ..
If you plan on adding code, it might be a good idea to use the developer mode instead:
cmake .. -DDEVELOPER=1
This disables the unity build to allow for faster incremental builds and also enables runtime checks and debug output in the compiled binary.
Building
And now you should be able to compile with:
make
If you run out of RAM during the build, disable the unity build by running cmake like this and try make again:
cmake .. -DUNITY_BUILD=0
Finally, you can install the executable system-wide with:
sudo make install
Enter your account password at the prompt.
Running the executable
You can run the Arx Libertatis executable from the terminal:
arx
You will need to obtain a copy of the data files from a commercial copy of Arx Fatalis, or use the demo data files. Refer to Installing the game data under Linux regarding where and how to install the game data. innoextract
can also be installed with homebrew (brew install innoextract
).
The game will automatically change all used files to lower-case on the first start. If you want to run the game with read-only data you need to do this manually.
For running arx in a debugger, see Debugging
Creating an .app wrapper
If you want to have an icon you can pin on your dock or in your launchpad you can create a simple AppleScript to wrap the executable in an .app bundle.
- First, determine where the
arx
executable is.- If you didn't
make install
figure out the path to the folder you built it to. - If you ran
make install
, use this to find out the position of the executable, then copy the output:
- If you didn't
which arx
- Open AppleScript Editor (it should be in
Applications/Utilities/
) - Assuming the path to
arx
is/usr/local/bin/arx
, copy the following lines into the window:
to run do shell script "/usr/local/bin/arx" end run
Replace /usr/local/bin/arx
with the position of your executable if needed.
- Save the script as an application.