FROM ubuntu:22.04

RUN apt update

RUN apt install -y -qq apt-utils

# boost
RUN apt install -y -qq libboost-filesystem1.74-dev libboost-filesystem1.74.0 libboost-iostreams1.74-dev libboost-iostreams1.74.0 libboost-locale1.74-dev libboost-locale1.74.0 libboost-regex1.74-dev libboost-regex1.74.0 libboost-serialization1.74-dev libboost-serialization1.74.0 libasio-dev libboost-program-options1.74-dev libboost-program-options1.74.0 libboost-random1.74-dev libboost-random1.74.0 libboost-system1.74-dev libboost-system1.74.0 libboost-thread1.74-dev libboost-thread1.74.0 libboost-test-dev libboost-context1.74.0 libboost-context1.74-dev libboost-coroutine1.74.0 libboost-coroutine1.74-dev

# SDL
RUN apt install -y -qq libsdl2-2.0-0 libsdl2-dev libsdl2-image-2.0-0 libsdl2-image-dev libsdl2-mixer-2.0-0 libsdl2-mixer-dev

# make tzdata not prompt for a timezone
ENV DEBIAN_FRONTEND=noninteractive

# translations
RUN apt install -y -qq asciidoc dos2unix xsltproc po4a docbook-xsl language-pack-en
RUN locale-gen en_US.UTF-8

# misc
RUN apt install -y -qq libpng16-16 libpng-dev libreadline6-dev libvorbis-dev libcairo2 libcairo2-dev libpango-1.0-0 libpango1.0-dev libbz2-1.0 libbz2-dev zlib1g zlib1g-dev libpangocairo-1.0-0 libssl-dev libmysqlclient-dev expect-dev moreutils ca-certificates libcurl4-openssl-dev liblua5.4-dev

# programs
RUN apt install -y -qq openssl gdb xvfb bzip2 git scons cmake make ccache gcc g++ clang lld doxygen graphviz lua-check

WORKDIR /home/wesnoth-travis

# build another copy of boost with _GLIBCXX_DEBUG enabled, since program options requires this
COPY boost_1_74_0.tar.gz .
RUN tar -xvzf boost_1_74_0.tar.gz && cd boost_1_74_0 && ./bootstrap.sh --with-libraries=filesystem,locale,iostreams,program_options,regex,random,thread,coroutine,context,test && ./b2 -j2 variant=debug install cxxflags='-fstack-protector-strong' define=_GLIBCXX_DEBUG=1 define=_FORTIFY_SOURCE=2 address-model=64
RUN rm -R /home/wesnoth-travis/boost_1_74_0
RUN rm /home/wesnoth-travis/boost_1_74_0.tar.gz
