Skip to content

Commit f71e905

Browse files
committed
Add an explicit check for GTest/GMock to configure.
1 parent 934926a commit f71e905

File tree

1 file changed

+23
-5
lines changed

1 file changed

+23
-5
lines changed

configure.ac

Lines changed: 23 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,11 @@ AC_CONFIG_MACRO_DIRS([m4])
77
AM_SILENT_RULES([yes])
88
AC_LANG([C++])
99

10+
GMOCK_DIR="${GMOCK_DIR=/usr/src/gmock}"
11+
AC_ARG_VAR([GMOCK_DIR], [directory containing Google Mock])
12+
GTEST_DIR="${GTEST_DIR="$GMOCK_DIR/gtest"}"
13+
AC_ARG_VAR([GTEST_DIR], [directory containing Google Test])
14+
1015
# Checks for programs.
1116
AC_PROG_AWK
1217
AC_PROG_CXX
@@ -24,6 +29,24 @@ PKG_CHECK_MODULES([json_c], [json-c])
2429
AC_HEADER_RESOLV
2530
AC_CHECK_HEADERS([arpa/inet.h fcntl.h limits.h netinet/in.h stddef.h stdint.h stdlib.h string.h sys/socket.h sys/time.h unistd.h])
2631

32+
# Check for working GTest/GMock.
33+
saved_CPPFLAGS="$CPPFLAGS"
34+
AS_UNSET([missing_gtest])
35+
AS_UNSET([missing_gmock])
36+
AS_VAR_APPEND([CPPFLAGS], [" -I$GTEST_DIR/include"])
37+
AC_CHECK_HEADER([gtest/gtest.h],, [missing_gtest=1])
38+
AS_VAR_APPEND([CPPFLAGS], [" -I$GMOCK_DIR/include"])
39+
AC_CHECK_HEADER([gmock/gmock.h],, [missing_gmock=1])
40+
AS_VAR_APPEND([CPPFLAGS], [" -I$GTEST_DIR"])
41+
AC_CHECK_HEADER([$GTEST_DIR/src/gtest-all.cc],, [missing_gtest=1])
42+
AS_VAR_APPEND([CPPFLAGS], [" -I$GMOCK_DIR"])
43+
AC_CHECK_HEADER([$GMOCK_DIR/src/gmock-all.cc],, [missing_gmock=1])
44+
CPPFLAGS="$saved_CPPFLAGS"
45+
AS_IF([test -n "$missing_gtest"],
46+
[AC_MSG_ERROR([could not find a working Google Test])])
47+
AS_IF([test -n "$missing_gmock"],
48+
[AC_MSG_ERROR([could not find a working Google Mock])])
49+
2750
# Checks for libraries.
2851
AC_SEARCH_LIBS([__b64_ntop], [resolv])
2952

@@ -42,11 +65,6 @@ AC_TYPE_UINT8_T
4265
AC_FUNC_FORK
4366
AC_CHECK_FUNCS([alarm gettimeofday memset mkdir select socket strdup strerror strtol])
4467

45-
GMOCK_DIR="${GMOCK_DIR=/usr/src/gmock}"
46-
AC_ARG_VAR([GMOCK_DIR], [directory containing Google Mock])
47-
GTEST_DIR="${GTEST_DIR="\$\(GMOCK_DIR\)/gtest"}"
48-
AC_ARG_VAR([GTEST_DIR], [directory containing Google Test])
49-
5068
# TODO(pphaneuf): We should validate that we have all the tools and
5169
# libraries that we require here, instead of letting the compilation
5270
# fail later during the build (sometimes in ways that are unclear to

0 commit comments

Comments
 (0)