A small re-work of the installed m4 script for Google Test. This
allows other projects to easily leverage an installation or
un-installed build of Google Test from their project's Autoconf
script. This re-work specifically introduces the ability to provide a
path as an argument to the resulting configure script option which can
specify either an installation prefix or a build directory for Google
Test.
This change also makes a small portability tweak by using ``s instead
of $() for command expansion.
By Chandler Carruth. Reviewed by Benoit Sigoure.
diff --git a/m4/gtest.m4 b/m4/gtest.m4
index ebb488a..6598ba7 100644
--- a/m4/gtest.m4
+++ b/m4/gtest.m4
@@ -12,10 +12,10 @@
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 tests using the Google C++ Testing Framework.
+ (Default is enabled.)])],
[],
- [enable_gtest=check])
+ [enable_gtest=])
AC_ARG_VAR([GTEST_CONFIG],
[The exact path of Google Test's 'gtest-config' script.])
AC_ARG_VAR([GTEST_CPPFLAGS],
@@ -29,33 +29,46 @@
AC_ARG_VAR([GTEST_VERSION],
[The version of Google Test available.])
HAVE_GTEST="no"
-AS_IF([test "x$enable_gtest" != "xno"],
- [AC_PATH_PROG([GTEST_CONFIG], [gtest-config])
- AS_IF([test -x "$GTEST_CONFIG"],
- [AS_IF([test "x$1" != "x"],
- [_min_version="--min-version=$1"
+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])],
- [_min_version="--min-version=0"
+ [_gtest_min_version="--min-version=0"
AC_MSG_CHECKING([for Google Test])])
- AS_IF([$GTEST_CONFIG $_min_version],
+ AS_IF([${GTEST_CONFIG} ${_gtest_min_version}],
[AC_MSG_RESULT([yes])
- HAVE_GTEST="yes"],
- [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)
+ 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([
- The Google C++ Testing Framework was explicitly enabled, but a viable version
- could not be found on the system.
-])])])])
+ [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"],
- [AS_IF([test "x$2" != "x"],[$2],[:])],
- [AS_IF([test "x$3" != "x"],[$3],[:])])
+ [m4_ifval([$2], [$2])],
+ [m4_ifval([$3], [$3])])
])