mirror of
https://github.com/4jcraft/4jcraft.git
synced 2026-04-23 13:23:37 +00:00
Dockerfile: change to use llvm/clang toolchain
Some checks failed
Some checks failed
add a dedicated clang stage that installs llvm/clang sets clang/clang++ and lld as default Signed-off-by: ViniciusCruzMoura <contato.cruz.moura@gmail.com>
This commit is contained in:
parent
223541b009
commit
265c5d03e6
|
|
@ -1,33 +1,62 @@
|
|||
FROM mcr.microsoft.com/devcontainers/cpp:1-ubuntu-24.04
|
||||
FROM ubuntu:24.04 as clang
|
||||
|
||||
ENV DEBIAN_FRONTEND=noninteractive
|
||||
ARG LLVM_VERSION=20
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y \
|
||||
wget \
|
||||
lsb-release \
|
||||
software-properties-common \
|
||||
gnupg
|
||||
|
||||
RUN wget https://apt.llvm.org/llvm.sh \
|
||||
&& chmod +x llvm.sh \
|
||||
&& ./llvm.sh ${LLVM_VERSION} \
|
||||
&& rm llvm.sh
|
||||
|
||||
RUN update-alternatives --install /usr/bin/clang clang /usr/bin/clang-${LLVM_VERSION} 100 \
|
||||
--slave /usr/bin/clang++ clang++ /usr/bin/clang++-${LLVM_VERSION}
|
||||
|
||||
RUN update-alternatives --install /usr/bin/lld lld /usr/bin/lld-${LLVM_VERSION} 100
|
||||
|
||||
RUN apt-get install -y \
|
||||
libc++-${LLVM_VERSION}-dev \
|
||||
libc++abi-${LLVM_VERSION}-dev \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
ENV CC="clang" \
|
||||
CXX="clang++" \
|
||||
CC_LD="lld" \
|
||||
CXX_LD="lld"
|
||||
|
||||
FROM clang AS ivjcraft
|
||||
|
||||
ARG MESON_VERSION=1.10.2
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y software-properties-common \
|
||||
&& add-apt-repository -y ppa:ubuntu-toolchain-r/test \
|
||||
&& add-apt-repository ppa:ubuntu-toolchain-r/test \
|
||||
&& apt-get update \
|
||||
&& apt-get install -y \
|
||||
build-essential \
|
||||
gcc-15 g++-15 \
|
||||
python3 \
|
||||
ninja-build \
|
||||
libsdl2-dev \
|
||||
libgl-dev \
|
||||
libglm-dev \
|
||||
libglu1-mesa-dev \
|
||||
libpthread-stubs0-dev \
|
||||
libssl-dev \
|
||||
gcc-15 g++-15 \
|
||||
&& update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-15 100 \
|
||||
&& update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-15 100 \
|
||||
&& apt-get autoremove -y \
|
||||
&& apt-get clean -y \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
RUN MESON_VERSION=1.10.2 \
|
||||
&& wget -qO meson.tar.gz https://github.com/mesonbuild/meson/releases/latest/download/meson-${MESON_VERSION}.tar.gz \
|
||||
RUN wget -qO meson.tar.gz https://github.com/mesonbuild/meson/releases/latest/download/meson-${MESON_VERSION}.tar.gz \
|
||||
&& mkdir /opt/meson \
|
||||
&& tar xf meson.tar.gz --strip-components=1 -C /opt/meson \
|
||||
&& mv /opt/meson/meson.py /opt/meson/meson \
|
||||
&& ln -s /opt/meson/meson /usr/bin/meson \
|
||||
&& rm -rf meson.tar.gz
|
||||
|
||||
ENV DEBIAN_FRONTEND=dialog
|
||||
|
|
|
|||
Loading…
Reference in a new issue