| 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])]) | |
| ]) |