1 |
2 |
jamieiles |
dnl GTEST_LIB_CHECK([minimum version [,
|
2 |
|
|
dnl action if found [,action if not found]]])
|
3 |
|
|
dnl
|
4 |
|
|
dnl Check for the presence of the Google Test library, optionally at a minimum
|
5 |
|
|
dnl version, and indicate a viable version with the HAVE_GTEST flag. It defines
|
6 |
|
|
dnl standard variables for substitution including GTEST_CPPFLAGS,
|
7 |
|
|
dnl GTEST_CXXFLAGS, GTEST_LDFLAGS, and GTEST_LIBS. It also defines
|
8 |
|
|
dnl GTEST_VERSION as the version of Google Test found. Finally, it provides
|
9 |
|
|
dnl optional custom action slots in the event GTEST is found or not.
|
10 |
|
|
AC_DEFUN([GTEST_LIB_CHECK],
|
11 |
|
|
[
|
12 |
|
|
dnl Provide a flag to enable or disable Google Test usage.
|
13 |
|
|
AC_ARG_ENABLE([gtest],
|
14 |
|
|
[AS_HELP_STRING([--enable-gtest],
|
15 |
|
|
[Enable tests using the Google C++ Testing Framework.
|
16 |
|
|
(Default is enabled.)])],
|
17 |
|
|
[],
|
18 |
|
|
[enable_gtest=])
|
19 |
|
|
AC_ARG_VAR([GTEST_CONFIG],
|
20 |
|
|
[The exact path of Google Test's 'gtest-config' script.])
|
21 |
|
|
AC_ARG_VAR([GTEST_CPPFLAGS],
|
22 |
|
|
[C-like preprocessor flags for Google Test.])
|
23 |
|
|
AC_ARG_VAR([GTEST_CXXFLAGS],
|
24 |
|
|
[C++ compile flags for Google Test.])
|
25 |
|
|
AC_ARG_VAR([GTEST_LDFLAGS],
|
26 |
|
|
[Linker path and option flags for Google Test.])
|
27 |
|
|
AC_ARG_VAR([GTEST_LIBS],
|
28 |
|
|
[Library linking flags for Google Test.])
|
29 |
|
|
AC_ARG_VAR([GTEST_VERSION],
|
30 |
|
|
[The version of Google Test available.])
|
31 |
|
|
HAVE_GTEST="no"
|
32 |
|
|
AS_IF([test "x${enable_gtest}" != "xno"],
|
33 |
|
|
[AC_MSG_CHECKING([for 'gtest-config'])
|
34 |
|
|
AS_IF([test "x${enable_gtest}" != "xyes"],
|
35 |
|
|
[AS_IF([test -x "${enable_gtest}/scripts/gtest-config"],
|
36 |
|
|
[GTEST_CONFIG="${enable_gtest}/scripts/gtest-config"],
|
37 |
|
|
[GTEST_CONFIG="${enable_gtest}/bin/gtest-config"])
|
38 |
|
|
AS_IF([test -x "${GTEST_CONFIG}"], [],
|
39 |
|
|
[AC_MSG_RESULT([no])
|
40 |
|
|
AC_MSG_ERROR([dnl
|
41 |
|
|
Unable to locate either a built or installed Google Test.
|
42 |
|
|
The specific location '${enable_gtest}' was provided for a built or installed
|
43 |
|
|
Google Test, but no 'gtest-config' script could be found at this location.])
|
44 |
|
|
])],
|
45 |
|
|
[AC_PATH_PROG([GTEST_CONFIG], [gtest-config])])
|
46 |
|
|
AS_IF([test -x "${GTEST_CONFIG}"],
|
47 |
|
|
[AC_MSG_RESULT([${GTEST_CONFIG}])
|
48 |
|
|
m4_ifval([$1],
|
49 |
|
|
[_gtest_min_version="--min-version=$1"
|
50 |
|
|
AC_MSG_CHECKING([for Google Test at least version >= $1])],
|
51 |
|
|
[_gtest_min_version="--min-version=0"
|
52 |
|
|
AC_MSG_CHECKING([for Google Test])])
|
53 |
|
|
AS_IF([${GTEST_CONFIG} ${_gtest_min_version}],
|
54 |
|
|
[AC_MSG_RESULT([yes])
|
55 |
|
|
HAVE_GTEST='yes'],
|
56 |
|
|
[AC_MSG_RESULT([no])])],
|
57 |
|
|
[AC_MSG_RESULT([no])])
|
58 |
|
|
AS_IF([test "x${HAVE_GTEST}" = "xyes"],
|
59 |
|
|
[GTEST_CPPFLAGS=`${GTEST_CONFIG} --cppflags`
|
60 |
|
|
GTEST_CXXFLAGS=`${GTEST_CONFIG} --cxxflags`
|
61 |
|
|
GTEST_LDFLAGS=`${GTEST_CONFIG} --ldflags`
|
62 |
|
|
GTEST_LIBS=`${GTEST_CONFIG} --libs`
|
63 |
|
|
GTEST_VERSION=`${GTEST_CONFIG} --version`
|
64 |
|
|
AC_DEFINE([HAVE_GTEST],[1],[Defined when Google Test is available.])],
|
65 |
|
|
[AS_IF([test "x${enable_gtest}" = "xyes"],
|
66 |
|
|
[AC_MSG_ERROR([dnl
|
67 |
|
|
Google Test was enabled, but no viable version could be found.])
|
68 |
|
|
])])])
|
69 |
|
|
AC_SUBST([HAVE_GTEST])
|
70 |
|
|
AM_CONDITIONAL([HAVE_GTEST],[test "x$HAVE_GTEST" = "xyes"])
|
71 |
|
|
AS_IF([test "x$HAVE_GTEST" = "xyes"],
|
72 |
|
|
[m4_ifval([$2], [$2])],
|
73 |
|
|
[m4_ifval([$3], [$3])])
|
74 |
|
|
])
|