build: add gtest, gmock to configure_ac
Search for gtest and gmock through configure_ac so
that their presence is required before usage.
Change-Id: I719e2d2474b148402b33c9af97075f42b4cc0afe
Signed-off-by: Patrick Venture <venture@google.com>
diff --git a/configure.ac b/configure.ac
index 5ecdab0..bb32ad6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -33,9 +33,70 @@
# Code coverage
AX_CODE_COVERAGE
+# Make it possible for users to choose if they want test support
+# explicitly or not at all
+AC_ARG_ENABLE([tests], AC_HELP_STRING([--disable-tests],
+ [Build test cases]))
+
# Check/set gtest specific functions.
-AX_PTHREAD([GTEST_CPPFLAGS="-DGTEST_HAS_PTHREAD=1"],[GTEST_CPPFLAGS="-DGTEST_HAS_PTHREAD=0"])
-AC_SUBST(GTEST_CPPFLAGS)
+AS_IF([test "x$enable_tests" != "xno"], [
+ PKG_CHECK_MODULES([GTEST], [gtest], [], [true])
+ PKG_CHECK_MODULES([GMOCK], [gmock], [], [true])
+ AX_PTHREAD
+
+ AX_SAVE_FLAGS_WITH_PREFIX(OLD, [CPPFLAGS])
+ AX_APPEND_COMPILE_FLAGS([$GTEST_CFLAGS], [CPPFLAGS])
+ AC_CHECK_HEADERS([gtest/gtest.h], [
+ AS_IF([test "x$GTEST_CFLAGS" = "x"], [
+ AS_IF([test "x$PTHREAD_CFLAGS" = "x"], [
+ AX_APPEND_COMPILE_FLAGS(["-DGTEST_HAS_PTHREAD=0"], [GTEST_CFLAGS])
+ ], [
+ AX_APPEND_COMPILE_FLAGS(["-DGTEST_HAS_PTHREAD=1"], [GTEST_CFLAGS])
+ AX_APPEND_COMPILE_FLAGS([$PTHREAD_CFLAGS], [GTEST_CFLAGS])
+ ])
+ ])
+ ], [
+ AS_IF([test "x$enable_tests" = "xyes"], [
+ AC_MSG_ERROR([Testing enabled but could not find gtest/gtest.h])
+ ])
+ ])
+ AX_RESTORE_FLAGS_WITH_PREFIX(OLD, [CPPFLAGS])
+
+ AX_SAVE_FLAGS_WITH_PREFIX(OLD, [CPPFLAGS])
+ AX_APPEND_COMPILE_FLAGS([$GMOCK_CFLAGS], [CPPFLAGS])
+ AC_CHECK_HEADERS([gmock/gmock.h], [], [
+ AS_IF([test "x$enable_tests" = "xyes"], [
+ AC_MSG_ERROR([Testing enabled but could not find gmock/gmock.h])
+ ])
+ ])
+ AX_RESTORE_FLAGS_WITH_PREFIX(OLD, [CPPFLAGS])
+
+ AX_SAVE_FLAGS_WITH_PREFIX(OLD, [LDFLAGS])
+ AX_APPEND_COMPILE_FLAGS([$GTEST_LIBS], [LDFLAGS])
+ AC_CHECK_LIB([gtest], [main], [
+ AS_IF([test "x$GTEST_LIBS" = "x"], [
+ AX_APPEND_COMPILE_FLAGS([-lgtest], [GTEST_LIBS])
+ ])
+ ], [
+ AS_IF([test "x$enable_tests" = "xyes"], [
+ AC_MSG_ERROR([Testing enabled but couldn't find gtest libs])
+ ])
+ ])
+ AX_RESTORE_FLAGS_WITH_PREFIX(OLD, [LDFLAGS])
+
+ AX_SAVE_FLAGS_WITH_PREFIX(OLD, [LDFLAGS])
+ AX_APPEND_COMPILE_FLAGS([$GMOCK_LIBS], [LDFLAGS])
+ AC_CHECK_LIB([gmock], [main], [
+ AS_IF([test "x$GMOCK_LIBS" = "x"], [
+ AX_APPEND_COMPILE_FLAGS([-lgmock], [GMOCK_LIBS])
+ ])
+ ], [
+ AS_IF([test "x$enable_tests" = "xyes"], [
+ AC_MSG_ERROR([Testing enabled but couldn't find gmock libs])
+ ])
+ ])
+ AX_RESTORE_FLAGS_WITH_PREFIX(OLD, [LDFLAGS])
+])
AC_ARG_ENABLE([oe-sdk],
AS_HELP_STRING([--enable-oe-sdk], [Link testcases absolutely against OE SDK so they can be ran within it.])
diff --git a/test/Makefile.am b/test/Makefile.am
index 20ddf2f..4e99de1 100644
--- a/test/Makefile.am
+++ b/test/Makefile.am
@@ -1,15 +1,12 @@
AM_CPPFLAGS = \
- -I$(top_srcdir) \
- $(PTHREAD_CPPFLAGS)
+ -I$(top_srcdir)
AM_CFLAGS = \
- $(PTHREAD_CFLAGS) \
$(SDBUSPLUS_CFLAGS) \
$(PHOSPHOR_DBUS_INTERFACES_CFLAGS) \
$(PHOSPHOR_LOGGING_CFLAGS)
-AM_CXXFLAGS = \
- $(PTHREAD_CXXFLAGS)
+AM_CXXFLAGS =
AM_LDFLAGS = \
-lstdc++fs \
@@ -17,7 +14,8 @@
$(PHOSPHOR_DBUS_INTERFACES_LIBS) \
$(PHOSPHOR_LOGGING_LIBS) \
$(OPENSSL_LIBS) \
- -lgtest -lgtest_main -lgmock $(PTHREAD_CFLAGS) $(OESDK_TESTCASE_FLAGS)
+ $(GTEST_LIBS) $(GMOCK_LIBS) -lgmock_main
+ $(OESDK_TESTCASE_FLAGS)
check_PROGRAMS =