Downloading and Compiling under macOS: Difference between revisions

From Arx Libertatis Wiki
Jump to navigation Jump to search
No edit summary
(Updated with instructions for homebrew and creation of .app wrapper, temporarily removed Xcode)
Line 8: Line 8:
== Setting Up the Build Environment ==
== Setting Up the Build Environment ==


To download and compile Arx Libertatis you will need the following tools:
To download and compile Arx Libertatis you will need the following tools:  
* <code>Xcode</code> Tested with 4.3, install the latest from the App Store (https://developer.apple.com/xcode/)
* <code>Xcode</code> (App Store or https://developer.apple.com/xcode/)
** Install command line tools from Xcode, in Preferences -> Download
* <code>CMake</code> (http://www.cmake.org/)
** Set the path to the Xcode folder: <code>sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer</code>
And either one of these:
* <code>github for Mac</code> Also install the command line tools (http://mac.github.com/)
* <code>homebrew</code> (http://brew.sh/)
**Note: if you are using an older mac (Core Duo, i.e. 32-bit processor), install git from here: http://code.google.com/p/git-osx-installer/
* <code>cmake</code> should be build from source (http://www.cmake.org/)
* <code>MacPorts</code> (http://www.macports.org/)
* <code>MacPorts</code> (http://www.macports.org/)
 
Your system must have the following dependencies installed:
== Libraries ==
* <code>SDL</code> 1.2 or newer (http://www.libsdl.org/)
* <code>SDL</code> 1.2 (http://www.libsdl.org/)
* <code>GLEW</code> (http://glew.sourceforge.net/)
* <code>GLEW</code> (http://glew.sourceforge.net/)
* <code>zlib</code> (http://zlib.net/)
* <code>zlib</code> (http://zlib.net/)
* <code>Boost</code> (headers only, http://www.boost.org/)
* <code>Boost</code> 1.48 or newer (headers only, http://www.boost.org/)
* <code>GLM</code> (http://glm.g-truc.net/)
* <code>GLM</code> 0.9.2.7 or newer (http://glm.g-truc.net/)
* <code>FreeType</code> (http://www.freetype.org/)
* <code>FreeType</code> 2.3.0 or newer (http://www.freetype.org/)
* <code>OpenGL</code> Nothing to do... Framework is bundled with Xcode
<code>OpenGL</code> and <code>OpenAL</code> are already bundled with Xcode.
* <code>OpenAL</code> Nothing to do... Framework is bundled with Xcode
You can also optionally install <code>git</code> (http://git-scm.com/) 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
 
==== <code>homebrew</code> ====
 
* Install <code>homebrew</code>:
ruby -e "$(curl -fsSL https://raw.github.com/Homebrew/homebrew/go/install)"
* Install the dependencies with homebrew:
brew install cmake sdl glew zlib boost glm freetype
 
==== <code>MacPorts</code> ====
 
* Download and install CMake from http://www.cmake.org/cmake/resources/software.html
* Download and install MacPorts from https://www.macports.org/
* Install the dependencies with MacPorts:
sudo port install libsdl glew zlib boost glm freetype
*NOTE: These packages take a long time to build. Do not be discouraged if it seems like nothing is happening.


I installed those using MacPorts... but you can probably obtain "native" versions too:
sudo port install zlib freetype boost qt4-mac libsdl glew
*NOTE: these packages take a long time to build. Do not be discouraged if it seems like nothing is happening.


== Getting the source code ==
== Getting the source code ==


If you want to compile the development version, first install git with homebrew (<code>brew install git</code>) or from http://git-scm.com/.
*WARNING: last time I tried the development version failed to compile, you should download the latest release instead.
{{GetTheSourceCode}}
{{GetTheSourceCode}}


=== Using GitHub for Mac ===
== Compiling ==
 
First, <code>cd</code> to where you downloaded / extracted the AL source code (the directory containing the `CMakeLists.txt` file):
 
cd ArxLibertatis


Finally, you can use the GitHub for Mac application to clone the repository. Refer to http://mac.github.com/help.html :)
Then create a build directory and run CMake to configure:


== Compiling ==
mkdir build && cd build && cmake ..
 
And now you should be able to compile with:


=== Building CMake from source ===
The latest release of CMake (2.8.7) still has issues with Xcode 4.3, but it's been fixed in the development branch. You can build cmake from source to fix this:
git clone http://cmake.org/cmake.git
cd cmake
./configure
  make
  make
Finally, you can install the executable system-wide with:
  sudo make install
  sudo make install


You're now ready to generate makefiles or an Xcode project. cd to the root of the arx repository
Enter your account password at the prompt.
 
=== Makefiles ===
mkdir build
cd build
cmake ..
make
<b>NOTE:</b> If this results in an error that says something about an invalid command "--as-needed", try again with a clean build environment (ie: remove CMakeCache.txt). If the error persists, please report it as a bug at [https://bugs.arx-libertatis.org bugs.arx-libertatis.org] with detailed build logs.


<!--
=== Xcode project ===
=== Xcode project ===


Line 66: Line 85:


Then compile and run the project from Xcode. (?)
Then compile and run the project from Xcode. (?)
-->


== Running the executable ==
== Running the executable ==
You can run the Arx Libertatis executable from the terminal:
arx
By default, the user directory for Arx on Mac is
By default, the user directory for Arx on Mac is
<code>/Users/username/Library/Application Support/ArxLibertatis/</code>
<code>/Users/username/Library/Application Support/ArxLibertatis/</code>
Line 75: Line 100:


For running arx in a debugger, see [[Debugging]]
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 <code>arx</code> executable is.
** If you didn't <code>make install</code> figure out the path to the folder you built it to.
** If you ran <code>make install</code>, use this to find out the position of the executable, then copy the output:
which arx
* Open AppleScript Editor (it should be in <code>Applications/Utilities/</code>)
* Assuming the path to <code>arx</code> is <code>/usr/local/bin/arx</code>, copy the following lines into the window:
to run
do shell script "/usr/local/bin/arx"
end run
Replace <code>/usr/local/bin/arx</code> with the position of your executable if needed.
* Save the script as an application.
==== Adding an icon (coming soon) ====
* Download the icon file (link should be here).
* Right click on the .app bundle and choose "Get info", and do the same with the .icns file.
* Drag the icon from the .icns file info box to the .app's

Revision as of 23:46, 20 June 2014

ℹ️  This page describes compiling Arx Libertatis from source under Mac OS X 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 Mac 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.

Setting Up the Build Environment

To download and compile Arx Libertatis you will need the following tools:

And either one of these:

Your system must have the following dependencies installed:

OpenGL and OpenAL are already bundled with Xcode. You can also optionally install git (http://git-scm.com/) 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 sdl glew zlib boost glm freetype

MacPorts

sudo port install libsdl glew zlib 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 http://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.

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:

This will give you the same code as cloning the repository, but won't let you update it without downloading everything again.

Compiling

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 and run CMake to configure:

mkdir build && cd build && cmake ..

And now you should be able to compile with:

make

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

By default, the user directory for Arx on Mac is /Users/username/Library/Application Support/ArxLibertatis/

You will need to obtain a copy of the data files from a commercial copy of Arx Fatalis, or use the demo data files, put these in the directory mentioned above and you are ready to go! Run the file "arx" which is in the ArxLibertatis repository. 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:
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.

Adding an icon (coming soon)

  • Download the icon file (link should be here).
  • Right click on the .app bundle and choose "Get info", and do the same with the .icns file.
  • Drag the icon from the .icns file info box to the .app's