ARG DEBIAN_VERSION=stable
ARG UBUNTU_VERSION=resolute

FROM debian:${DEBIAN_VERSION} AS debian
ARG DEBIAN_FRONTEND=noninteractive
SHELL ["/bin/bash", "-c"]
RUN apt-get update && apt-get install -y --no-install-recommends \
        build-essential \
        ca-certificates \
        capnproto \
        clang \
        cmake \
        git \
        libboost-date-time-dev \
        libboost-program-options-dev \
        libboost-system-dev \
        libcapnp-dev \
        libcrypto++-dev \
        libgeographiclib-dev \
        libssl-dev \
        ninja-build \
        pkg-config \
    && rm -rf /var/lib/apt/lists/*
COPY --chmod=755 build_and_run_tests.sh build_strict_cxx14.sh /usr/local/bin/
RUN useradd -m build-user
USER build-user
WORKDIR /home/build-user
ENTRYPOINT ["build_and_run_tests.sh"]
CMD ["/home/build-user/workspace"]

FROM debian AS strict-cxx14
ENTRYPOINT ["build_strict_cxx14.sh"]
CMD ["/home/build-user/workspace"]

FROM ubuntu:${UBUNTU_VERSION} AS ubuntu
ARG DEBIAN_FRONTEND=noninteractive
SHELL ["/bin/bash", "-c"]
COPY --chmod=755 update_cmake.sh apt_pkg_name.sh /usr/local/bin/
RUN update_cmake.sh && apt-get update && \
    apt-get install -y --no-install-recommends \
        build-essential \
        ca-certificates \
        capnproto \
        cmake \
        git \
        libboost-date-time-dev \
        libboost-program-options-dev \
        libboost-system-dev \
        libcapnp-dev \
        libcrypto++-dev \
        $(apt_pkg_name.sh geographiclib) \
        libssl-dev \
        ninja-build \
        pkg-config \
    && rm -rf /var/lib/apt/lists/*
COPY build_and_run_tests.sh /usr/local/bin/build_and_run_tests.sh
RUN useradd -m build-user
USER build-user
WORKDIR /home/build-user
ENTRYPOINT ["build_and_run_tests.sh"]
CMD ["/home/build-user/workspace"]
