Add detection of supported c++ standards and require c++17.

Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
pull/244/head
Michele Calgaro 3 months ago
parent a4ebd73f48
commit 854c5d5c9c
Signed by: MicheleC
GPG Key ID: 2A75B7CA8ADED5CF

35
configure vendored

@ -1995,6 +1995,37 @@ fi
fi
# -----------------------------------------------------------------------------
# Check C++ standard support
# Note: the commands work for both g++ and clang
# -----------------------------------------------------------------------------
COMPILER=`sed -n '/^\s*QMAKE_CXX\s*=\s*/{s///;s/\s*$//;p;q}' $QMAKESPEC/qmake.conf`
CXX_REQ_STD=17
CXX_REQ_STD_MACRO=201703L
CXX_STD_FLAG=""
# First check whether the default standard suffice
$COMPILER -fsyntax-only -x c++ - 2>/dev/null <<EOF
#ifndef __cplusplus
#error "This is not a C++ compiler"
#elif __cplusplus < $CXX_REQ_STD_MACRO
#error "This is not a C++$CXX_REQ_STD compiler"
#endif
EOF
if [ $? -ne 0 ]; then
# Otherwise check if support can be added with a flag
CXX_STD_FLAG="-std=c++$CXX_REQ_STD"
$COMPILER $CXX_STD_FLAG -fsyntax-only -x c++ /dev/null
if [ $? -ne 0 ]; then
echo
echo "Support for C++$CXX_REQ_STD is required but your compiler"
echo "does not seem to support it. Can't proceed."
echo
exit 3
fi
QMAKE_VARS="$QMAKE_VARS \"QMAKE_CXXFLAGS+=$CXX_STD_FLAG\""
fi
# -----------------------------------------------------------------------------
# LICENSING
# -----------------------------------------------------------------------------
@ -2079,7 +2110,7 @@ if true; then ###[ '!' -f "$outpath/bin/tqmake" ];
grep "^QMAKE_CC[^_A-Z0-9]" $QMAKESPEC/qmake.conf | sed "s,QMAKE_CC,CC," >>$mkfile
grep "^QMAKE_CXX[^_A-Z0-9]" $QMAKESPEC/qmake.conf | sed "s,QMAKE_CXX,CXX," >>$mkfile
grep "^QMAKE_CFLAGS[^_A-Z0-9]" $QMAKESPEC/qmake.conf >>$mkfile
grep "^QMAKE_CXXFLAGS[^_A-Z0-9]" $QMAKESPEC/qmake.conf | sed "s,\$\$QMAKE_CFLAGS,\$(QMAKE_CFLAGS)," >>$mkfile
grep "^QMAKE_CXXFLAGS[^_A-Z0-9]" $QMAKESPEC/qmake.conf | sed "s,\$\$QMAKE_CFLAGS,\$(QMAKE_CFLAGS) $CXX_STD_FLAG," >>$mkfile
grep "^QMAKE_LFLAGS[^_A-Z0-9]" $QMAKESPEC/qmake.conf >>$mkfile
if [ "$CFG_DEBUG" = "yes" ]; then
grep "QMAKE_CFLAGS_DEBUG[^_A-Z0-9]" $QMAKESPEC/qmake.conf >>$mkfile
@ -2120,7 +2151,7 @@ if true; then ###[ '!' -f "$outpath/bin/tqmake" ];
echo >>$mkfile
sed -e "s,@SOURCE_PATH@,$relpath,g" -e "s,@BUILD_PATH@,$outpath,g" \
-e "s,@QMAKE_CFLAGS@,$EXTRA_CFLAGS,g" -e "s,@QMAKE_LFLAGS@,$EXTRA_LFLAGS,g" \
-e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
-e "s,@QMAKE_CXXFLAGS@,$EXTRA_CXXFLAGS,g" \
-e "s,@QT_INSTALL_BINS@,\$(INSTALL_ROOT)$QMAKE_BIN_DIR,g" \
-e "s,@QT_INSTALL_DATA@,\$(INSTALL_ROOT)$QMAKE_DATA_DIR,g" \
-e "s,@QMAKE_QTOBJS@,$EXTRA_SOURCES,g" -e "s,@QMAKESPEC@,$QMAKESPEC,g" $in_mkfile >>$mkfile

Loading…
Cancel
Save