This article is part of the Installation Guide. You can read it alone or click on the previous link to easily move between the steps.
OS X
Getting started
This guide describes how to get TrinityCore running on OS X. OS X ships with several libraries including OpenSSL and a special version of Readline - both required by TrinityCore. But: They are useless. OpenSSL is too old and Readline is... well... special. So we have to build the right ones. This is fairly easy and by doing this on your own (using programs like MacPorts or Homebrew is the alternative) you may learn more about libraries, your Mac and its handling on a non-graphic way. But no matter what you're doing in this guide there is one rule you should remind and never ever break:
DO NOT INSTALL ANYTHING YOU BUILD IN THIS GUIDE TO A SYSTEM-RELEVANT PATH! Rather use a path in your home directory.
We're going to put all the TrinityCore stuff to your home directory in the next step, even the installed binaries. We need to tell TrinityCore where its libraries are installed to. Further I guess you simply want to type "cmake" or "mysql" instead of "/Users/<Username>/Trinity/bin/cmake" or "/usr/local/mysql/bin/mysql". So we gonna set up a profile file which extends the default PATH and DYLD_LIBRARY_PATH variable and create a folder for the TrinityCore stuff:
mkdir ~/Trinity nano ~/.profile
Add the following lines:
export TRINITY=/Users/<Username>/Trinity export PATH=$PATH:$TRINITY/bin:/usr/local/mysql/bin export DYLD_LIBRARY_PATH=$DYLD_LIBRARY_PATH:$TRINITY/lib:/usr/local/mysql/lib
Press Ctrl+O followed by Ctrl+X to save and close the file. Done. Quit the terminal application and restart it.
There is also an autocompletion script for git which can be downloaded and included here.
curl -o ~/.gitcompletion "https://raw.githubusercontent.com/git/git/master/contrib/completion/git-completion.bash" nano ~/.profile
Add the following line:
source ~/.gitcompletion
Press Ctrl+O followed by Ctrl+X to save and close the file. Done. Quit the terminal application and restart it.
Building the libraries
Open a terminal and change to your download folder. Safari automatically extracts .gz archives and leaves the tar ball.
OpenSSL
tar xvf openssl-1.0.2f.tar cd openssl-1.0.2f ./Configure darwin64-x86_64-cc shared --prefix=$TRINITY make -j 4 make install cd ..
Readline
tar xvf readline-6.3.tar cd readline-6.3 ./configure --prefix=$TRINITY make -j 4 make install cd ..
CMake
tar xvf cmake-3.4.3.tar cd cmake-3.4.3 ./bootstrap --prefix=$TRINITY make -j 4 make install cd ..
Boost
tar xvf boost_1_60_0.tar cd boost_1_60_0 ./bootstrap.sh --with-libraries=system,thread,program_options,filesystem,iostreams,regex --prefix=$TRINITY ./b2 -j 4 ./b2 install cd ..
ZeroMQ
tar xvf zeromq-4.0.7.tar cd zeromq-4.0.7 ./configure --prefix=$TRINITY make -j 4 make install cd ..
Installing TrinityCore
You successfully installed all the dependencies. Now it's time to install the server.
Obtaining the source and preparing the build
cd $TRINITY git clone https://github.com/TrinityCore/TrinityCore.git repo mkdir build cd build
Generate the Xcode project files using CMake:
cmake $TRINITY/repo -G "Xcode" \ -DMYSQL_ADD_INCLUDE_PATH=/usr/local/mysql/include \ -DMYSQL_LIBRARY=/usr/local/mysql/lib/libmysqlclient.dylib \ -DREADLINE_INCLUDE_DIR=$TRINITY/include \ -DREADLINE_LIBRARY=$TRINITY/lib/libreadline.dylib \ -DBOOST_INCLUDEDIR=$TRINITY/include \ -DBOOST_LIBRARYDIR=$TRINITY/lib \ -DOPENSSL_SSL_LIBRARIES=$TRINITY/lib/libssl.dylib \ -DOPENSSL_CRYPTO_LIBRARIES=$TRINITY/lib/libcrypto.dylib \ -DOPENSSL_INCLUDE_DIR=$TRINITY/include \ -DZMQ_LIBRARY=$TRINITY/lib/libzmq.dylib \ -DZMQ_INCLUDE_DIR=$TRINITY/include \ -DCMAKE_INSTALL_PREFIX=$TRINITY \ -DWITH_WARNINGS=1
Building the binaries
This step may take a while and needs to be done every time the source code changes. Afterwards you'll find the binaries in "/Users/<Username>/Trinity/bin"
Terminal
xcodebuild -config Debug -jobs 4 xcodebuild -config Debug -target install
"Debug" can be replaced by "Release" or "RelWithDebInfo"
Xcode
Open the generated "TrinityCore.xcodeproj" and select "Product" -> "Build" for a Debug build or "Product" ->"Archive" for a Release build. Do not forget to select "install" as compilation target.
Keeping the code up to date
cd $TRINITY/repo git reset --hard HEAD git pull
Repeat the steps described in "Building the binaries".
Setting up the server
... this part needs to be re-written. Coming soon!
Windows
Getting started
Before you get scared by this long guide, we assure you the procedure is quite simple. Most of the following steps are to be performed only the first time you install Trinity and only the Trinity updating procedures will need to be run from time to time.
Required Software
Pulling & Compiling the Source
Pulling the Source
- Create a directory in which Core files will be pulled (for example: C:\Trinity).
- Right-click on the directory and click on Git Extensions -> Clone.
- Fill in the data as follows:
3.3.5
Repository to clone: https://github.com/TrinityCore/TrinityCore
Destination: C:\Trinity
Subdirectory to create: <none>
Branch: 3.3.5
Personal Repository: Yes
This will clone 3.3.5a branch, this is the RECOMMENDED branch for starters.
6.x
Repository to clone: https://github.com/TrinityCore/TrinityCore
Destination: C:\Trinity
Subdirectory to create: <none>
Branch: 6.x
Personal Repository: Yes
This will clone 6.x branch, note that this is NOT the recommended branch for starters.
Click Clone. Within a few minutes all of the TrinityCore source files will be pulled into the directory C:\Trinity.
Configuring and generating Visual C++ solutions with CMake
Before you begin, create an empty directory called Build. In this example, we will use D:\Build.
Note: If CMake do not recognize C/C++ compiler, choose Specific Native Compiler, and choose path to target vcvarsall.bat, e.g. C:\Program Files\Microsoft Visual Studio 12.0\VC\vcvarsall.bat
Click Browse Source... -> Select | 2. Click Browse Build... -> Select | 3. Click Configure |
4. Make sure Use default native | 5. In the drop-down menu, choose the | 6. Click Finish. |
7. Make sure Tools is checked. This will | 8. Click Configure again. | 9. Click Generate. This will install the |
Note: If MySQL is not found by CMake it is required to set MYSQL_INCLUDE_DIR = C:/mysql_libs/include and MYSQL_LIBRARY= C:/mysql_libs/lib_XX/libmysql.lib.
XX depends if you are compiling in 32 or 64 bits mode. (See the 9th point of the Windows requirement list in Core Installation.)
Note 2: If you get linker errors (e.g "error LNK2019: unresolved external symbol mysql_server_init"), make sure MYSQL_LIBRARY is set to the libmysql.lib that matches your compile mode (x64 vs 32 bits).
(If you do not see the MYSQL fields in CMake, tick the Advanced box).
Note 3: If you get an error that cmak can't find openssl, check the advanced checkbox. Find the openssl in the list and point to the correct directories (you have to point to the openssl root and the openssl include directories)
Tip: Use the WITH_SOURCE_TREE option to enable a pretty source tree structure in Visual Studio:
no source tree: | flat:
| hierarchical: |
---|
Compiling the Source
Browse into your D:\Build folder and open TrinityCore.sln with Visual Studio Community.
On the menu at the top, click Build and select Configuration Manager.
Set Active Solution Configuration to Release
In the list menus below "Help", set Active Solution Platform to Win32 (if you set 64-bit compilation during the CMake configuration, select Win64)
click Close (settings get saved instantly). On some versions of Visual Studio, this will be read and automatically set based on the CMake settings.
Right-click ALL_BUILD in the Solution Explorer on the left sidebar and select Clean .
(on some VS2013 versions, click the Build menu and select Clean Solution.)
Right-click ALL_BUILD and select Build.
- Compilation length differs from machine to machine, you should expect it to take 5-30 minutes.
- If you are asked to "Reload build files" during the compile, do so.
- When the build is complete, you will find a message similar to the one below (the numbers may be different).
Note: in MySQL 5.7 64bit there is a bug. Binary_log_types.h and Binary_log_funcs.h are missing.
you can download http://dev.mysql.com/downloads/file/?id=456917 and open it with winrar (or google something for opening tar)
then go to mysql-5.7.7-rc\libbinlogevents\include there you'll find both files. copy them to C:\Program Files\MySQL\MySQL Server 5.7\include (default location, change to your directory if you have a different mysql install location
You will find your freshly compiled binaries in the C:\Build\bin\Release or C:\Build\bin\Debug folder. These are all used to run your server at the end of this instruction.
You will need the following files in order for the core to function properly:
libeay32.dll
libmySQL.dll
ssleay32.dll
worldserver.conf.dist
worldserver.exe
authserver.conf.dist
authserver.exe
There are a few DLLs that needs to be manually added to this folder, and you need to copy them over from the following installation/bin directories:
libmySQL.dll - C:\Program Files\MySQL\MySQL Server 5.x\lib
libeay32.dll, ssleay32.dll - C:\OpenSSL-Win32\bin
libzmq-v120-mt-4_0_4.dll - C:\Program Files\ZeroMQ 4.0.4\bin
Please remember to rename the worldserver.conf.dist and authserver.conf.dist files in worldserver.conf and authserver.conf respectively, unless you want to keep the configuration files of a previously compiled version of the core.
Keeping the Source Up-to-Date
TrinityCore Developers are always at work fixing and adding new features to the core. You can always check them here, or by viewing them from within Git Extensions.
Open your TrinityCore repository in GitExtensions.
- Click on the blue arrow
- In the new window, click Pull.
This will sync your local repo to the latest commits from the branch you have setup as default.
Now you will need to re-run CMake Configure & Generate to update your SLN files.
Compile
??
Profit!!
Help
If you still have any problem, check:
- Updating or starting with TrinityCore issues
- Trouble with your TrinityCore Install / Readme 1st / FAQs
- Or just start a new topic in the forums
This article is part of the Installation Guide. You can read it alone or click on the previous link to easily move between the steps.