Jump to content
  • 0
Foereaper

Rel21+ Temporary Compile Guide

Question

Hey there, as we are transitioning from the old build system currently being used on half the cores and the old releases to a new system, we have yet to fully update the compile guides, so excuse the mess. I will do a short "tutorial" for you, and possibly make a temporary guide. This is for Windows only, however the essence is exactly the same for Linux users.

1. Installing dependencies.

  • Install MySQL Community Server - MySQL :: Download MySQL Installer
    • Depending on which architecture you want to use for Mangos (32 bit or 64 bit) the only real difference is which version of MySQL you install. You cannot in theory have both 32 and 64 bit version of Mangos installed at the same time. For now I would recommend 32 bit. If you have already installed 64 bit, you need to make sure that your compiler (Visual Studio) supports 64 bit compilation. If not, reinstall either 32 bit MySQL or install a version of Visual Studio that supports 64 bit compilation.
    • Note that the current RC version of MySQL (5.7) is NOT supported at this time. Use 5.6.

    [*]Install GitExtensions - Download Git Extensions from SourceForge.net

    [*]Install OpenSSL 32 bit - http://slproweb.com/download/Win32OpenSSL-1_0_2h.exe

    [*]Install OpenSSL 64 bit - http://slproweb.com/download/Win64OpenSSL-1_0_2h.exe

    • If either of these say you are missing C++ redistributable packages, follow the prompts and install accordingly.
    • I would recommend installing both 32 and 64 bit OpenSSL libraries, this prevents future issues if you want to compile either 32 or 64 bit.

    [*]Install CMake - http://www.cmake.org/files/v3.3/cmake-3.3.1-win32-x86.exe

2. Downloading the source.

Since we now use a new build system, this works slightly different than the older versions of Mangos. However it is very straight forward once you get used to the said system. For the sake of this tutorial we will be using the develop21 branch, which is the latest development version of Mangos. It should be stable enough to use on a daily basis.

  • Create a folder named "Source" anywhere on your computer. This is the folder we will use to download the server and the database.
  • Right click on the "Source" folder and click "Git Bash Here".
  • Once the command prompt window opens, type in the following command and hit enter:

git clone https://github.com/mangoszero/server -b develop21 --recursive

  • This clones the source as well as the submodules into the folder "Source/server". Once this is done, keep the command line window open and type the below command and hit enter:

git clone https://github.com/mangoszero/database -b develop21 --recursive

  • You should now have the database cloned to "Source/database", and you can close the command line window.

3. Generating the build files.

  • To generate the build files, which is what we will use to compile the server itself, open CMake.
  • You now have two fields you need to fill in. Specifically;
  • "Where is the source code:" In this field, you point to the "Source/server" folder you created earlier. (See below for example).
  • "Where to build the binaries:" For this tutorial, we will use the same "Source" folder, however specify a new folder within "Source" and call it "build". (See below for example).

4uRZCo5.png

  • After you have filled in both of these boxes, hit "Configure".
    • This will also prompt you which compiler to use! Make sure you select the correct compiler!
    • If you for some reason change any of the default values after configuration, you need to click "Configure" again BEFORE going to the next step.

    [*]Once configuration is done, hit "Generate".

    [*]If this finished without any errors, proceed to the next step. If you did however receive any errors, most likely you are missing one of the depencencies, have pointed to the wrong folders or selected the wrong compiler. Usually the error message you receive will make enough sense for you to isolate the issue. If not, make a new thread and provide the full output showing the error.

4. Building the core.

  • Once the build files are generated, go to your "Source/build" folder and open the file MaNGOS.sln. This will open Visual Studio and you build your server like normal. I would recommend to compile the core in Debug mode (default) as that will provide you with crash dumps should the core crash for whatever reason, making it easier for us to debug for you.
  • Once the core is doen compiling, the server binaries, tools etc is located inside the "Source/build/bin/Debug" folder.
  • Copy the following files to wherever you want to run the server from. For the sake of this tutorial, make a new folder somewhere on your computer and call it "Server".
    • lua_scripts folder
    • ace.dll
    • ahbot.conf.dist
    • libmysql.dll
    • mangosd.conf.dist
    • mangosd.exe
    • realmd.conf.dist
    • realmd.exe

    [*]If you compiled in Debug mode, also copy the following files to the "Server" folder.

    • ace.pdb
    • mangosd.pdb
    • realmd.pdb

  • If the core built successfully, move to the next step. If you have any compile errors, please post a full log displaying the error messages. Warnings can be ignored for now.

