diff options
author | Patrick Venture <venture@google.com> | 2019-03-06 13:16:30 -0800 |
---|---|---|
committer | Patrick Venture <venture@google.com> | 2019-03-06 13:20:35 -0800 |
commit | fb808d116407442d8cace6bcc484f3144c6c11ef (patch) | |
tree | 49d2f86a96f806d44724a7cf0b5789ecafa4f375 | |
parent | 97898c9056e48d2aa0ec1ec8251377c587b7caee (diff) | |
download | phosphor-ipmi-blobs-fb808d116407442d8cace6bcc484f3144c6c11ef.tar.gz phosphor-ipmi-blobs-fb808d116407442d8cace6bcc484f3144c6c11ef.zip |
build: rework gtest checks
Rework gtest checks to be modeled after openbmc/gpioplus.
Change-Id: I263bf12c0323ebee5d95b569ce28da2042bd3c1d
Signed-off-by: Patrick Venture <venture@google.com>
-rw-r--r-- | configure.ac | 70 | ||||
-rw-r--r-- | test/Makefile.am | 8 |
2 files changed, 71 insertions, 7 deletions
diff --git a/configure.ac b/configure.ac index 6599c9e..73960b5 100644 --- a/configure.ac +++ b/configure.ac @@ -36,10 +36,74 @@ AC_CHECK_HEADER( ) AX_PTHREAD([], [AC_MSG_ERROR(["pthread required and not found"])]) +# 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. -PKG_CHECK_MODULES([GTEST], [gtest], [], [AC_MSG_NOTICE([gtest not found, tests will not build])]) -PKG_CHECK_MODULES([GMOCK], [gmock], [], [AC_MSG_NOTICE([gmock not found, tests will not build])]) -PKG_CHECK_MODULES([GTEST_MAIN], [gtest_main], [], [AC_MSG_NOTICE([gtest_main not found, tests will not build])]) +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_LANG_PUSH([C++]) + 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]) + ]) + ]) + AC_LANG_POP([C++]) + AX_RESTORE_FLAGS_WITH_PREFIX(OLD, [CPPFLAGS]) + + AX_SAVE_FLAGS_WITH_PREFIX(OLD, [CPPFLAGS]) + AX_APPEND_COMPILE_FLAGS([$GMOCK_CFLAGS], [CPPFLAGS]) + AC_LANG_PUSH([C++]) + 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]) + ]) + ]) + AC_LANG_POP([C++]) + 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]) +]) # Add --enable-oe-sdk flag to configure script AC_ARG_ENABLE([oe-sdk], diff --git a/test/Makefile.am b/test/Makefile.am index 0d36509..2144c85 100644 --- a/test/Makefile.am +++ b/test/Makefile.am @@ -1,11 +1,11 @@ -AM_CPPFLAGS = -I$(top_srcdir)/ \ +AM_CPPFLAGS = \ + -I$(top_srcdir)/ \ $(GTEST_CFLAGS) \ $(GMOCK_CFLAGS) -AM_CXXFLAGS = \ - $(GTEST_MAIN_CFLAGS) AM_LDFLAGS = \ + $(GTEST_LIBS) \ $(GMOCK_LIBS) \ - $(GTEST_MAIN_LIBS) \ + -lgmock_main \ $(OESDK_TESTCASE_FLAGS) # Run all 'check' test programs |