Skip to content

[CI] Fix TRIQS compilation on macOS-12 / Clang 17 #183

[CI] Fix TRIQS compilation on macOS-12 / Clang 17

[CI] Fix TRIQS compilation on macOS-12 / Clang 17 #183

Workflow file for this run

name: CI
on:
push:
branches:
- master
- ci
pull_request:
branches:
- master
schedule:
- cron: '0 0 * * 0'
jobs:
build:
strategy:
fail-fast: false
matrix:
include:
# FIXME
#- {os: ubuntu-22.04, cc: gcc-12, cxx: g++-12}
#- {os: ubuntu-22.04, cc: clang-15, cxx: clang++-15}
#- {os: macos-12, cc: gcc-12, cxx: g++-12}
- {os: macos-12, cc: /usr/local/opt/llvm@18/bin/clang,
cxx: /usr/local/opt/llvm@18/bin/clang++}
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@v3
- name: Install Ubuntu dependencies
if: startsWith(matrix.os, 'ubuntu')
run: >
sudo apt-get update &&
sudo apt-get install lsb-release wget software-properties-common &&
sudo apt-get install
g++-12
clang-15
libc++-15-dev
libc++abi-15-dev
libomp-15-dev
libgfortran5
gfortran
libeigen3-dev
openmpi-bin
openmpi-common
openmpi-doc
libopenmpi-dev
libblas-dev
liblapack-dev
libfftw3-dev
libgmp-dev
hdf5-tools
libhdf5-dev
python3-dev
python3-numpy
python3-scipy
python3-matplotlib
ipython3
python3-mpi4py
python3-mako
- name: Install Homebrew dependencies
if: startsWith(matrix.os, 'macos')
run: |
brew install llvm@18 eigen fftw hdf5 open-mpi
pip3 install mako numpy scipy mpi4py
- name: Cache Boost (a C++20 compatible version)
id: cache-boost
uses: actions/cache@v3
with:
path: ~/boost
key: boost-1.82
- name: Download Boost (a C++20 compatible version)
if: ${{ steps.cache-boost.outputs.cache-hit != 'true' }}
run: |
wget -q https://boostorg.jfrog.io/artifactory/main/release/1.82.0/source/boost_1_82_0.tar.bz2
tar -xf boost_1_82_0.tar.bz2
mv boost_1_82_0 $HOME/boost
- name: Force use of libc++
if: startsWith(matrix.os, 'ubuntu') && startsWith(matrix.cxx, 'clang')
run: echo "CXXFLAGS=-stdlib=libc++" >> $GITHUB_ENV
- name: Install libcommute
env:
CXX: ${{ matrix.cxx }}
run: |
git clone https://github.com/krivenko/libcommute libcommute
mkdir libcommute/build && pushd libcommute/build
cmake .. \
-DCMAKE_INSTALL_PREFIX=$HOME/install \
-DTESTS=OFF \
-DEXAMPLES=OFF
make install
popd
- name: Build & install Pomerol
env:
CC: ${{ matrix.cc }}
CXX: ${{ matrix.cxx }}
run: |
git clone https://github.com/pomerol-ed/pomerol
mkdir pomerol/build && pushd pomerol/build
cmake .. \
-DCMAKE_BUILD_TYPE=Debug \
-DCMAKE_INSTALL_PREFIX=$HOME/install \
-DBoost_INCLUDE_DIR=$HOME/boost \
-Dlibcommute_DIR=$HOME/install/lib/cmake \
-DTesting=OFF \
-DDocumentation=OFF
make -j2 install VERBOSE=1
popd
#- name: Build & install TRIQS
# env:
# CC: ${{ matrix.cc }}
# CXX: ${{ matrix.cxx }}
# run: |
# git clone https://github.com/TRIQS/triqs --branch 3.2.x
# mkdir triqs/build && pushd triqs/build
# if [[ "${{ matrix.os }}" == macos* &&
# "${{ matrix.cxx }}" == *clang++ ]]; then
# LC="-DLIBCLANG_LOCATION=/usr/local/opt/llvm@17/lib/libclang.dylib"
# export CPPFLAGS="-Xpreprocessor -fopenmp=libomp"
# fi
# cmake .. \
# -DCMAKE_BUILD_TYPE=Debug \
# -DCMAKE_INSTALL_PREFIX=$HOME/install \
# -DBoost_INCLUDE_DIR=$HOME/boost \
# ${LC} \
# -DBuild_Tests=OFF
# make -j2 install VERBOSE=1
# popd
#
#- name: Build pomerol2triqs
# env:
# CC: ${{ matrix.cc }}
# CXX: ${{ matrix.cxx }}
# run: |
# source $HOME/install/share/triqs/triqsvars.sh
# mkdir build && pushd build
# cmake .. \
# -DCMAKE_BUILD_TYPE=Debug \
# -DCMAKE_INSTALL_PREFIX=$HOME/install \
# -DBoost_INCLUDE_DIR=$HOME/boost
# make -j2 install VERBOSE=1
# popd
#
#- name: Test pomerol2triqs
# env:
# TMPDIR: "/tmp"
# run: |
# if [[ "${{ matrix.os }}" == ubuntu* ]]; then
# sudo sh -c 'echo -e "\nrmaps_base_oversubscribe = 1" >> \
# /etc/openmpi/openmpi-mca-params.conf'
# else
# mkdir -p $HOME/.prte
# echo -e "\nrmaps_default_mapping_policy = :oversubscribe" >> \
# $HOME/.prte/mca-params.conf
# fi
# source $HOME/install/share/triqs/triqsvars.sh
# cd build
# ctest --output-on-failure