@@ -25,13 +25,16 @@ jobs:
2525 strategy :
2626 fail-fast : false
2727 matrix :
28- os : [ubuntu-24.04, macos-15]
29- cxx : [g++, clang++]
28+ include :
29+ - { os: ubuntu-24.04, cxx: clang++-20 }
30+ - { os: ubuntu-24.04, cxx: g++-14 }
31+ - { os: macos-15, cxx: clang++ }
32+ - { os: macos-15, cxx: g++ }
3033
3134 runs-on : ${{ matrix.os }}
3235
3336 steps :
34- - uses : actions/checkout@v4
37+ - uses : actions/checkout@v6
3538
3639 - uses : actions/cache/restore@v4
3740 with :
4043 restore-keys : |
4144 ccache-${{ matrix.os }}-${{ matrix.cxx }}-
4245
43- - name : Set cxx variables
44- run : |
45- if [[ ${{ matrix.os }} == 'macos-15' && ${{ matrix.cxx }} == 'g++' ]]; then
46- echo "CXX=g++-15" >> $GITHUB_ENV
47- else
48- echo "CXX=${{ matrix.cxx }}" >> $GITHUB_ENV
49- fi
50-
51- - name : Install ubuntu dependencies
46+ - name : Set up Linux environment
5247 if : ${{ contains(matrix.os, 'ubuntu') }}
5348 run : >
5449 sudo apt-get update &&
@@ -57,16 +52,15 @@ jobs:
5752 ccache
5853 cmake
5954 ninja-build
60- clang
61- clang-tools
55+ clang-20
56+ clang-tools-20
6257 g++
6358 gfortran
6459 hdf5-tools
6560 libboost-dev
66- libclang-dev
67- libc++-dev
68- libc++abi-dev
69- libomp-dev
61+ libomp-20-dev
62+ libc++-20-dev
63+ libc++abi-20-dev
7064 libfftw3-dev
7165 libgfortran5
7266 libgmp-dev
@@ -77,48 +71,58 @@ jobs:
7771 openmpi-bin
7872 openmpi-common
7973 openmpi-doc
80- python3-clang
8174 python3-dev
8275 python3-mako
8376 python3-matplotlib
8477 python3-mpi4py
8578 python3-numpy
8679 python3-pip
8780 python3-scipy
88- python3-ipython
81+ python3-ipython &&
82+ echo "CXX=${{ matrix.cxx }}" >> $GITHUB_ENV
8983
90- - name : Set up virtualenv
84+ - name : Set up Python venv
9185 run : |
92- mkdir -p $HOME/.venv
86+ # --system-site-packages exposes apt- (Linux) / brew- (macOS) installed mpi4py/numpy/scipy
9387 python3 -m venv --system-site-packages $HOME/.venv/my_python
94- source $HOME/.venv/my_python/bin/activate
95- echo "VIRTUAL_ENV=$VIRTUAL_ENV" >> $GITHUB_ENV
96- echo "PATH=$PATH" >> $GITHUB_ENV
88+ echo "VIRTUAL_ENV=$HOME/.venv/my_python" >> $GITHUB_ENV
89+ echo "$HOME/.venv/my_python/bin" >> $GITHUB_PATH
9790
98- - name : Install homebrew dependencies
91+ - name : Set up macOS environment
9992 if : ${{ contains(matrix.os, 'macos') }}
10093 run : |
10194 brew update
102- brew install ccache gcc llvm boost fftw hdf5 open-mpi openblas gsl
95+ brew install ccache gcc llvm libomp boost fftw hdf5 open-mpi openblas gsl
96+ # Set CXX from the matrix; for gcc, resolve unversioned 'g++' to whatever g++-NN Homebrew installed
97+ CXX=${{ matrix.cxx }}
98+ if [[ $CXX == g++ ]]; then
99+ CXX=$(basename "$(ls $(brew --prefix)/bin/g++-* | sort -V | tail -1)")
100+ fi
101+ echo "CXX=$CXX" >> $GITHUB_ENV
103102 pip install mako numpy scipy mpi4py
104103 pip install -r requirements.txt
105104 echo "PATH=$(brew --prefix llvm)/bin:$(brew --prefix gcc)/bin:$PATH" >> $GITHUB_ENV
106105 echo "PYTHONPATH=$(brew --prefix llvm)/lib/python3.13/site-packages" >> $GITHUB_ENV
107106 echo "SDKROOT=$(xcrun --show-sdk-path)" >> $GITHUB_ENV
108- echo "LDFLAGS=-L$(brew --prefix llvm)/lib/c++ -L/opt/homebrew/opt/llvm/lib/unwind -lunwind" >> $GITHUB_ENV
107+ echo "CPPFLAGS=-I$(brew --prefix libomp)/include $CPPFLAGS" >> $GITHUB_ENV
108+ echo "LDFLAGS=-L$(brew --prefix libomp)/lib -L$(brew --prefix llvm)/lib/c++ -L/opt/homebrew/opt/llvm/lib/unwind -lunwind" >> $GITHUB_ENV
109109 echo "LAPACK_ROOT=$(brew --prefix openblas)" >> $GITHUB_ENV
110110
111111 - name : Add clang CXXFLAGS
112- if : ${{ matrix.cxx == 'clang++' }}
112+ if : ${{ contains( matrix.cxx, 'clang') }}
113113 run : |
114114 echo "CXXFLAGS=-stdlib=libc++" >> $GITHUB_ENV
115115
116116 - name : Build & Install TRIQS
117117 env :
118118 TRIQS_BRANCH : ${{ github.event_name == 'pull_request' && github.base_ref || github.ref_name }}
119119 run : |
120+ git ls-remote --exit-code --heads https://github.com/TRIQS/triqs "$TRIQS_BRANCH" > /dev/null 2>&1 || TRIQS_BRANCH=unstable
120121 git clone https://github.com/TRIQS/triqs --branch "$TRIQS_BRANCH"
121- cmake -S triqs -B triqs/build -G Ninja -DBuild_Tests=OFF -DCMAKE_INSTALL_PREFIX=$HOME/install
122+ cmake -S triqs -B triqs/build -G Ninja \
123+ -DPython_EXECUTABLE=$VIRTUAL_ENV/bin/python \
124+ -DBuild_Tests=OFF \
125+ -DCMAKE_INSTALL_PREFIX=$HOME/install
122126 cmake --build triqs/build --target install --verbose
123127
124128 - name : Build omegamaxent_interface
0 commit comments