# Copyright Advanced Micro Devices, Inc., or its affiliates.
# SPDX-License-Identifier: MIT

# See here for image contents: https://github.com/devcontainers/images/tree/main/src/base-ubuntu

# ubuntu-20.04 = focal
# ubuntu-22.04 = jammy
FROM mcr.microsoft.com/devcontainers/base:jammy

ARG DEBIAN_FRONTEND=noninteractive

# Propagate the environment variable HTTP_PROXY into the apt config if it's set.
RUN [ -z ${HTTP_PROXY} ] || (echo "Acquire::http::Proxy \"${HTTP_PROXY}\";" > /etc/apt/apt.conf.d/proxy)

RUN apt-get update && apt-get install -y \
   bc \
   gdb \
   m4 \
   make \
   nano \
   ninja-build \
   python3-dev \
   vim \
   wget \
   xz-utils

# cmake 3.22.1
 RUN wget -O /tmp/cmake-install.sh https://github.com/Kitware/CMake/releases/download/v3.22.1/cmake-3.22.1-linux-x86_64.sh \
   && sh /tmp/cmake-install.sh --prefix=/usr/local --skip-license \
   && rm /tmp/cmake-install.sh

# clang-format from ROCm 4.3.1
ADD docker/install-clang-format /tmp
RUN /tmp/install-clang-format && rm /tmp/install-clang-format
ENV PATH="/opt/clang-format/bin:${PATH}"

# cppcheck
ADD docker/install-cppcheck /tmp
RUN /tmp/install-cppcheck && rm /tmp/install-cppcheck

# perf
RUN apt-get update && apt-get install -y \
      linux-tools-common linux-tools-generic

# ccache
RUN apt-get update && apt-get install -y \
      libzstd-dev
RUN wget -nv https://github.com/ccache/ccache/releases/download/v4.4.2/ccache-4.4.2.tar.gz -O ccache-4.4.2.tar.gz && \
    tar xf ccache-4.4.2.tar.gz && \
    cmake -Sccache-4.4.2 -Bbuild -GNinja \
      -DCMAKE_BUILD_TYPE=Release \
      -DENABLE_TESTING=OFF \
      -DREDIS_STORAGE_BACKEND=OFF && \
    ninja -C build && \
    sudo ninja -C build install && \
    rm -r ccache-4.4.2 ccache*.tar.gz build

# ROCm 6.2
RUN wget -O /tmp/amdgpu_install.deb https://repo.radeon.com/amdgpu-install/6.2.2/ubuntu/jammy/amdgpu-install_6.2.60202-1_all.deb \
    && sudo apt-get update \
    && apt-get install -y /tmp/amdgpu_install.deb \
    && amdgpu-install -y --usecase=rocmdev --no-dkms \
    && rm /tmp/amdgpu_install.deb

RUN ( \
    echo "base_image: ${base_image}" && \
    echo "mxdatagen: amdclang" \
    ) > /.container_info.txt

ENV CXX=/opt/rocm/bin/amdclang++
ENV CC=/opt/rocm/bin/amdclang

# Clean image
RUN apt-get autoremove -y && apt-get clean -y && rm -rf /var/lib/apt/lists/*
