| dnl GTEST_LIB_CHECK([minimum version [, |
| dnl action if found [,action if not found]]]) |
| dnl |
| dnl Check for the presence of the Google Test library, optionally at a minimum |
| dnl version, and indicate a viable version with the HAVE_GTEST flag. It defines |
| dnl standard variables for substitution including GTEST_CPPFLAGS, |
| dnl GTEST_CXXFLAGS, GTEST_LDFLAGS, and GTEST_LIBS. It also defines |
| dnl GTEST_VERSION as the version of Google Test found. Finally, it provides |
| dnl optional custom action slots in the event GTEST is found or not. |
| AC_DEFUN([GTEST_LIB_CHECK], |
| [ |
| dnl Provide a flag to enable or disable Google Test usage. |
| AC_ARG_ENABLE([gtest], |
| [AS_HELP_STRING([--enable-gtest], |
| [Enable tests using the Google C++ Testing Framework. |
| (Default is enabled.)])], |
| [], |
| [enable_gtest=]) |
| AC_ARG_VAR([GTEST_CONFIG], |
| [The exact path of Google Test's 'gtest-config' script.]) |
| AC_ARG_VAR([GTEST_CPPFLAGS], |
| [C-like preprocessor flags for Google Test.]) |
| AC_ARG_VAR([GTEST_CXXFLAGS], |
| [C++ compile flags for Google Test.]) |
| AC_ARG_VAR([GTEST_LDFLAGS], |
| [Linker path and option flags for Google Test.]) |
| AC_ARG_VAR([GTEST_LIBS], |
| [Library linking flags for Google Test.]) |
| AC_ARG_VAR([GTEST_VERSION], |
| [The version of Google Test available.]) |
| HAVE_GTEST="no" |
| AS_IF([test "x${enable_gtest}" != "xno"], |
| [AC_MSG_CHECKING([for 'gtest-config']) |
| AS_IF([test "x${enable_gtest}" != "xyes"], |
| [AS_IF([test -x "${enable_gtest}/scripts/gtest-config"], |
| [GTEST_CONFIG="${enable_gtest}/scripts/gtest-config"], |
| [GTEST_CONFIG="${enable_gtest}/bin/gtest-config"]) |
| AS_IF([test -x "${GTEST_CONFIG}"], [], |
| [AC_MSG_RESULT([no]) |
| AC_MSG_ERROR([dnl |
| Unable to locate either a built or installed Google Test. |
| The specific location '${enable_gtest}' was provided for a built or installed |
| Google Test, but no 'gtest-config' script could be found at this location.]) |
| ])], |
| [AC_PATH_PROG([GTEST_CONFIG], [gtest-config])]) |
| AS_IF([test -x "${GTEST_CONFIG}"], |
| [AC_MSG_RESULT([${GTEST_CONFIG}]) |
| m4_ifval([$1], |
| [_gtest_min_version="--min-version=$1" |
| AC_MSG_CHECKING([for Google Test at least version >= $1])], |
| [_gtest_min_version="--min-version=0" |
| AC_MSG_CHECKING([for Google Test])]) |
| AS_IF([${GTEST_CONFIG} ${_gtest_min_version}], |
| [AC_MSG_RESULT([yes]) |
| HAVE_GTEST='yes'], |
| [AC_MSG_RESULT([no])])], |
| [AC_MSG_RESULT([no])]) |
| AS_IF([test "x${HAVE_GTEST}" = "xyes"], |
| [GTEST_CPPFLAGS=`${GTEST_CONFIG} --cppflags` |
| GTEST_CXXFLAGS=`${GTEST_CONFIG} --cxxflags` |
| GTEST_LDFLAGS=`${GTEST_CONFIG} --ldflags` |
| GTEST_LIBS=`${GTEST_CONFIG} --libs` |
| GTEST_VERSION=`${GTEST_CONFIG} --version` |
| AC_DEFINE([HAVE_GTEST],[1],[Defined when Google Test is available.])], |
| [AS_IF([test "x${enable_gtest}" = "xyes"], |
| [AC_MSG_ERROR([dnl |
| Google Test was enabled, but no viable version could be found.]) |
| ])])]) |
| AC_SUBST([HAVE_GTEST]) |
| AM_CONDITIONAL([HAVE_GTEST],[test "x$HAVE_GTEST" = "xyes"]) |
| AS_IF([test "x$HAVE_GTEST" = "xyes"], |
| [m4_ifval([$2], [$2])], |
| [m4_ifval([$3], [$3])]) |
| ]) |