FROM ubuntu:18.04 AS apt-installs RUN set -ex; \ export DEBIAN_FRONTEND=noninteractive ; \ apt update -qq; \ # install wget to download repository keys and CMake tarballs # install software-properties-common for the apt-add-repository command apt install -y -qq wget software-properties-common ; \ # Canonical hosts recent GCC compilers in ubuntu-toolchain-r/test apt-add-repository -y ppa:ubuntu-toolchain-r/test ; \ # LLVM hosts most toolchain in separate repos. We only register those absent from ubuntu-toolchain-r/test wget -q -O - https://apt.llvm.org/llvm-snapshot.gpg.key | apt-key add - ; \ apt-add-repository -y 'deb [arch=amd64] https://apt.llvm.org/bionic/ llvm-toolchain-bionic-11 main' ; \ apt-add-repository -y 'deb [arch=amd64] https://apt.llvm.org/bionic/ llvm-toolchain-bionic-12 main' ; \ apt-add-repository -y 'deb [arch=amd64] https://apt.llvm.org/bionic/ llvm-toolchain-bionic-13 main' ; \ # install ninja, GCC 7-10, LLVM 8-13 and build-essential to get linkers, etc. # install git to download dependencies # install ruby to run CMock # install libidn11 which CMake 3.1.3 only depends on # install ca-certificates to `git clone` via HTTPS # install SFML dependencies # libx11-dev libxrandr-dev libxi-dev # mesa-common-dev for gl.h # libgl1-mesa-dev for libGL.so # libglu1-mesa-dev for glu.h # libudev-dev # install Vcpkg dependencies # curl zip unzip tar apt install -y -qq build-essential g++-7 g++-8 g++-9 g++-10 clang-8 clang-9 clang-10 clang-11 clang-12 clang-13 ninja-build git ruby libidn11 ca-certificates libx11-dev libxrandr-dev libxi-dev mesa-common-dev libgl1-mesa-dev libglu1-mesa-dev libudev-dev curl zip unzip tar # install CMake minimum (3.0.2 (Headers, ICD Loader), 3.1.3 (CLHPP), 3.10.3 (SDK)) and latest (3.21.2) RUN mkdir -p /opt/Kitware/CMake ; \ wget -c https://github.com/Kitware/CMake/releases/download/v3.0.2/cmake-3.0.2-Linux-i386.tar.gz -O - | tar -xz --directory /opt/Kitware/CMake ; \ mv /opt/Kitware/CMake/cmake-3.0.2-Linux-i386 /opt/Kitware/CMake/3.0.2 ; \ wget -c https://github.com/Kitware/CMake/releases/download/v3.1.3/cmake-3.1.3-Linux-x86_64.tar.gz -O - | tar -xz --directory /opt/Kitware/CMake ; \ mv /opt/Kitware/CMake/cmake-3.1.3-Linux-x86_64 /opt/Kitware/CMake/3.1.3 ; \ wget -c https://github.com/Kitware/CMake/releases/download/v3.10.3/cmake-3.10.3-Linux-x86_64.tar.gz -O - | tar -xz --directory /opt/Kitware/CMake ; \ mv /opt/Kitware/CMake/cmake-3.10.3-Linux-x86_64 /opt/Kitware/CMake/3.10.3 ; \ wget -c https://github.com/Kitware/CMake/releases/download/v3.21.2/cmake-3.21.2-linux-x86_64.tar.gz -O - | tar -xz --directory /opt/Kitware/CMake ; \ mv /opt/Kitware/CMake/cmake-3.21.2-linux-x86_64 /opt/Kitware/CMake/3.21.2 # install Vcpkg RUN git clone --depth 1 https://github.com/Microsoft/vcpkg.git /opt/Microsoft/vcpkg ; \ /opt/Microsoft/vcpkg/bootstrap-vcpkg.sh ; \ # install SFML, TCLAP, GLM /opt/Microsoft/vcpkg/vcpkg install sfml tclap glm glew