From Ryzom Forge Wiki
(→Installing and configuring Mac port) |
|||
Line 21: | Line 21: | ||
== Installing and configuring Mac port == | == Installing and configuring Mac port == | ||
− | To install all 3rd party libraries needed by Ryzom, you'll to download and install Mac port from : https://www.macports.org/install.php | + | To install all 3rd party libraries needed by Ryzom, you'll need to download and install Mac port from : https://www.macports.org/install.php |
By default, it'll target your Mac OS X version. To change the target, type : | By default, it'll target your Mac OS X version. To change the target, type : |
Revision as of 12:26, 30 August 2014
Contents
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.6. If you plan to deploy Ryzom on Mac OS X versions older than your current one (but more recent than 10.6), I suggest you to set MACOSX_DEPLOYMENT_TARGET environment variable before compiling any dependencies :
export MACOSX_DEPLOYMENT_TARGET=10.6
And append that line to ~/.bash_profile to be sure it'll be defined later.
Installing and configuring Mac port
To install all 3rd party libraries needed by Ryzom, you'll need to download and install Mac port from : https://www.macports.org/install.php
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.6 cxx_stdlib libstdc++
Then open a terminal and type :
sudo port install mercurial p7zip cmake curl freetype jpeg libwww libxml2 lua zlib libpng libogg 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/packaging hg clone http://hg.kervala.net/cmake
export CMAKE_MODULE_PATH=$(pwd)/cmake/modules
cd packaging/luabind mkdir build cd build cmake -DWITH_STATIC=ON -G "Unix Makefiles" .. make sudo make install cd ../../..
Luabind will be installed in /usr/local and should not conflict with Mac port or system files.
Downloading Ryzom code
For first time, please type :
hg clone -b compatibility 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 -G "Unix Makefiles" -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 ../code make
If you already installed Ryzom from Mac AppStore, you can append this parameter to copy data files from it : -DRYZOM_DATA_DIR=/Applications/Ryzom.app/Contents/Resources/data
The resulting application bundle will be bin/Ryzom.app
If you're using data from AppStore Ryzom client, you'll need to patch some files (to support Lua 5.2 for example) with RSYNC :
rsync -rtzv --progress --stats www.ryzom.com::ryzom/data/ bin/Ryzom.com/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 update script
If you need to distribute the application without data, you can create a ryzom_update script :
#!/bin/sh BASE_DIR=$(dirname $0) cd $BASE_DIR SRC_DATA_DIR= DST_DATA_DIR= if [ ! -d Ryzom.app/Contents/Resources/data ] then echo "You must launch ryzom_update.sh from the same folder as Ryzom.app" exit 1 fi DST_DATA_DIR=Ryzom.app/Contents/Resources/data echo "Checking if Ryzom is installed from Mac AppStore..." if [ -e Ryzom.app/Contents/Resources/data/gamedev.bnp ] then echo "Data files already there" else echo "Data files are missing" if [ -e /Applications/Ryzom.app/Contents/MacOS/ryzom_client ] then SRC_DATA_DIR=/Applications/Ryzom.app/Contents/Resources/data echo "Copying files..." cp -R -n -p $SRC_DATA_DIR/* $DST_DATA_DIR else if [ ! -f ryzom_client.7z ] && [ ! -d ryzom ] then echo "Downloading Ryzom client data from SourceForge..." wget -c http://sourceforge.net/projects/ryzom/files/ryzom_client.7z -O ryzom_client.7z fi if [ ! -d ryzom ] then echo "Extracting ryzom_client.7z..." 7z x ryzom_client.7z fi SRC_DATA_DIR=$(pwd)/ryzom/data echo "Moving files..." mv -n $SRC_DATA_DIR/* $DST_DATA_DIR rm -rf ryzom echo "Please manually delete ryzom_client.7z" fi fi echo "Updating files..." rsync -rtzv --progress --stats www.ryzom.com::ryzom/data/ $DST_DATA_DIR
Don't forget to make this script executable with :
chmod +x ryzom_update
To create a ZIP file with Ryzom and update script, you can type :
cd bin zip -9 -r ../ryzom_2.1.0.zip *