FROM ubuntu:22.04 AS blender

# Setup all software version request
ARG b3d_vs_major=3.6
ARG b3d_vs_minor=10
ARG version=v${b3d_vs_major}.${b3d_vs_minor}

LABEL Author="stilobique"
LABEL Title="Blender Docker for Unit Test"

# Install dependencies
RUN apt-get update && apt-get install -y build-essential \
    git \
    git-lfs \
    cmake \
    python3 \
    python3-dev \
    cython3 \
    sudo

RUN apt-get install -y libx11-dev \
    libxxf86vm-dev \
    libxcursor-dev \
    libxi-dev \
    libxrandr-dev \
    libxinerama-dev \
    libxkbcommon-dev \
    libwayland-dev \
    libdecor-0-dev \
    wayland-protocols \
    libdbus-1-dev \
    libgl-dev \
    libegl-dev

RUN apt-get install -y libjpeg-dev \
    libpng-dev \
    libfreetype-dev \
    libfontconfig-dev \
    libzstd-dev \
    libbz2-dev \
    liblzma-dev \
    libsdl2-dev \
    libepoxy-dev \
    libxml2-dev \
    libhpdf-dev \
    libpystring-dev

RUN apt-get install -y libopenjp2-7-dev \
    libtiff-dev \
    libjack-jackd2-dev \
    libpulse-dev \
    libopenal-dev \
    libsndfile1-dev \
    libjemalloc-dev \
    libvulkan-dev \
    libgmp-dev \
    libpugixml-dev \
    libfftw3-dev \
    libpotrace-dev \
    libyaml-cpp-dev \
    libdeflate-dev

# ADD . /opt/blender-git
RUN git clone --depth 1 --branch ${version} https://projects.blender.org/blender/blender.git /opt/blender-git

# Use the local repo has current directory
#WORKDIR /opt/blender-git

# Compile Blender
RUN cd /opt/blender-git && \
    sudo ./build_files/utils/make_update.py --use-linux-libraries
RUN cd /opt/blender-git &&  \
    make

## Setup a Multistage optimisation
FROM ubuntu:22.04
COPY --from=blender /opt/build_linux/bin /opt/blender
ARG b3d_vs_major
ENV B3D_ADDON_PATH "$HOME/.config/blender/${b3d_vs_major}/scripts/addons"

RUN apt-get update && apt-get install -y \
    libxi6 \
    libxxf86vm1 \
    libxfixes3 \
    libxkbcommon-x11-0 \
    libjack0 \
    pulseaudio \
    libgl1-mesa-glx

# Working Directory setup
WORKDIR /opt/blender