5. Extracting game data.

  • Inside the "Source/build/bin/Debug" folder there will be a folder named "Tools". Enter this folder and copy the following files:
    • ExtractResources.sh
    • make_vmaps.bat
    • map-extractor.exe
    • mmap_exclude.txt
    • MoveMapGen.sh
    • movemap-generator.exe
    • offemsh.txt
    • vmap-assembler.exe
    • vmap-extractor.exe

    [*]Paste these into your WoW directory and run ExtractResources.sh. When prompted if all data should be extracted, hit "y" and enter.

    [*]This can take a LONG time depending on your computer.

    [*]Once this is complete, copy the following folders to your "Server" folder.

    • dbc
    • maps
    • mmaps
    • vmaps

6. Installing the database.

  • Enter the database folder located at "Source/database"
  • Run InstallDatabases.bat and follow the on screen prompts to install the base database. Do mind, this database is the base database for develop21 and will require you to run updates accordingly.
  • The updates can be found in the separate folders inside "Source/database", specifically "Character", "Realm" and "World".
    • The server will always notify you when you run the server files from the "Server" folder whether your database is up to date or not.

    [*]If updates are required, apply them using your preferred SQL tool, like sqlyog, heidisql etc.

7. Configuring the server.

  • Once all the above steps are complete, you are ready to configure your server and start playing!
  • Go to your "Server" folder and rename the following files:
    • ahbot.conf.dist -> ahbot.conf (This file is optional, depending if you want to use the AH bot or not!)
    • mangosd.conf.dist -> mangosd.conf
    • realmd.conf.dist -> realmd.conf

    [*]Open mangosd.conf and edit lines 66, 67 and 68 to reflect your database information.

    [*]Open realmd.conf and edit line 110 to reflect your database information.

    [*]All other edits to the config files are completely optional.

At this point your server should be completely operational. If you have any other questions or require further support, please feel free to create a new thread for your specific issues. Please, if you see anyone else with issues regarding the wiki, link them this post. The wikis will be updated once all the cores run the new build system.

Edited by Olion
updating OpenSSL win build links

Share this post


Link to post
Share on other sites

37 answers to this question

Recommended Posts

  • 0

Seeing as how the links to OpenSSL in the original post are dead, I'm not quite sure how to proceed with installing OpenSSL.

Share this post


Link to post
Share on other sites
  • 0

Thanks for the note, I just have updated the links.

Personally, I would not recommend to stay at the binary packages included into the repo (win/ folder content). The mentioned OpenSSL is updated regularly every two-three months for security issues.

Share this post


Link to post
Share on other sites
  • 0

An additional question: after building the project, I can't find 'vmap-assembler.exe'. I have everything else in the 'tools' folder (vmap-extractor.exe, map-extractor.exe, ExtractResources.sh and so on) but that one. What gives?

Share this post


Link to post
Share on other sites
  • 0
I can't find 'vmap-assembler.exe'.

Ignore it, copy the tools/ folder content to the client root folder and copy the ace.dll in addition (the dependence was added recently), then run ExtractResources.sh under "git bash" as described.

Another possible issue is about Debug build of extractors. I would recommend to build the Release configuration and use optimized tool binaries from build/Release, since they run few times faster. Some time ago, the mmap extractor had been prevented from running if on Debug build. I did not follow the topic and cannot say, how it looks like now. Using Debug build for mmap extractor is a bad idea anyway.

Share this post


Link to post
Share on other sites
  • 0

I'm having a problem when I'm launching mangosd.exe. realmd.exe is running properly as far as I can tell, but when I try to run mangosd it say 'Could not connect to MySQL database at 127.0.0.1: unknown database 'mangos' '

Presumably I've messed something up while running InstallDatabases.bat, so that it can't locate the database. What should I do?

Share this post


Link to post
Share on other sites
  • 0

You can find database names here. The names `mangos0` and `character0` are used for Zero. Modify your mangosd.conf file substituting these names for `mangos` and `characters` at the end of line here:

WorldDatabaseInfo            = "127.0.0.1;3306;mangos;mangos;mangos"
CharacterDatabaseInfo        = "127.0.0.1;3306;mangos;mangos;characters"

To the DB devs: the consistency of the names in all *CreateDB.sql and in the install script needs to be checked and fixed: `characters0` and `character0` are present now.

Share this post


Link to post
Share on other sites
  • 0

Based on the error message alone - cmake can not find any c compilers to use.

Are you using Windows, Linux or OSX ?

Share this post


Link to post
Share on other sites
  • 0

This topic is being archived and a new one created for discussing installation guides.

You can see the new windows install guide here:

 

Share this post


Link to post
Share on other sites
Guest
This topic is now closed to further replies.

Contact Us

To contact us click here
You can also email us at [email protected]

Privacy Policy | Terms & Conditions

Repositories

The Link to the master list
of MaNGOS repositories:
Copyright © getMaNGOS. All rights Reserved.

This website is in no way associated with or endorsed by Blizzard Entertainment®
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. Privacy Policy Terms of Use