I've been tripping over the same thing, trying to build three and four. zero->two work fine.
Been trying in:
* Clean 18.04 VM
* Clean 20.04 VM
* ubuntu:bionic docker image
* ubuntu:focal docker image
All with dedicated 6 cores and 16GB of RAM.
For testing/comparison:
# All as root
# Install Deps
apt-get -y update
apt-get -y install git make cmake libssl-dev libbz2-dev build-essential default-libmysqlclient-dev libace-6.4.5 libace-dev python
# Pull sources for zero->four
for MANGOS in 'zero' 'one' 'two' 'three' 'four'; do
mkdir /${MANGOS}
git clone --single-branch --recursive --depth 1 https://github.com/mangos${MANGOS}/server.git /${MANGOS}/server
git clone --single-branch --recursive --depth 1 https://github.com/mangos${MANGOS}/database.git /${MANGOS}/db
cd /${MANGOS}/server/dep && git pull origin master && git checkout master
mkdir /${MANGOS}/build
done
# Try building zero->four
for MANGOS in 'zero' 'one' 'two' 'three' 'four'; do
cd /${MANGOS}/build
cmake ../server/ -DCMAKE_INSTALL_PREFIX=/mangos${MANGOS} -DCONF_INSTALL_DIR=/mangos${MANGOS}/etc -DPLAYERBOTS=0 -DSOAP=1
make -j 1
done
zero - builds in all environments, can also be built with playerbots enabled in all environments
one - builds in all environments, playerbots is broken
two - builds in all environments, playerbots is broken
three - fails in all environments
four - fails in all environments
I've also tried SOAP on/off, clearly not related.
I actually have no idea how three passing travis right now.
Three and four give this(I've rerun a couple times since, so it's quicker to the ACE error)
root@e0b4347ae4f3:/three/build# cmake ../server/ -DCMAKE_INSTALL_PREFIX=/mangos -DCONF_INSTALL_DIR=/mangos/etc -DPLAYERBOTS=0 -DSOAP=0
This script builds the MaNGOS server.
Options that can be used in order to configure the process:
General:
CMAKE_INSTALL_PREFIX Path where the server should be installed to
CONF_DIR Path to the configs, can be absolute or relative.
DEBUG Debug mode (strict compile, all warnings)
ACE_USE_EXTERNAL Use external ACE
BUILD_MANGOSD Build the main server
BUILD_REALMD Build the login server
BUILD_TOOLS Build the map/vmap/mmap extractors
SOAP Enable remote access via SOAP
Scripting engines:
SCRIPT_LIB_ELUNA Compile with support for Eluna scripts
SCRIPT_LIB_SD3 Compile with support for ScriptDev3 scripts
# Modules:
# PLAYERBOTS Enable Player Bots
To set an option simply type -D<OPTION>=<VALUE> after 'cmake <srcs>'.
Also, you can specify the generator with -G. see 'cmake --help' for more details
For example: cmake .. -DDEBUG=1 -DCMAKE_INSTALL_PREFIX=/opt/mangos
Note: On UNIX systems, CONF_DIR is relative to the bin folder.
-- Detected 64-bit platform
-- OpenSSL library: /usr/lib/x86_64-linux-gnu/libssl.so;/usr/lib/x86_64-linux-gnu/libcrypto.so
-- OpenSSL headers: /usr/include
-- OpenSSL version: 1.1.1
-- Install server to : /mangosthree
-- Install configs to : /mangosthree/etc/
-- Search configs from : etc/
-- Support for SOAP : No (default)
-- Script engine Eluna : No (default)
-- Script engine SD3 : Yes (default)
-- Build main server : Yes (default)
-- Build login server : Yes (default)
-- Build tools : Yes (default)
-- Build in debug-mode : No (default)
-- Configuring done
-- Generating done
-- Build files have been written to: /three/build
root@e0b4347ae4f3:/three/build# make -j1
[ 0%] Built target pch.cpp_dephelp
[ 0%] Built target generate_pch.cpp
[ 0%] Building CXX object dep/acelite/CMakeFiles/ace.dir/ace/Log_Msg.cpp.o
/three/server/dep/acelite/ace/Log_Msg.cpp:438:30: error: 'ACE_DEFAULT_LOG_FLAGS' was not declared in this scope
u_long ACE_Log_Msg::flags_ = ACE_DEFAULT_LOG_FLAGS;
^~~~~~~~~~~~~~~~~~~~~
/three/server/dep/acelite/ace/Log_Msg.cpp:438:30: note: suggested alternative: 'ACE_DEFAULT_LOCALNAME'
u_long ACE_Log_Msg::flags_ = ACE_DEFAULT_LOG_FLAGS;
^~~~~~~~~~~~~~~~~~~~~
ACE_DEFAULT_LOCALNAME
dep/acelite/CMakeFiles/ace.dir/build.make:2438: recipe for target 'dep/acelite/CMakeFiles/ace.dir/ace/Log_Msg.cpp.o' failed
make[2]: *** [dep/acelite/CMakeFiles/ace.dir/ace/Log_Msg.cpp.o] Error 1
CMakeFiles/Makefile2:225: recipe for target 'dep/acelite/CMakeFiles/ace.dir/all' failed
make[1]: *** [dep/acelite/CMakeFiles/ace.dir/all] Error 2
Makefile:129: recipe for target 'all' failed
make: *** [all] Error 2