Parcourir la source

[1991] make sure the check is with -Werror and only for g++-variants

JINMEI Tatuya il y a 12 ans
Parent
commit
4323bf82f0
2 fichiers modifiés avec 21 ajouts et 11 suppressions
  1. 2 2
      configure.ac
  2. 19 9
      m4macros/ax_boost_for_bind10.m4

+ 2 - 2
configure.ac

@@ -846,8 +846,8 @@ if test "$BOOST_OFFSET_PTR_FAILURE" = "yes"; then
 fi
 
 # There's a known bug in FreeBSD ports for Boost that would trigger a false
-# warning in build.
-if test "$BOOST_NUMERIC_CAST_WOULDFAIL" = "yes"; then
+# warning in build with g++ and -Werror
+if test "$BOOST_NUMERIC_CAST_WOULDFAIL" = "yes" -a X"$with_werror" = X1; then
     AC_MSG_ERROR([Failed to compile a required header file.  If you are using FreeBSD and Boost installed via ports, retry with specifying --without-werror.  See the ChangeLog entry for Trac no. 1991 for more details.])
 fi
 

+ 19 - 9
m4macros/ax_boost_for_bind10.m4

@@ -85,15 +85,25 @@ AC_TRY_COMPILE([
 
 # Detect build failure case known to happen with Boost installed via
 # FreeBSD ports
-AC_MSG_CHECKING([Boost numeric_cast compiles])
-AC_TRY_COMPILE([
-#include <boost/numeric/conversion/cast.hpp>
-],[
-return (boost::numeric_cast<short>(0));
-],[AC_MSG_RESULT(yes)
-   BOOST_NUMERIC_CAST_WOULDFAIL=no],
-  [AC_MSG_RESULT(no)
-   BOOST_NUMERIC_CAST_WOULDFAIL=yes])
+if test "X$GXX" = "Xyes"; then
+   CXXFLAGS_SAVED="$CXXFLAGS"
+   CXXFLAGS="$CXXFLAGS -Werror"
+
+   AC_MSG_CHECKING([Boost numeric_cast compiles with -Werror])
+   AC_TRY_COMPILE([
+   #include <boost/numeric/conversion/cast.hpp>
+   ],[
+   return (boost::numeric_cast<short>(0));
+   ],[AC_MSG_RESULT(yes)
+      BOOST_NUMERIC_CAST_WOULDFAIL=no],
+   [AC_MSG_RESULT(no)
+    BOOST_NUMERIC_CAST_WOULDFAIL=yes])
+
+   CXXFLAGS="$CXXFLAGS_SAVED"
+else
+  # This doesn't matter for non-g++
+  BOOST_NUMERIC_CAST_WOULDFAIL=no
+fi
 
 AC_SUBST(BOOST_INCLUDES)