# Parameters related to building hipSPARSE
ARG base_image

FROM ${base_image}
LABEL maintainer="rocsparse-maintainer@amd.com"

ARG user_uid

# Install dependent packages
RUN yum install -y \
    sudo \
    rock-dkms \
    centos-release-scl \
    devtoolset-7 \
    ca-certificates \
    git \
    cmake3 \
    make \
    clang \
    clang-devel \
    gcc-c++ \
    gtest-devel \
    gtest \
    pkgconfig \
    rocprim \
    libcxx-devel \
    numactl-libs \
    rpm-build \
    deltarpm

RUN echo '#!/bin/bash' | tee /etc/profile.d/devtoolset7.sh && echo \
    'source scl_source enable devtoolset-7' >>/etc/profile.d/devtoolset7.sh

# docker pipeline runs containers with particular uid
# create a jenkins user with this specific uid so it can use sudo priviledges
# Grant any member of sudo group password-less sudo privileges
RUN useradd --create-home -u ${user_uid} -o -G video --shell /bin/bash jenkins && \
    echo '%video ALL=(ALL) NOPASSWD:ALL' | tee /etc/sudoers.d/sudo-nopasswd && \
    chmod 400 /etc/sudoers.d/sudo-nopasswd

ARG ROCSPARSE_SRC_ROOT=/usr/local/src/rocSPARSE
ARG HIPSPARSE_SRC_ROOT=/usr/local/src/hipSPARSE

# Clone rocsparse repo
# Build rocsparse and install into /usr/local
RUN mkdir -p ${ROCSPARSE_SRC_ROOT} && cd ${ROCSPARSE_SRC_ROOT} && \
    git clone -b develop --depth=1 https://github.com/ROCmSoftwarePlatform/rocSPARSE . && \
    HCC_AMDGPU_TARGET=gfx803 ./install.sh -i && \
    rm -rf ${ROCSPARSE_SRC_ROOT}

# Clone hipsparse repo
# Build client dependencies and install into /usr/local
RUN mkdir -p ${HIPSPARSE_SRC_ROOT} && cd ${HIPSPARSE_SRC_ROOT} && \
    git clone -b develop --depth=1 https://github.com/ROCmSoftwarePlatform/hipSPARSE . && \
    mkdir -p build/deps && cd build/deps && \
    cmake3 ${HIPSPARSE_SRC_ROOT}/deps && \
    make -j $(nproc) install && \
    rm -rf ${HIPSPARSE_SRC_ROOT}
