From 0481f13fffd26f6c9490d0c674e89730593766e4 Mon Sep 17 00:00:00 2001 From: Ralph Sennhauser Date: Sat, 15 Feb 2025 08:23:53 +0100 Subject: [PATCH] Add Debian 12 Dockerfile Debian 12 (bookworm) will soon be oldstable. Most importantly this version comes with cmake-3.25, which will allow us to use SDL3, cpp-httplib, fcollada fork and possibly others in the future. This also comes with gcc-12 and clang-14 by default, both implementing almost all of c++17 and most of c++20. Signed-off-by: Ralph Sennhauser --- .../jenkins/dockerfiles/debian-12.Dockerfile | 60 +++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 build/jenkins/dockerfiles/debian-12.Dockerfile diff --git a/build/jenkins/dockerfiles/debian-12.Dockerfile b/build/jenkins/dockerfiles/debian-12.Dockerfile new file mode 100644 index 0000000000..21bd2ff12e --- /dev/null +++ b/build/jenkins/dockerfiles/debian-12.Dockerfile @@ -0,0 +1,60 @@ +# Debian 12 +FROM debian:bookworm-slim + +# 0 A.D. dependencies. +# Unlike gcc/g++ clang only has a single package for both C/C++ +# gcc/g++ versions: 11 12(default) +# clang versions: 13 14(default) 15 16 19 +# lld for use with clang +# llvm for objdump (spidermonkey) +ARG DEBIAN_FRONTEND=noninteractive +ARG DEBCONF_NOWARNINGS="yes" +RUN apt-get -qqy update \ + && apt-get upgrade -qqy \ + && apt-get install -qqy --no-install-recommends \ + clang \ + clang-14 \ + cmake \ + curl \ + g++ \ + g++-12 \ + gcc \ + gcc-12 \ + libboost-filesystem-dev \ + libboost-system-dev \ + libcurl4-gnutls-dev \ + libenet-dev \ + libfmt-dev \ + libfreetype-dev \ + libgloox-dev \ + libicu-dev \ + libminiupnpc-dev \ + libogg-dev \ + libopenal-dev \ + libpng-dev \ + libsdl2-dev \ + libsodium-dev \ + libvorbis-dev \ + libwxgtk3.2-dev \ + libxml2-dev \ + lld-14 \ + llvm \ + llvm-14 \ + m4 \ + make \ + patch \ + python-is-python3 \ + python3-dev \ + python3-pip \ + subversion \ + xz-utils \ + zlib1g-dev \ + && apt-get clean + +# Install rust and Cargo via rustup, available in Debian12 1.63, need 1.66 +ENV RUSTUP_HOME=/usr/local/rust +ENV CARGO_HOME=/usr/local/rust +RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- --default-toolchain 1.66.0 -y + +ENV PATH="${RUSTUP_HOME}/bin:${PATH}" +ENV SHELL=/bin/bash