despite that we are using clang in `run-make-check.sh`, `do_cmake.sh`
is still used by some workflows like jenkins' ceph-pr-api job.
now that we've migrated to C++20, we need to use GCC-11 or up for
building the tree. GCC-11 is installed from PPA repo in
`install-deps.sh`, but to avoid interfere with the build of older
branches which do not use GCC-11, as their builds might break if
we use GCC-11 for building them. we don't use the alternative machinary
to point gcc to gcc-11, see
8f342a32ce4a236c45c67497ae34f508e032a9e1.
so, in this change, we try to use the newest GCC in system when
running `do_cmake.sh`.
Signed-off-by: Kefu Chai <tchaikov@gmail.com>
ARGS+=" -DWITH_CCACHE=ON"
fi
+cxx_compiler="g++"
+c_compiler="gcc"
+# 20 is used for more future-proof
+for i in $(seq 20 -1 11); do
+ if type -t gcc-$i > /dev/null; then
+ cxx_compiler="g++-$i"
+ c_compiler="gcc-$i"
+ break
+ fi
+done
+ARGS+=" -DCMAKE_CXX_COMPILER=$cxx_compiler"
+ARGS+=" -DCMAKE_C_COMPILER=$c_compiler"
+
mkdir $BUILD_DIR
cd $BUILD_DIR
if type cmake3 > /dev/null 2>&1 ; then