11name : Install prerequisites
22inputs :
3- clang_version :
4- required : true
53 arch :
64 required : true
75runs :
@@ -17,50 +15,45 @@ runs:
1715 export DEBIAN_FRONTEND=noninteractive
1816 sudo apt-get -q update
1917 sudo -E apt-get -yq install \
20- git-core curl xz-utils ninja-build g++ python3 pkgconf binutils-dev libxml2-dev libzstd-dev zlib1g-dev p7zip-full unzip
18+ git-core curl xz-utils g++ python3 pkgconf binutils-dev libxml2-dev libzstd-dev zlib1g-dev p7zip-full unzip \
19+ lsb-release wget software-properties-common gnupg # prerequisites of apt.llvm.org install script
2120
22- # install a recent CMake version (Ubuntu 20's too old)
23- curl -fL --retry 3 --max-time 300 -o cmake.tar.gz \
24- https://github.com/Kitware/CMake/releases/download/v3.31.4/cmake-3.31.4-linux-${{ inputs.arch }}.tar.gz
25- mkdir cmake
26- tar -xf cmake.tar.gz --strip 1 -C cmake
27- rm cmake.tar.gz
28- sudo ln -sf $PWD/cmake/bin/cmake /usr/bin/cmake
21+ # install a more recent CMake version in the AArch64 container (Ubuntu 20's too old)
22+ arch='${{ inputs.arch }}'
23+ if [[ $arch == aarch64 ]]; then
24+ curl -fL --retry 3 --max-time 300 -o cmake.tar.gz \
25+ https://github.com/Kitware/CMake/releases/download/v3.31.4/cmake-3.31.4-linux-$arch.tar.gz
26+ mkdir cmake
27+ tar -xf cmake.tar.gz --strip 1 -C cmake
28+ rm cmake.tar.gz
29+ sudo ln -sf $PWD/cmake/bin/cmake /usr/bin/cmake
30+ fi
2931
30- - name : ' Linux: Download & extract clang' # into ../clang
32+ - name : ' Linux: Install clang 19 from apt.llvm.org '
3133 if : runner.os == 'Linux'
3234 shell : bash
3335 run : |
3436 set -eux
3537 cd ..
36- version='${{ inputs.clang_version }}'
37- arch='${{ inputs.arch }}'
38- extraSuffix=''
39- if [[ $arch == x86_64 ]]; then
40- extraSuffix='-ubuntu-18.04'
41- fi
42- curl -fL --retry 3 --max-time 300 -o clang.tar.xz \
43- https://github.com/llvm/llvm-project/releases/download/llvmorg-$version/clang+llvm-$version-$arch-linux-gnu$extraSuffix.tar.xz
44- mkdir clang
45- tar -xf clang.tar.xz --strip 1 -C clang
46- rm clang.tar.xz
47- clang/bin/clang --version
38+ curl -fL --retry 3 --max-time 30 -O https://apt.llvm.org/llvm.sh
39+ sudo bash llvm.sh 19
4840
4941 # use it as C(++) compiler for future steps
50- echo "CC=$PWD/ clang/bin/clang " >> $GITHUB_ENV
51- echo "CXX=$PWD/ clang/bin/clang++ " >> $GITHUB_ENV
42+ echo "CC=clang-19 " >> $GITHUB_ENV
43+ echo "CXX=clang++-19 " >> $GITHUB_ENV
5244
5345 # make bundled lld the default linker
54- sudo ln -sf "$PWD/clang/bin/ ld.lld" /usr/bin/ld
46+ sudo ln -sf ld.lld-19 /usr/bin/ld
5547 ld --version
56- - name : ' Windows: Install clang'
48+
49+ - name : ' Windows: Install clang v19.1.3 from GitHub'
5750 if : runner.os == 'Windows'
5851 shell : bash
5952 run : |
6053 set -eux
6154 cd ..
6255 curl -fL --retry 3 --max-time 300 -o clang.exe \
63- https://github.com/llvm/llvm-project/releases/download/llvmorg-${{ inputs.clang_version }} /LLVM-${{ inputs.clang_version }} -win64.exe
56+ https://github.com/llvm/llvm-project/releases/download/llvmorg-19.1.3 /LLVM-19.1.3 -win64.exe
6457 ./clang.exe //S # double-slash for bash
6558 rm clang.exe
6659
7871 echo "ASMFLAGS=-m32" >> $GITHUB_ENV
7972 fi
8073
81- - name : ' Non-Linux: Install ninja'
82- if : runner.os != 'Linux'
83- uses : seanmiddleditch/gha-setup-ninja@v4
74+ - name : Install ninja v1.12.1
75+ uses : Ahajha/gha-setup-ninja@69595b0cf872acdad8ce599142fbdc88724b9a2b
8476
8577 - name : ' Windows: Set LDC_VSDIR env variable'
8678 if : runner.os == 'Windows'
0 commit comments