FROM ubuntu:22.04

ENV TZ=UTC
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone

RUN apt-get update && apt-get -y install --no-install-recommends \
        cmake \
        virtualenv \
        rapidjson-dev \
        libfuse2 \
        libssl-dev \
        libboost-dev \
        libxcb-randr0-dev \
        libboost-system-dev \
        libboost-filesystem-dev \
        libpulse-dev \
        libxkbcommon-x11-0 \
        build-essential \
        libgl1-mesa-dev \
        libxcb-icccm4 \
        libxcb-image0 \
        libxcb-keysyms1 \
        libxcb-render-util0 \
        libxcb-xinerama0

RUN apt-get -y install \
        git \
        lsb-release \
        python3-pip && \
        apt-get clean all

# Install Qt as we do in CI

RUN pip3 install -U pip && \
        pip3 install aqtinstall && \
        aqt install-qt linux desktop 5.15.2 && \
        mkdir -p /opt/qt515 && \
        mv /5.15.2/gcc_64/* /opt/qt515

ADD . /src

RUN mkdir /src/build

# Apply Qt patches
RUN patch "/opt/qt515/include/QtConcurrent/qtconcurrentthreadengine.h" /src/.patches/qt5-on-newer-gcc.patch

# cmake
RUN cd /src/build && \
        CXXFLAGS=-fno-sized-deallocation cmake \
        -DCMAKE_INSTALL_PREFIX=appdir/usr/ \
        -DCMAKE_PREFIX_PATH=/opt/qt515/lib/cmake \
        -DBUILD_WITH_QTKEYCHAIN=OFF \
        ..

# build
RUN cd /src/build && \
        make -j8
