FROM ubuntu:bionic

RUN apt-get update \
	&& apt-get install -y --no-install-recommends \
		build-essential git \
		wget ca-certificates \
		pkg-config libopus-dev libssl-dev \
		zlib1g-dev gperf ccache \
	&& rm -rf /var/lib/apt/lists/*

RUN wget https://cmake.org/files/v3.18/cmake-3.18.0-Linux-x86_64.sh \
    && sh cmake-3.18.0-Linux-x86_64.sh --prefix=/usr --exclude-subdir

COPY tdlib_header.patch /
COPY tdlib_threadname.patch /

RUN git clone https://github.com/tdlib/td.git \
    && cd td \
    && git reset --hard v1.6.0 \
    && git apply /tdlib_header.patch \
    && git apply /tdlib_threadname.patch \
    && mkdir build \
    && cd build \
    && cmake -DCMAKE_BUILD_TYPE=Release .. \
    && cmake --build . --target install -j $(grep -c ^processor /proc/cpuinfo) \
    && cd / \
    && rm -rf td

COPY config_site.h /

RUN git clone https://github.com/pjsip/pjproject.git \
    && cd pjproject \
    && git reset --hard 2.9 \
    && cp /config_site.h pjlib/include/pj \
    && ./configure --disable-sound CFLAGS="-O3 -DNDEBUG" \
    && make dep && make -j $(grep -c ^processor /proc/cpuinfo) && make install \
    && cd / \
    && rm -rf pjproject

RUN git clone -n https://github.com/gabime/spdlog.git \
    && cd spdlog \
    && git checkout tags/v0.17.0 \
    && mkdir build \
    && cd build \
    && cmake -DCMAKE_BUILD_TYPE=Release -DSPDLOG_BUILD_EXAMPLES=OFF -DSPDLOG_BUILD_TESTING=OFF .. \
    && cmake --build . --target install -j $(grep -c ^processor /proc/cpuinfo) \
    && cd / \
    && rm -rf spdlog