Building Ryzom Client On Mac OS X

From EncyclopAtys

Revision as of 14:17, 22 November 2018 by Zorroargh (talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
en:Building Ryzom Client On Mac OS X
 
UnderConstruction.png
Translation to review
Don't blame the contributors, but come and help them 😎

Reference text ( Maintained text, used as reference ) :
Notes: (Zorroargh, 2018-11-22)

Installing and configuring Xcode

Last Xcode version can be downloaded from Mac AppStore or https://developer.apple.com/xcode/downloads/

To enable command-line tools under Xcode 5 or more recent versions, you'll need to open a terminal and type :

xcode-select --install

Ryzom client needs at least Mac OS X 10.8. If you plan to deploy Ryzom on Mac OS X versions older than your current one (but more recent than 10.8), I suggest you to set MACOSX_DEPLOYMENT_TARGET environment variable before compiling any dependencies :

export MACOSX_DEPLOYMENT_TARGET=10.8

And append that line to ~/.bash_profile to be sure it'll be defined later.

Installing and configuring MacPorts

To install all 3rd party libraries needed by Ryzom, you'll need to download and install MacPorts from : https://www.macports.org/install.php

First install tools that doesn't require support for older OS X versions :

sudo port install mercurial p7zip cmake

By default, it'll target your Mac OS X version. To change the target, type :

sudo nano /opt/local/etc/macports/macports.conf

And append at the end of the file :

macosx_deployment_target 10.8
cxx_stdlib libc++

Press CTRL+X / Apple+X to save and confirm.

Then open a terminal and type :

sudo port install curl freetype jpeg libxml2 lua zlib libpng libogg giflib
sudo port -s -v install boost libvorbis icu

Note : The -s option is used to force a rebuild from source (to take into account the new options added to macports.conf) else it'll use a precompiled package. ICU will be used if you need to compile a static version of Qt.

Compiling Luabind

Open a terminal and write the following lines :

hg clone http://hg.kervala.net/luabind
hg clone http://hg.kervala.net/cmake
export CMAKE_MODULE_PATH=$(pwd)/cmake/modules
cd luabind
mkdir build
cd build
cmake -DWITH_STATIC=ON -DWITH_SHARED=OFF -DWITH_LUA53=ON -DWITH_LUA51=OFF ..
make
sudo make install
cd ../..

Luabind will be installed in /usr/local and should not conflict with MacPorts or system files.

Downloading Ryzom code

For first time, please type :

hg clone -b compatibility-develop https://bitbucket.org/ryzom/ryzomcore

Later, to only update sources you will need to type :

hg pull && hg update

Compiling Ryzom client

This section shows how to create a static Ryzom Core client built on Mac OS X. The resulting binary only depends on system libs, therefore can be moved easily to another Mac OS X machine. The given list of CMake options is just an example. For a complete list see: CMake Options. Building a Ryzom Core client that depends on NeL and Ryzom shared libraries is strongly discouraged.

cd ryzomcore
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DWITH_STATIC=ON -DWITH_STATIC_DRIVERS=ON \
-DWITH_NEL_TOOLS=OFF -DWITH_NEL_SAMPLES=OFF -DWITH_NEL_TESTS=OFF -DWITH_RYZOM_SERVER=OFF \
-DWITH_RYZOM_TOOLS=OFF -DWITH_STATIC_EXTERNAL=ON -DWITH_LUA53=ON -DWITH_LUA51=OFF -DWITH_RYZOM_PATCH=ON ../code
make

The resulting application bundle will be bin/Ryzom.app and you should copy data to : Ryzom.app/Contents/Resources/data.

The application Ryzom (Ryzom.app folder in fact) should do around 6 GB, you can launch it double-clicking on the icon.

Ryzom will patch itself when launched.

Compilation errors or warnings

If you get errors like :

error: target Objective-C runtime differs in PCH file vs. current file
error: PCH file was compiled for the target 'x86_64-apple-macosx10.11.0' but the
current translation unit is being compiled for target
'x86_64-apple-macosx10.8.0'

You just need to delete compilation files with :

make clean

If you get warnings like :

ld: warning: object file (/opt/local/lib/libz.a(trees.o)) was built for newer OSX version (10.11) than being linked (10.8)

You need to recompile these libraries with :

sudo port upgrade -n -s --force zlib

(you can replace zlib with the real library)

There are currently 2 elements in the category Mac.