llvm12/clang-gcc-wrapper.macros
2020-04-01 00:57:28 +03:00

25 lines
977 B
Text

# CFLAGS that are known to be not suppported by clang
%noclang_optflags -fvar-tracking-assignments -frecord-gcc-switches -ffat-lto-objects
%clang_gcc_wrapper() \
# clang wrapper to remove compiler flags that clang does not know \
# how-to in Russian: https://nixtux.ru/768 \
BIN_DIR="${BIN_DIR:-$(pwd)/local_bin}" \
mkdir -p "$BIN_DIR" \
install -m 0755 %{_datadir}/clang/clang-gcc-wrapper.sh "${BIN_DIR}/clang++" \
sed -e "s,_CLANG_,$(which clang++),g" -i "${BIN_DIR}/clang++" \
install -m 0755 %{_datadir}/clang/clang-gcc-wrapper.sh "${BIN_DIR}/clang" \
sed -e "s,_CLANG_,$(which clang),g" -i "${BIN_DIR}/clang" \
export PATH="${BIN_DIR}:${PATH}" \
# set variables \
CLANG="$(which clang)" \
CLANGXX="$(which clang++)" \
CC="clang" \
CXX="clang++" \
CPP="clang++" \
# validate that clang wrapper is in PATH \
echo "$CLANG" | grep -q "$BIN_DIR" \
echo "$CLANGXX" | grep -q "$BIN_DIR" \
export CLANG CLANGXX CC CXX CPP \
export NOCLANG_OPTFLAGS="%{noclang_optflags}" \
%{nil}