ARG BASE_IMG_TAG=servant
FROM r.lily-is.land/the-kazv-project/libkazv-deps/deps:$BASE_IMG_TAG

RUN mkdir -pv /build
COPY . /build/libkazv

WORKDIR /build/libkazv

ARG BUILD_TYPE=Debug
ARG JOBS=3

ARG DEPS_INSTALL_DIR=/opt/libkazv-deps
ARG LIBKAZV_INSTALL_DIR=/opt/libkazv
ARG LIBKAZV_ERROR_ON_WARNING=OFF

RUN --mount=type=cache,id=ccache,target=/ccache \
    export CCACHE_COMPILERCHECK=content \
    CCACHE_BASEDIR=/build/libkazv \
    CCACHE_DIR=/ccache \
    PATH="/usr/lib/ccache:$PATH" \
    CC=/usr/lib/ccache/gcc CXX=/usr/lib/ccache/g++ && \
    ccache --zero-stats; ccache --show-stats; \
    mkdir build && cd build && \
    cmake .. -DCMAKE_INSTALL_PREFIX="$LIBKAZV_INSTALL_DIR" -DCMAKE_PREFIX_PATH="$DEPS_INSTALL_DIR" -DCMAKE_BUILD_TYPE=$BUILD_TYPE -Dlibkazv_BUILD_TESTS=ON -Dlibkazv_BUILD_EXAMPLES=ON -Dlibkazv_BUILD_KAZVJOB=ON -Dlibkazv_ERROR_ON_WARNING="$LIBKAZV_ERROR_ON_WARNING" && \
    make -j$JOBS && \
    make test && \
    make -j$JOBS install && \
    cd ../.. && \
    rm -rf /build/libkazv && \
    ccache --show-stats
