[Build] Attempt to make travis happy

This commit is contained in:
Antz 2015-08-11 01:53:58 +01:00 committed by Antz
parent d6494d7c6b
commit 02736c9f18
5 changed files with 2077 additions and 174 deletions

180
.gitignore vendored
View file

@ -6,109 +6,115 @@
# NOTE! Please use 'git-ls-files -i --exclude-standard' # NOTE! Please use 'git-ls-files -i --exclude-standard'
# command after changing this file, to see if there are # command after changing this file, to see if there are
# any tracked files which get ignored after the change. # any tracked files which get ignored after the change.
#
# Normal rules
#
.*
*.o
*.o.*
*.a
*.so
*.so.dbg
*.bin
*.gz
# # Placeholder files for directories needed to be inside git but empty
# Top-level generic files
#
bin
build
tags
TAGS
!.gitignore !.gitignore
!.gitattributes !.gitattributes
!.travis.yml !.travis.yml
# # JetBrains - project settings
# Build generated files /.idea/
#
autom4te.cache
# # Eclipse - project settings
# Editors / debuggers / other output files /.project
# /.settings
*~ /.buildpath
/.externalToolBuilders
# Sublime Text 2 - project files
/*.sublime-build
/*.sublime-project
/*.sublime-workspace
# Numerous always-ignore extensions
*.a
*.bak *.bak
*.bin
*.diff
*.err
*.gz
*.lo
*.log
*.o
*.o.*
*.orig *.orig
*.patch *.patch
*.rej
*.so
*.so.dbg
*.swo
*.swp
*.vi
*~
callgrind.out.* callgrind.out.*
# # OS or Editor folders
# Git stuff
#
# stgit directories
patches-*
#
# VS binaries output
#
bin/*
#
# VS temporary files
#
*.ncb
*.suo
*.sdf
*.opensdf
*.sln.cache
*.vsp
ipch
*.user
#
# CMake temporary files
#
CMakeFiles
CMakeCache.txt
cmake_install.cmake
#
# OS specific
#
# MacOS
.DS_Store .DS_Store
.cache
.project
.settings
.tmproj
nbproject
Thumbs.db
# # Configuration files to be customized
# Special exceptions
# # Build directories
/bin/
_build
build
/dep/libmpq/autom4te.cache/
# Generated files
*.ncb
*.opensdf
*.sdf
*.sln.cache
*.suo
*.user
*.vsp
cmake_install.cmake
CMakeCache.txt
CMakeFiles
ipch
# cmake generated files in sources # cmake generated files in sources
dep/ACE_wrappers/ace/ACE_vc8.vcxproj* /dep/ACE_wrappers/ace/ACE_vc8.vcxproj*
dep/ACE_wrappers/ace/Backup* /dep/ACE_wrappers/ace/Backup*
dep/ACE_wrappers/ace/Debug* /dep/ACE_wrappers/ace/Debug*
dep/ACE_wrappers/ace/ETCL/ACE_ETCL_Parser_vc8.vcxproj* /dep/ACE_wrappers/ace/ETCL/ACE_ETCL_Parser_vc8.vcxproj*
dep/ACE_wrappers/ace/ETCL/ACE_ETCL_vc8.vcxproj* /dep/ACE_wrappers/ace/ETCL/ACE_ETCL_vc8.vcxproj*
dep/ACE_wrappers/ace/ETCL/Debug* /dep/ACE_wrappers/ace/ETCL/Debug*
dep/ACE_wrappers/ace/ETCL/Release* /dep/ACE_wrappers/ace/ETCL/Release*
dep/ACE_wrappers/ace/Monitor_Control/Debug* /dep/ACE_wrappers/ace/Monitor_Control/Debug*
dep/ACE_wrappers/ace/Monitor_Control/Monitor_Control_vc8.vcxproj* /dep/ACE_wrappers/ace/Monitor_Control/Monitor_Control_vc8.vcxproj*
dep/ACE_wrappers/ace/Monitor_Control/Release* /dep/ACE_wrappers/ace/Monitor_Control/Release*
dep/ACE_wrappers/ace/QoS/Debug* /dep/ACE_wrappers/ace/QoS/Debug*
dep/ACE_wrappers/ace/QoS/QoS_vc8.vcxproj* /dep/ACE_wrappers/ace/QoS/QoS_vc8.vcxproj*
dep/ACE_wrappers/ace/QoS/Release* /dep/ACE_wrappers/ace/QoS/Release*
dep/ACE_wrappers/ace/UpgradeLog* /dep/ACE_wrappers/ace/UpgradeLog*
dep/ACE_wrappers/ace/Release* /dep/ACE_wrappers/ace/Release*
dep/ACE_wrappers/ace/_UpgradeReport_Files* /dep/ACE_wrappers/ace/_UpgradeReport_Files*
dep/ACE_wrappers/lib/* /dep/ACE_wrappers/lib/*
dep/ACE_wrappers/ace/config.h /dep/ACE_wrappers/ace/config.h
# ned files from excluded dirs # ned files from excluded dirs
!dep/ACE_wrappers/ace/ace_message_table.bin !/dep/ACE_wrappers/ace/ace_message_table.bin
!dep/ACE_wrappers/bin/GNUmakefile.bin !/dep/ACE_wrappers/bin/GNUmakefile.bin
!dep/ACE_wrappers/configure.ac~ !/dep/ACE_wrappers/configure.ac~
!dep/ACE_wrappers/lib/.empty !/dep/ACE_wrappers/lib/.empty
!dep/tbb/src/Makefile !/dep/tbb/src/Makefile
# recastnavigation directory needs exception # recastnavigation directory needs exception
!dep/recastnavigation/RecastDemo/Build/ !/dep/recastnavigation/RecastDemo/Build/
# Scripts library directory also needs exceptions
/src/scripts/ScriptDev2__Win32_Debug/
/src/scripts/ScriptDev2__Win32_Release/
/src/scripts/ScriptDev2__x64_Debug/
/src/scripts/ScriptDev2__x64_Release/
/src/tools/Extractor_Binaries/*.exe
# File generated during compile
/dep/libmpq/compile

View file

@ -4,23 +4,29 @@ language: cpp
git: git:
depth: 1 depth: 1
# do not build with clang until fixed # send notifications to stack as well as email
notifications:
slack: getmangos:yRgNBSgRQVh8WdfGEbT08Hit
# only run travis on the master branch
branches:
only:
- master
- develop21
# build on both Linux and OSX
os:
- linux
- osx
# build with both gcc and clang to ensure compatibility
compiler: compiler:
- gcc - gcc
- clang - clang
before_install:
# Latest ubuntu dependencies and libraries for development (gcc and etc).
- echo yes | sudo add-apt-repository ppa:ubuntu-toolchain-r/test
# update and install required tools
- sudo apt-get -qq update
- sudo apt-get -qq install automake autoconf make patch libmysql++-dev build-essential gcc-4.8 g++-4.8 libbz2-dev libncurses5-dev libmysqlclient-dev
- sudo apt-get -qq install libreadline-dev libsdl1.2-dev libssl-dev zlib1g-dev libace-dev libtool grep binutils
script: script:
- test -d _build || mkdir _build - test -d _build || mkdir _build
- test -d _install || mkdir _install
- cd _build - cd _build
- cmake -DACE_USE_EXTERNAL=1 .. - cmake -DCMAKE_INSTALL_PREFIX=../_install ..
- make -j4 - make -j4

1782
Doxyfile.in Normal file

File diff suppressed because it is too large Load diff

242
README.md
View file

@ -1,98 +1,192 @@
MaNGOS Three [![Build Status](https://travis-ci.org/mangosthree/server.png)](https://travis-ci.org/mangosthree/server) [![](https://www.getmangos.eu/images/primus/blue/misc/logo.png)](http://www.getmangos.eu) 
============ [![](/icons/FORUM.gif)](https://www.getmangos.eu/forum.php)
*MaNGOS Three* is a full featured server for [World of Warcraft][2], in its Cataclysm [![](/icons/WIKI.gif)](https://getmangos.eu/wiki)
version supporting clients from the [patch 4.3.4][50] branch, specifically patch [![](/icons/TOOLS.gif)](http://github.com/mangostools)
4.3.4. [![](/icons/TRACKER.gif)](https://www.getmangos.eu/project.php)
[![Build status](https://travis-ci.org/mangosthree/server.png)][16]
Mangos
===
Cataclysm WOW BRANCH
===
### A World of Warcraft server for Classic WoW
----
*Mangos* is open source project, built in [C++][7], it's fast, runs on multiple
platforms, can store game data in [MySQL][40] and [PostgreSQL][42]. It also has
optional support for SOAP, and aims to be 100% compatible with [World of Warcraft][2]
in its Cataclysm version supporting clients from the [patch 4.3.4][5] branch,
specifically patch 4.3.4.
If you liked the fourth incarnation of [World of Warcraft][2] and still want to play
[cata WoW][5], this is the branch for you. We provide an authentication
server where you can manage your users, and a world server which serves game
content just like the original did back then.
On top of that each update is built by [Travis CI][16] as you can see by the
image next to the chapter's heading! We do love green builds, and working things.
To complement this, we push builds through [Coverity][17] to find and fix any
possible security issues.
World of Warcraft, and all World of Warcraft or Warcraft art, images, and lore are World of Warcraft, and all World of Warcraft or Warcraft art, images, and lore are
copyrighted by [Blizzard Entertainment, Inc.][1]. copyrighted by [Blizzard Entertainment, Inc.][1]
Build status
------------
Each update to the *MaNGOS Three* sources is run through build tests using the
Travis CI build service. The current build status can be viewed on the *MaNGOS Zero*
[build status page][114], and for your convenience the build status also is shown
at the top of this README when viewing the repository on [github][111]. If it's
green, a successful build has been performed under Linux.
ROADMAP and goals for 0.20.0 release
------------
* Completely synchronize fixes between mangos repositories (zero, one, two)
* Implement void storage
* Implement archaelogy
* warden system
* Implement passive anticheat (warden system is not enough to stop jockers...).
* Phasing system port from trinitycore
* Add missing opcodes.
* Implement linked_spell_trigger database table implementation (this will accessible in all mangos) for simple spells implementation.
* Implement new gossip script wrapper in scriptmgr to make code style better.
* Implement new event in EVENTAI which would let better integrate gossips
* Rework/retest all classes spells
Requirements Requirements
------------ ------------
The *Mangos* server supports a wide range of operating systems, and various
compiler platforms. In order to do that, we use various free cross-platform
libraries and use [CMake][19] to provide a cross-platform build system which
adapts to your chosen operating system and compiler.
Operating systems
-----------------
Currently we support running *Mangos* on these operating systems:
Compilation Guides * **Windows**, 32 bit and 64 bit. [Windows][20] Server 2008 (or newer) or Windows 7 (or newer) is recommended.
------------------ * **Linux**, 32 bit and 64 bit. [Debian 7][21] and [Ubuntu 12.04 LTS][22] are
Please see our compilation and installation guides at our [Wiki][20] recommended. Other distributions with similar package versions will work, too.
* **BSD**, 32 bit and 64 bit. [FreeBSD][23], [NetBSD][24], [OpenBSD][25] and
[DragonFly][26] are recommended.
Of course, newer versions should work, too. In the case of Windows, matching
server versions will work, too.
Compilers
---------
Building *Mangos* is currently possible with these compilers:
* **Microsoft Visual Studio (Express[^1])**, 32 bit and 64 bit. Both
[Visual Studio][30] and the Express editions of [Visual Studio][31]
are supported.
* **Microsoft Windows SDK**, 32 bit and 64 bit. The [Windows 7 SDK][32] is
recommended, as older versions lack compiler features required to build
the server.
* **Clang**, 32 bit and 64 bit. The [Clang compiler][33] can be used on any
supported operating system.[^2]
Dependencies
------------
The *Mangos* server stands on the shoulders of well-known Open Source
libraries, and a few awesome, but less known libraries to prevent us from
inventing the wheel again.
*Please note that Linux and Mac OS X users should install packages using
their systems package management instead of source packages.*
* **MySQL** / **PostgreSQL**: to store content, and user data, we rely on
[MySQL][40]/[MariaDB][41] and [PostgreSQL][42] to handle data.
* **ACE**: the [ADAPTIVE Communication Environment][43] aka. *ACE* provides us
with a solid cross-platform framework for abstracting operating system
specific details.
* **Recast**: in order to create navigation data from the client's map files,
we use [Recast][44] to do the dirty work. It provides functions for
rendering, pathing, etc.
* **G3D**: the [G3D][45] engine provides the basic framework for handling 3D
data, and is used to handle basic map data.
* **libmpq**: [libmpq][46] provides an abstraction layer for reading from the
client's data files.
* **Zlib**: [Zlib][53] ([Zlib for Windows][51]) provides compression algorithms
used in both MPQ archive handling and the client/server protocol.
* **Bzip2**: [Bzip2][54] ([Bzip2 for Windows][52]) provides compression
algorithms used in MPQ archives.
* **OpenSSL**: [OpenSSL][48] ([OpenSSL for Windows][55]) provides encryption
algorithms used when authenticating clients.
* **Lua**: [Lua 5.2][56] ([Lua 5.2 for Windows][57]) provides a convenient, fast
scripting environment, which allows us to make live changes to scripted
content.
*Recast*, *G3D* and *libmpq* are included in the *Mangos* distribution as
we rely on specific versions.
Optional dependencies
---------------------
* **Doxygen**: if you want to export HTML or PDF formatted documentation for the
*Mangos* API, you should install [Doxygen][49].
* **Lua**: if you want to test drive how *Mangos* feels with [Lua][50] as
scripting language instead of the scripting library, you will need Lua **5.2.3**
installed. Although an internal version is included.
Discuss
-------
If you need help with building and installing *Mangos* there are thousands of
users out there already running *Mangos* and many more you can find on our
project website and discussion forum to assist with any issues you may have.
* [getmangos.eu][10]
License License
------- -------
*MaNGOS Three* is open source, and licensed under the terms of the GNU GPL version 2. This program is free software; you can redistribute it and/or modify it under
the terms of the GNU General Public License as published by the Free Software
Foundation; either version 2 of the License, or (at your option) any later
version.
Copyright (C) 2005-2015 MaNGOS <http://getmangos.co.uk> This program is distributed in the hope that it will be useful, but WITHOUT ANY
WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE. See the GNU General Public License for more details.
This program is free software; you can redistribute it and/or modify You should have received a copy of the GNU General Public License along with
it under the terms of the GNU General Public License as published by this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
the Free Software Foundation; either version 2 of the License, or Street, Fifth Floor, Boston, MA 02110-1301 USA.
(at your option) any later version.
This program is distributed in the hope that it will be useful, The full license is included in the file `License.md`.
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License In addition, as a special exception, permission is granted to link the code of
along with this program; if not, write to the Free Software *Mangos* with the OpenSSL project's [OpenSSL library][48] (or with modified
Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA versions of it that use the same license as the OpenSSL library), and distribute
the linked executables. You must obey the GNU General Public License in all
respects for all of the code used other than [OpenSSL][48].
You can find the full license text in the file COPYING delivered with this
package.
### Exceptions to GPL [^1]: Visual Studio Express versions prior to the 2012 release can only
build 32 bit applications, unless you install the Windows SDK.
Some third-party libraries MaNGOS uses have other licenses, that must be [^2]: Clang support for Windows is experimental. Failure to compile MangosZero
uphold. These libraries are located within the dep/ directory may also relate to the experimental state of the port.
In addition, as a special exception, MaNGOS gives permission to link the code
of its release of MaNGOS with the OpenSSL project's "OpenSSL" library
(or with modified versions of it that use the same license as the "OpenSSL"
library), and distribute the linked executables. You must obey the GNU
General Public License in all respects for all of the code used other than
"OpenSSL".
[1]: http://blizzard.com/ "Blizzard Entertainment Inc. · we love you!" [1]: http://blizzard.com/ "Blizzard Entertainment Inc. · we love you!"
[2]: http://battle.net/wow/ "World of Warcraft" [2]: http://battle.net/wow/ "World of Warcraft"
[5]: http://www.wowpedia.org/Patch_4.3.4 "WoW Cataclysm· Patch 4.3.4 release notes"
[7]: http://www.cppreference.com/ "C / C++ reference"
[10]: http://a.dependency.net/ "A · dependency" [10]: http://getmangos.eu/ "mangos · project site"
[12]: http://github.com/mangosthree "mangos-three· github organization"
[13]: http://github.com/mangosthree/server "mangos three · server repository"
[15]: http://github.com/mangosthree/database "mangos three · content database repository"
[16]: https://travis-ci.org/mangoszero/server "Travis CI · mangos-zero build status"
[17]: https://scan.coverity.com/ "Coverity Scan · Static Code Analysis"
[20]: https://github.com/mangoswiki/Wiki/wiki/MaNGOS%20Installation/ "Wiki" [19]: http://www.cmake.org/ "CMake · Cross Platform Make"
[20]: http://windows.microsoft.com/ "Microsoft Windows · that OS, yes."
[21]: http://www.debian.org/ "Debian · The Universal Operating System"
[22]: http://www.ubuntu.com/ "Ubuntu · The world's most popular free OS"
[23]: http://www.freebsd.org/ "FreeBSD · The Power To Serve"
[24]: http://www.netbsd.org/ "NetBSD · The NetBSD Project"
[25]: http://www.openbsd.org/ "OpenBSD · Free, functional and secure"
[26]: http://www.dragonflybsd.org/ "DragonFlyBSD"
[50]: http://www.wowpedia.org/Patch_4.3.4 "WoW Cataclysm· Patch 4.3.4 release notes" [30]: http://www.microsoft.com/visualstudio/eng/ "Visual Studio 2012"
[31]: http://www.microsoft.com/visualstudio/eng/products/visual-studio-express-products "Visual Studio Express 2012 for Windows Desktop"
[32]: http://www.microsoft.com/en-us/download/details.aspx?id=8279 "Windows SDK for Windows 7 and .NET Framework 4"
[33]: http://clang.llvm.org/ "clang · a C language family frontend for LLVM"
[34]: http://git-scm.com/ "Git · Distributed version control system"
[35]: http://windows.github.com/ "github · windows client"
[36]: http://www.sourcetreeapp.com/ "SourceTree · Free Mercurial and Git Client for Windows/Mac"
[100]: http://getmangos.co.uk/ "MaNGOS Community Project Website" [40]: http://www.mysql.com/ "MySQL · The world's most popular open source database"
[101]: http://community.getmangos.co.uk/ "MaNGOS Community Discussion Forums" [41]: http://www.mariadb.org/ "MariaDB · An enhanced, drop-in replacement for MySQL"
[42]: http://www.postgresql.org/ "PostgreSQL · The world's most advanced open source database"
[43]: http://www.cs.wustl.edu/~schmidt/ACE.html "ACE · The ADAPTIVE Communication Environment"
[44]: http://github.com/memononen/recastnavigation "Recast · Navigation-mesh Toolset for Games"
[45]: http://sourceforge.net/projects/g3d/ "G3D · G3D Innovation Engine"
[46]: http://github.com/ge0rg/libmpq "libmpq · A library for reading data from MPQ archives"
[48]: http://www.openssl.org/ "OpenSSL · The Open Source toolkit for SSL/TLS"
[49]: http://www.stack.nl/~dimitri/doxygen/ "Doxygen · API documentation generator"
[50]: http://www.lua.org/ "Lua · The Programming Language"
[51]: http://gnuwin32.sourceforge.net/packages/zlib.htm "Zlib for Windows"
[52]: http://gnuwin32.sourceforge.net/packages/bzip2.htm "Bzip2 for Windows"
[53]: http://www.zlib.net/ "Zlib"
[54]: http://www.bzip.org/ "Bzip2"
[55]: http://slproweb.com/products/Win32OpenSSL.html "OpenSSL for Windows"
[56]: http://www.lua.org/ "Lua"
[57]: https://code.google.com/p/luaforwindows/ "Lua for Windows"
[110]: http://github.com/mangosthree "MaNGOS Three · github organization"
[111]: http://github.com/mangosthree/server "MaNGOS Three · server repository"
[112]: http://github.com/mangosthree/scripts "MaNGOS Three · script extensions repository"
[113]: http://github.com/mangosthree/database "MaNGOS Three · content database repository"
[114]: https://travis-ci.org/mangosthree/server/ "MaNGOS Three · build status"
[201]: http://www.microsoft.com/express/ "Visual Studio Express · free, limited edition"
[202]: http://gcc.gnu.org/ "GCC"
[203]: http://clang.llvm.org/ "Clang"
[251]: http://www.cmake.org/ "CMake · Cross Platform Make"

15
Rel20_Todo.md Normal file
View file

@ -0,0 +1,15 @@
ROADMAP and goals for 0.20.0 release
------------
* Completely synchronize fixes between mangos repositories (zero, one, two)
* Implement void storage
* Implement archaelogy
* warden system
* Implement passive anticheat (warden system is not enough to stop jockers...).
* Phasing system port from trinitycore
* Add missing opcodes.
* Implement linked_spell_trigger database table implementation (this will accessible in all mangos) for simple spells implementation.
* Implement new gossip script wrapper in scriptmgr to make code style better.
* Implement new event in EVENTAI which would let better integrate gossips
* Rework/retest all classes spells