Table of Contents
It should compile with:
- Compiler: GCC 4.8+, 5.x, 6.x (see * KNOWN BUGS), 7.X (see * KNOWN BUGS)
- Mode: c++98, c++11
- QT: 4.x (>= 4.8), 5.x
Remark: It's not been fully tested with GCC 7.x, although it should work. It's also not tested with GCC 8.x, but it seems to work.
Requirements
The following DEVELOPMENT packages are required to compile the server. Runtime libraries are not enough to compile. Development packages are mandatory (ie: libXXXX_dev)
-
qmake (Qt development tools): 4.8+. (current and recommended is 5.8: https://www.qt.io/download-open-source/)
-
boost 1.44, latest recommended (requires libbz2) (current and recommended is 1.63 http://www.boost.org/users/history/version_1_63_0.html) 1.62.
- boost-thread
- boost-filesystem
- boost-datetime
- boost-program_options
- boost-iostreams
- boost-asio
- boost-regex
- boost-random
- boost-chrono (if compiled with c++98 mode)
Remarks for boost library:
- if compiled with boost 1.70+, see *** KNOWN BUGS
-
libcurl4-gnutls
-
libtinyxml
-
libircclient
-
libgsasl (at least 1.4)
-
libsqlite3
-
libgcrypt (should already be there as dependency to the previous libs), or OpenSSL (see ** KNOWN BUGS )
-
zlib version >= 1.2.3 --> http://www.zlib.net/
-
libSDL_mixer, libSDL --> http://www.libsdl.org/
-
libSQLite3 --> http://sqlite.org/
-
protoc >= 2.3.0 (during build), libprotobuf >= 2.3.0 -> https://github.com/google/protobuf
-
libmysql++, for official server
Compilation
Server:
$ qmake QMAKE_CFLAGS_ISYSTEM="" -spec linux-g++ pokerth.pro
$ make
Binaries are left in (./bin/pokerth_server and ./chatcleaner)
Client:
$ qmake CONFIG+="client" QMAKE_CFLAGS_ISYSTEM="" -spec linux-g++ pokerth.pro
$ make
Binary is left in (./pokerth)
Options (for qmake)
- if development libraries are not in /usr (default) add:
PREFIX="/path_to_libraries" (ie: PREFIX="/usr/local") - if an specific compiler has to be set:
QMAKE_CC="C compiler" QMAKE_CXX="C++ compiler" (ie: QMAKE_CC="/usr/bin/gcc-5" QMAKE_CXX="/usr/bin/g++-5") - if an specific mode has to be set:
CONFIG+="mode" (ie: CONFIG+="client c++11")
KNOWN BUGS
- (*) if compiled with GCC 6.x (or above) and QT 5, need to add
QMAKE_CFLAGS_ISYSTEM=""to qmake command (It seems it's a QT bug: https://bugreports.qt.io/browse/QTBUG-53375) - (**) if compiled with OpenSSL v1.1.X, see this issue
- (***) if compiled with boost 1.70+, see this issue