Files
boost-ci/ci/github/install.sh
Alexander Grund 2eea0db07f Workaround clang-8 incompatibility with libstdc++10 in C++2a mode
> In file included from ./boost/boost-ci/boost_ci.hpp:11:
> /usr/bin/../lib/gcc/x86_64-linux-gnu/10/../../../../include/c++/10/memory:200:16: error: no member named 'is_constant_evaluated' in namespace 'std'
>       if (std::is_constant_evaluated())
>           ~~~~~^
2021-11-13 13:08:13 +01:00

66 lines
2.2 KiB
Bash

#! /bin/bash
#
# Copyright 2021 Alexander Grund
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)
#
# Executes the install phase for GHA
# Needs env variables:
# - B2_COMPILER
# - B2_CXXSTD
# - B2_SANITIZE
set -ex
export SELF="${GITHUB_REPOSITORY#*/}"
BOOST_CI_TARGET_BRANCH="${GITHUB_BASE_REF:-$GITHUB_REF}"
export BOOST_CI_TARGET_BRANCH="${BOOST_CI_TARGET_BRANCH##*/}" # Extract branch name
export BOOST_CI_SRC_FOLDER="$GITHUB_WORKSPACE"
echo "SELF=$SELF" >> $GITHUB_ENV
echo "BOOST_CI_TARGET_BRANCH=$BOOST_CI_TARGET_BRANCH" >> $GITHUB_ENV
echo "BOOST_CI_SRC_FOLDER=$BOOST_CI_SRC_FOLDER" >> $GITHUB_ENV
# B2_COMPILER is optional, e.g. unset for CMake builds -> Only checkout
if [ -n "$B2_COMPILER" ]; then
echo "B2_COMPILER=$B2_COMPILER" >> $GITHUB_ENV
if [[ "$B2_COMPILER" == "clang" ]] || [[ "$B2_COMPILER" == clang-* ]]; then
B2_TOOLSET=clang
export CXX=${B2_COMPILER/clang/clang++}
elif [[ "$B2_COMPILER" =~ gcc ]]; then
B2_TOOLSET=gcc
export CXX=${B2_COMPILER/gcc/g++}
else
echo "Unknown compiler: '$B2_COMPILER'. Need either clang(-version) or gcc(-version)" >&2
false
fi
echo -n "using $B2_TOOLSET : : $CXX" > ~/user-config.jam
if [ -n "$GCC_TOOLCHAIN_ROOT" ]; then
echo -n " : <compileflags>\"--gcc-toolchain=$GCC_TOOLCHAIN_ROOT\" <linkflags>\"--gcc-toolchain=$GCC_TOOLCHAIN_ROOT\"" >> ~/user-config.jam
fi
echo " ;" >> ~/user-config.jam
if [[ "$B2_COMPILER" == clang-* ]]; then
llvmPath="/usr/lib/llvm-${B2_COMPILER#*-}/bin"
echo "$llvmPath" >> $GITHUB_PATH
fi
$B2_COMPILER --version
$CXX --version
echo "B2_TOOLSET=$B2_TOOLSET" >> $GITHUB_ENV
fi
echo "B2_CXXSTD=$B2_CXXSTD" >> $GITHUB_ENV
if [[ "$B2_SANITIZE" == "yes" ]]; then
echo "B2_ASAN=1" >> $GITHUB_ENV
echo "B2_UBSAN=1" >> $GITHUB_ENV
if [[ -f $BOOST_CI_SRC_FOLDER/ubsan-blacklist ]]; then
echo "B2_CXXFLAGS=${B2_CXXFLAGS:+$B2_CXXFLAGS }-fsanitize-blacklist=libs/$SELF/ubsan-blacklist" >> $GITHUB_ENV
fi
fi
. $(dirname "${BASH_SOURCE[0]}")/../common_install.sh
echo "BOOST_ROOT=$BOOST_ROOT" >> $GITHUB_ENV