gtest.m4 3.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. 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. ])