From d3ca65fd8dd632a157f3199f07c6a765bd715b09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sl=C3=A1vek=20Banko?= Date: Fri, 27 Jul 2018 02:50:53 +0200 Subject: [PATCH] Add test for build of libpqxx with enabled exceptions This resolves FTBFS with libpqxx 3.x MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Slávek Banko --- kexi/kexidb/drivers/configure.in.in | 63 ++++++++++++++++++++--------- 1 file changed, 44 insertions(+), 19 deletions(-) diff --git a/kexi/kexidb/drivers/configure.in.in b/kexi/kexidb/drivers/configure.in.in index c33c6fbca..1afe34871 100644 --- a/kexi/kexidb/drivers/configure.in.in +++ b/kexi/kexidb/drivers/configure.in.in @@ -248,31 +248,56 @@ if test "$compile_pgsql_plugin" = "yes"; then AC_LANG_SAVE AC_LANG_CPLUSPLUS SAVED_CXXFLAGS="$CXXFLAGS" - for CXX_STD_TEST in "" 11 14 17; do - CXXFLAGS="$SAVED_CXXFLAGS" - if test "x$CXX_STD_TEST" = "x"; then - AC_MSG_CHECKING([PostgreSQL build with default C++ standard]) - else - AC_MSG_CHECKING([PostgreSQL build with C++$CXX_STD_TEST]) - CXXFLAGS=-std=c++$CXX_STD_TEST - fi + AC_MSG_CHECKING([PostgreSQL build with default flags]) + PQXX_CXXFLAGS="" + CXXFLAGS="$SAVED_CXXFLAGS $PQXX_CXXFLAGS" + AC_TRY_COMPILE([ + #include <$PQXX_INCDIR/pqxx/pqxx> + ],[ ], + pqxx_flags=yes, + pqxx_flags=no + ) + if test "x$pqxx_flags" = "xno"; then + AC_MSG_RESULT(no) + AC_MSG_CHECKING([PostgreSQL build with enabled exceptions]) + PQXX_CXXFLAGS+=" $USE_EXCEPTIONS" + CXXFLAGS="$SAVED_CXXFLAGS $PQXX_CXXFLAGS" AC_TRY_COMPILE([ #include <$PQXX_INCDIR/pqxx/pqxx> ],[ ], - pqxx_cxx_std=yes, - pqxx_cxx_std=no + pqxx_exceptions=yes, + pqxx_exceptions=no ) - if test "x$pqxx_cxx_std" = "xyes"; then - PQXX_CXXFLAGS=$CXXFLAGS - compile_pgsql_plugin="yes" - AC_SUBST(PQXX_CXXFLAGS) - AC_MSG_RESULT(yes) - break - else - compile_pgsql_plugin="no" + if test "x$pqxx_exceptions" = "xno"; then AC_MSG_RESULT(no) + for CXX_STD_TEST in 11 14 17; do + AC_MSG_CHECKING([PostgreSQL build with C++$CXX_STD_TEST]) + CXXFLAGS="$SAVED_CXXFLAGS $PQXX_CXXFLAGS -std=c++$CXX_STD_TEST" + AC_TRY_COMPILE([ + #include <$PQXX_INCDIR/pqxx/pqxx> + ],[ ], + pqxx_cxx_std=yes, + pqxx_cxx_std=no + ) + if test "x$pqxx_cxx_std" = "xyes"; then + AC_MSG_RESULT(yes) + compile_pgsql_plugin="yes" + PQXX_CXXFLAGS+=" -std=c++$CXX_STD_TEST" + AC_SUBST(PQXX_CXXFLAGS) + break + else + AC_MSG_RESULT(no) + compile_pgsql_plugin="no" + fi + done + else + AC_MSG_RESULT(yes) + AC_SUBST(PQXX_CXXFLAGS) fi - done + else + AC_MSG_RESULT(yes) + AC_SUBST(PQXX_CXXFLAGS) + fi CXXFLAGS="$SAVED_CXXFLAGS" AC_LANG_RESTORE fi