Skip to content

Commit

Permalink
Add Ubuntu 24.04 machine with LLVM 19 (#129)
Browse files Browse the repository at this point in the history
LLVM 19 adds the new (and very conveniently named)
`-Wmissing-template-arg-list-after-template-kw` warning flag which fires
a lot on the existing ACTS code. The new version of OneAPI is based on
this version of LLVM, which is causing us a bit of grief in e.g.
acts-project/traccc#793. In order to resolve
this issue I want to add an LLVM 19 build to ACTS.
  • Loading branch information
stephenswat authored Dec 3, 2024
1 parent b67bbd8 commit bc0f3ff
Show file tree
Hide file tree
Showing 2 changed files with 82 additions and 0 deletions.
1 change: 1 addition & 0 deletions .github/workflows/build-images.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ jobs:
- ubuntu2204_rocm_clang
- ubuntu2204_rocm_clang_cxx20
- ubuntu2404
- ubuntu2404_clang19
- ubuntu2404_cuda
- ubuntu2404_cuda_oneapi
- ubuntu2404_rocm_oneapi
Expand Down
81 changes: 81 additions & 0 deletions ubuntu2404_clang19/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,81 @@
FROM ubuntu:24.04

LABEL description="Ubuntu 24.04 with Acts dependencies"
LABEL maintainer="Stephen Nicholas Swatman <[email protected]>"
# increase whenever any of the RUN commands change
LABEL version="1"

# DEBIAN_FRONTEND ensures non-blocking operation (tzdata is a problem)
ENV DEBIAN_FRONTEND noninteractive

RUN apt-get update -y \
&& apt-get upgrade -y \
&& apt-get install -y wget

RUN wget -qO- https://apt.llvm.org/llvm-snapshot.gpg.key | tee /etc/apt/trusted.gpg.d/apt.llvm.org.asc
RUN echo "deb http://apt.llvm.org/noble/ llvm-toolchain-noble-19 main" >> /etc/apt/sources.list

# install dependencies from the package manager.
#
# see also https://root.cern.ch/build-prerequisites
RUN apt-get update -y \
&& apt-get upgrade -y \
&& apt-get install -y \
build-essential \
curl \
git \
git-lfs \
cmake \
freeglut3-dev \
libexpat-dev \
libftgl-dev \
libgl2ps-dev \
libglew-dev \
libgsl-dev \
liblz4-dev \
liblzma-dev \
libpcre3-dev \
libx11-dev \
libxext-dev \
libxft-dev \
libxpm-dev \
libxerces-c-dev \
libxxhash-dev \
libzstd-dev \
zstd \
ninja-build \
python3 \
python3-dev \
python3-pip \
rsync \
zlib1g-dev \
ccache \
python3-venv \
libsqlite3-dev \
time \
clang-19 \
&& apt-get clean -y

ENV CXX clang++-19
ENV CC clang-19

# manual builds for hep-specific packages
ENV GET curl --location --silent --create-dirs
ENV UNPACK_TO_SRC tar -xz --strip-components=1 --directory src
ENV PREFIX /usr/local

ENV ONNXRUNTIME_VERSION=1.18.1

# Onnx (download of tar.gz does not work out of the box, since the build.sh script requires a git repository)
RUN git clone https://github.com/microsoft/onnxruntime src \
&& (cd src && git checkout v${ONNXRUNTIME_VERSION}) \
&& ./src/build.sh \
--config MinSizeRel \
--build_shared_lib \
--build_dir build \
--skip_tests \
--allow_running_as_root \
--parallel 0 \
&& cmake --build build/MinSizeRel -- install \
&& rm -rf build src

0 comments on commit bc0f3ff

Please sign in to comment.