diff --git a/.github/workflows/clang_sanitizers.yml b/.github/workflows/clang_sanitizers.yml index 15dbb00756a..e0947916d3f 100644 --- a/.github/workflows/clang_sanitizers.yml +++ b/.github/workflows/clang_sanitizers.yml @@ -27,7 +27,7 @@ jobs: - uses: actions/checkout@v4 - name: install dependencies run: | - .github/workflows/dependencies/clang17.sh + .github/workflows/dependencies/clang.sh 17 - name: CCache Cache uses: actions/cache@v4 with: @@ -89,7 +89,7 @@ jobs: - uses: actions/checkout@v4 - name: install dependencies run: | - .github/workflows/dependencies/clang17.sh + .github/workflows/dependencies/clang.sh 17 - name: CCache Cache uses: actions/cache@v4 with: diff --git a/.github/workflows/clang_tidy.yml b/.github/workflows/clang_tidy.yml index 6e83b07000f..83d5b86c96b 100644 --- a/.github/workflows/clang_tidy.yml +++ b/.github/workflows/clang_tidy.yml @@ -26,7 +26,7 @@ jobs: - uses: actions/checkout@v4 - name: install dependencies run: | - .github/workflows/dependencies/clang15.sh + .github/workflows/dependencies/clang.sh 15 - name: set up cache uses: actions/cache@v4 with: diff --git a/.github/workflows/dependencies/clang17.sh b/.github/workflows/dependencies/clang.sh similarity index 60% rename from .github/workflows/dependencies/clang17.sh rename to .github/workflows/dependencies/clang.sh index fb04e2a5914..3ffe6dbc675 100755 --- a/.github/workflows/dependencies/clang17.sh +++ b/.github/workflows/dependencies/clang.sh @@ -1,45 +1,50 @@ #!/usr/bin/env bash # -# Copyright 2024 The WarpX Community +# Copyright 2025 The WarpX Community # # License: BSD-3-Clause-LBNL -# Authors: Luca Fedeli set -eu -o pipefail -# `man apt.conf`: -# Number of retries to perform. If this is non-zero APT will retry -# failed files the given number of times. +# `man apt.conf`: number of retries to perform (if non-zero, +# APT will retry failed files the given number of times). echo 'Acquire::Retries "3";' | sudo tee /etc/apt/apt.conf.d/80-retries -# This dependency file is currently used within a docker container, -# which does not come (among others) with wget, xz-utils, curl, git, -# ccache, and pkg-config pre-installed. -sudo apt-get -qqq update +sudo apt-get update sudo apt-get install -y \ cmake \ - clang-17 \ - clang-tidy-17 \ libblas-dev \ - libc++-17-dev \ libboost-math-dev \ libfftw3-dev \ libfftw3-mpi-dev \ libhdf5-openmpi-dev \ liblapack-dev \ libopenmpi-dev \ - libomp-17-dev \ - ninja-build \ - wget \ - xz-utils \ - curl \ - git \ - ccache \ - pkg-config + ninja-build -# Use clang 17 -export CXX=$(which clang++-17) -export CC=$(which clang-17) +# parse clang version number from command line +version_number=${1} + +# add LLVM repository and install clang tools +wget https://apt.llvm.org/llvm.sh +chmod +x llvm.sh +sudo ./llvm.sh ${version_number} + +# install clang, clang-tidy, and +# LLVM implementations of C++ standard library and OpenMP +sudo apt-get update +sudo apt-get install -y \ + clang-${version_number} \ + clang-tidy-${version_number} \ + libc++-${version_number}-dev \ + libomp-${version_number}-dev + +# export compiler flags +export CXX=$(which clang++-${version_number}) +export CC=$(which clang-${version_number}) + +# ccache +$(dirname "$0")/ccache.sh # cmake-easyinstall # diff --git a/.github/workflows/dependencies/clang15.sh b/.github/workflows/dependencies/clang15.sh deleted file mode 100755 index 63d5d70956f..00000000000 --- a/.github/workflows/dependencies/clang15.sh +++ /dev/null @@ -1,56 +0,0 @@ -#!/usr/bin/env bash -# -# Copyright 2023 The WarpX Community -# -# License: BSD-3-Clause-LBNL -# Authors: Luca Fedeli - -set -eu -o pipefail - -# `man apt.conf`: -# Number of retries to perform. If this is non-zero APT will retry -# failed files the given number of times. -echo 'Acquire::Retries "3";' | sudo tee /etc/apt/apt.conf.d/80-retries - -sudo apt-get -qqq update -sudo apt-get install -y \ - cmake \ - clang-15 \ - clang-tidy-15 \ - libblas-dev \ - libc++-15-dev \ - libboost-math-dev \ - libfftw3-dev \ - libfftw3-mpi-dev \ - libhdf5-openmpi-dev \ - liblapack-dev \ - libopenmpi-dev \ - libomp-15-dev \ - ninja-build - -# ccache -$(dirname "$0")/ccache.sh - -# cmake-easyinstall -# -sudo curl -L -o /usr/local/bin/cmake-easyinstall https://raw.githubusercontent.com/ax3l/cmake-easyinstall/main/cmake-easyinstall -sudo chmod a+x /usr/local/bin/cmake-easyinstall -export CEI_SUDO="sudo" -export CEI_TMP="/tmp/cei" - -# BLAS++ & LAPACK++ -cmake-easyinstall \ - --prefix=/usr/local \ - git+https://github.com/icl-utk-edu/blaspp.git \ - -Duse_openmp=OFF \ - -Dbuild_tests=OFF \ - -DCMAKE_CXX_COMPILER_LAUNCHER=$(which ccache) \ - -DCMAKE_VERBOSE_MAKEFILE=ON - -cmake-easyinstall \ - --prefix=/usr/local \ - git+https://github.com/icl-utk-edu/lapackpp.git \ - -Duse_cmake_find_lapack=ON \ - -Dbuild_tests=OFF \ - -DCMAKE_CXX_COMPILER_LAUNCHER=$(which ccache) \ - -DCMAKE_VERBOSE_MAKEFILE=ON