gnucash master: Multiple changes pushed

Geert Janssens gjanssens at code.gnucash.org
Thu Feb 2 13:03:18 EST 2017


Updated	 via  https://github.com/Gnucash/gnucash/commit/659c96eb (commit)
	 via  https://github.com/Gnucash/gnucash/commit/4fdacb9b (commit)
	 via  https://github.com/Gnucash/gnucash/commit/0a8d7a21 (commit)
	from  https://github.com/Gnucash/gnucash/commit/aeb04e1d (commit)



commit 659c96eb1bb8c6cc4a4eab6de0b2ee3f82bd50af
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Thu Feb 2 18:48:15 2017 +0100

    Optionally locate boost via environment variable BOOST_ROOT
    
    This was already the case for our autotools based build
    and simplifies the build setup for our Windows build system.

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 9b77bfd..85d930b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -131,7 +131,6 @@ IF (WIN32)
   SET(CMAKE_FRAMEWORK_PATH "${CMAKE_FRAMEWORK_PATH_TMP}")
   SET(PKG_CONFIG_EXECUTABLE ${CMAKE_PREFIX_PATH}/gnome/bin/pkg-config.exe)
   SET(SWIG_EXECUTABLE ${CMAKE_PREFIX_PATH}/swig/swig.exe)
-  SET(BOOST_ROOT ${CMAKE_PREFIX_PATH}/boost)
   SET(REGEX_INCLUDE_PATH ${CMAKE_PREFIX_PATH}/regex/include)
   SET(REGEX_LDFLAGS "-L${CMAKE_PREFIX_PATH}/regex/lib -lregex")
   SET(LIBXSLT_INCLUDE_DIR ${CMAKE_PREFIX_PATH}/libxslt/include)
@@ -420,6 +419,9 @@ ENDIF()
 SET (Boost_USE_MULTITHREADED ON)
 SET (Boost_FIND_QUIETLY ON)
 
+IF (NOT DEFINED ${BOOST_ROOT})
+  SET(BOOST_ROOT $ENV{BOOST_ROOT})
+ENDIF()
 FIND_PACKAGE (Boost 1.54.0 REQUIRED COMPONENTS date_time regex)
 
 IF (Boost_FOUND)

commit 4fdacb9b2a614c62ee8c03e2035a1cb800417bcf
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Thu Feb 2 18:31:54 2017 +0100

    Fix building gtest library on mingw
    
    See https://github.com/google/googletest/issues/893

diff --git a/CMakeLists.txt b/CMakeLists.txt
index cb2682b..9b77bfd 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -449,6 +449,7 @@ IF (UNIX)
 ENDIF (UNIX)
 IF (MINGW)
   SET( CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Werror -Wdeclaration-after-statement -Wno-pointer-sign -Wall -Wunused -Wmissing-prototypes -Wmissing-declarations  -Wno-unused -std=gnu99")
+  SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -DWINVER=0x0500") # Workaround for bug in gtest on mingw, see https://github.com/google/googletest/issues/893
 ENDIF (MINGW)
 IF (APPLE)
   SET( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-unused-local-typedef")

commit 0a8d7a2142419c9494bf40324936a31b380d2161
Author: Geert Janssens <geert at kobaltwit.be>
Date:   Thu Feb 2 17:20:39 2017 +0100

    Make google test framework a mandatory build dependency
    
    All c++ unit tests will be written with it, and testing
    should be possible out of the box.
    We could make it optional, but then lots of tests will
    be skipped. This creates an illusion of all tests passing
    while many are simply not run. This confusion should be
    avoided.
    This change depends on a second commit for the windows build
    in the gnucash-on-windows repository. This commit will be
    pushed at the same time.

diff --git a/CMakeLists.txt b/CMakeLists.txt
index 3bb5e88..cb2682b 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -62,7 +62,7 @@ OPTION (ENABLE_DEBUG "compile with debugging flags set" OFF)
 OPTION (ENABLE_REGISTER2 "compile with register2 enabled" OFF)
 OPTION (DISABLE_NLS "do not use Native Language Support" OFF)
 OPTION (DISABLE_DEPRECATED_GLIB "don't use deprecated glib functions" OFF)
-OPTION (DISABLE_DEPRECATED_GTK "don't use deprectacted gtk, gdk or gdk-pixbuf functions" OFF)
+OPTION (DISABLE_DEPRECATED_GTK "don't use deprecated gtk, gdk or gdk-pixbuf functions" OFF)
 OPTION (DISABLE_DEPRECATED_GNOME "don't use deprecated gnome functions" OFF)
 OPTION (GNC_BUILD_AS_INSTALL "Make build directory structure mirror install" ON)
 # ############################################################
@@ -405,7 +405,7 @@ FIND_PROGRAM(POD2MAN_EXECUTABLE pod2man HINTS ${PERL_DIR})
 IF (APPLE)
   # I suppose I would rather use the shared Boost libraries here, but the Boost install procedure
   # does not set RPATH for it's shared library correctly. It uses a 'naked' RPATH, which requires
-  # that DYLD_FALLBACK_LIBRARY_PATH be set. There is supposedly a dll-path option so set RPATH, but
+  # that DYLD_FALLBACK_LIBRARY_PATH be set. There is supposedly a dll-path option to set RPATH, but
   # I can't get it to work (http://www.boost.org/build/doc/html/bbv2/faq/dll-path.html) and neither
   # can some other random person on the internet:
   # http://stackoverflow.com/questions/33667795/dll-path-has-no-effect-when-building-boost
diff --git a/configure.ac b/configure.ac
index a2fa909..5c93f5a 100644
--- a/configure.ac
+++ b/configure.ac
@@ -861,26 +861,22 @@ ac_cv_gtest_headers=""
 ac_cv_gtest_libs=""
 ac_cv_gmock_libs=""
 
-AC_ARG_ENABLE( google-test,
-   [AS_HELP_STRING([--disable-google-test], [do not build the Google Test and Google Mock static libraries and enable C++ Unit Tests])],,[enable_google_test=yes])
-if test x$enable_google_test != xno; then
-   AC_CHECK_LIB([gtest_main], [main],
-      [AC_CHECK_FILES([/usr/src/gmock/gmock-all.cc
-		       /usr/include/gtest/gtest.h
-		       /usr/include/gmock/gmock.h
-               /usr/src/gmock/src/gmock-all.cc
-               /usr/src/gtest/src/gtest-all.cc],
-      	[ac_cv_gtest_system_install=yes] [ac_cv_have_gtest_libs=yes],
-	[ac_cv_gtest_system_install=no])],
-      [AC_CHECK_FILES([/usr/src/gtest/src/gtest-all.cc
-		       /usr/src/gtest/gtest-main.cc
-		       /usr/src/gmock/src/gmock-all.cc
-		       /usr/include/gtest/gtest.h
-		       /usr/include/gmock/gmock.h],
-        [ac_cv_gtest_system_install=yes] [ac_cv_have_gtest_libs=no],
-        [ac_cv_gtest_system_install=no])]
+AC_CHECK_LIB([gtest_main], [main],
+    [AC_CHECK_FILES([/usr/src/gmock/gmock-all.cc
+                     /usr/include/gtest/gtest.h
+                     /usr/include/gmock/gmock.h
+                     /usr/src/gmock/src/gmock-all.cc
+                     /usr/src/gtest/src/gtest-all.cc],
+                    [ac_cv_gtest_system_install=yes] [ac_cv_have_gtest_libs=yes],
+                    [ac_cv_gtest_system_install=no])],
+    [AC_CHECK_FILES([/usr/src/gtest/src/gtest-all.cc
+                     /usr/src/gtest/gtest-main.cc
+                     /usr/src/gmock/src/gmock-all.cc
+                     /usr/include/gtest/gtest.h
+                     /usr/include/gmock/gmock.h],
+                    [ac_cv_gtest_system_install=yes] [ac_cv_have_gtest_libs=no],
+                    [ac_cv_gtest_system_install=no])]
    )
-fi
 if test x$ac_cv_file__usr_include_gmock_gmock_h = xyes -a x$ac_cv_file__usr_include_gtest_gtest_h = xyes; then
   if test x$ac_cv_file__usr_src_gmock_src_gmock_all_cc = xyes -a x$ac_cv_file__usr_src_gtest_src_gtest_all_cc = xyes; then
      ac_cv_gtest_system_install=yes
@@ -904,95 +900,102 @@ AC_ARG_WITH([gmock-headers],
     [AS_HELP_STRING([--with-gmock-headers=PATH], [location of the google test header files if not in gmock-root])],
     [ac_cv_gmock_headers="$with_gmock_headers"])
 
-if test x$enable_google_test = xyes; then
-   AC_MSG_CHECKING([whether Google Test is available])
-   if test -n "$ac_cv_gtest_root" -a -r "$ac_cv_gtest_root/src/gtest-all.cc"; then
-     AC_MSG_WARN([Skipped setting ac_cv_gtest_root, value $ac_cv_gtest_root])
+google_test_found=yes
+AC_MSG_CHECKING([whether Google Test is available])
+if test -n "$ac_cv_gtest_root" -a -r "$ac_cv_gtest_root/src/gtest-all.cc"; then
+    AC_MSG_WARN([Skipped setting ac_cv_gtest_root, value $ac_cv_gtest_root])
+else
+   if test -n "${GTEST_ROOT}" -a -r "${GTEST_ROOT}/src/gtest-all.cc"; then
+      ac_cv_gtest_root=${GTEST_ROOT}
+   elif test "x$ac_cv_gtest_system_install" = "xyes"; then
+      ac_cv_gtest_root="/usr/src/gtest"
    else
-      if test -n "${GTEST_ROOT}" -a -r "${GTEST_ROOT}/src/gtest-all.cc"; then
-         ac_cv_gtest_root=${GTEST_ROOT}
-      elif test "x$ac_cv_gtest_system_install" = "xyes"; then
-         ac_cv_gtest_root="/usr/src/gtest"
-      else
-         ac_cv_gtest_root=""
-      fi
+      ac_cv_gtest_root=""
    fi
-   if test -z "$ac_cv_gtest_root" -a -z "$ac_cv_gtest_libs"; then
-      AC_MSG_RESULT([No gtest-root])
-      enable_google_test=no
-   else
-      if test ! -r "$ac_cv_gtest_root/include/gtest/gtest.h"; then
-         if test -n "$ac_cv_gtest_headers" -a -r "$ac_cv_gtest_headers/gtest/gtest.h"; then
-            AC_MSG_WARN([Skipped setting ac_cv_gtest_headers, value $ac_cv_gtest_headers])
+fi
+if test -z "$ac_cv_gtest_root" -a -z "$ac_cv_gtest_libs"; then
+   AC_MSG_RESULT([No gtest-root])
+   google_test_found=no
+else
+   if test ! -r "$ac_cv_gtest_root/include/gtest/gtest.h"; then
+      if test -n "$ac_cv_gtest_headers" -a -r "$ac_cv_gtest_headers/gtest/gtest.h"; then
+         AC_MSG_WARN([Skipped setting ac_cv_gtest_headers, value $ac_cv_gtest_headers])
+      else
+         if test  -n "${GTEST_HEADERS}" -a -r "${GTEST_HEADERS}/gtest/gtest.h"; then
+            ac_cv_gtest_headers=${GTEST_HEADERS}
+         elif test "x$ac_cv_gtest_system_install" = "xyes"; then
+            ac_cv_gtest_headers="/usr/include"
          else
-            if test  -n "${GTEST_HEADERS}" -a -r "${GTEST_HEADERS}/gtest/gtest.h"; then
-               ac_cv_gtest_headers=${GTEST_HEADERS}
-            elif test "x$ac_cv_gtest_system_install" = "xyes"; then
-               ac_cv_gtest_headers="/usr/include"
-            else
-               ac_cv_gtest_headers=""
-            fi
+            ac_cv_gtest_headers=""
          fi
-         if test -z "$ac_cv_gtest_headers"; then
-            AC_MSG_RESULT([No gtest-headers])
-            enable_google_test=no
-         fi
-      else
-         ac_cv_gtest_headers=$ac_cv_gtest_root/include
       fi
+      if test -z "$ac_cv_gtest_headers"; then
+         AC_MSG_RESULT([No gtest-headers])
+         google_test_found=no
+      fi
+   else
+      ac_cv_gtest_headers=$ac_cv_gtest_root/include
    fi
+fi
 
 
-   if test -n "$ac_cv_gmock_root" -a -r "$ac_cv_gmock_root/gmock-all.cc"; then
-      ac_cv_gmock_src_path="$ac_cv_gmock_root"
-      AC_MSG_WARN([Skipped setting ac_cv_gmock_root, value $ac_cv_gmock_root])
-   elif test -n "$ac_cv_gmock_root" -a -r "$ac_cv_gmock_root/src/gmock-all.cc"; then
-      ac_cv_gmock_src_path="$ac_cv_gmock_root/src"
-      AC_MSG_WARN([Skipped setting ac_cv_gmock_root, value $ac_cv_gmock_root])
+if test -n "$ac_cv_gmock_root" -a -r "$ac_cv_gmock_root/gmock-all.cc"; then
+   ac_cv_gmock_src_path="$ac_cv_gmock_root"
+   AC_MSG_WARN([Skipped setting ac_cv_gmock_root, value $ac_cv_gmock_root])
+elif test -n "$ac_cv_gmock_root" -a -r "$ac_cv_gmock_root/src/gmock-all.cc"; then
+   ac_cv_gmock_src_path="$ac_cv_gmock_root/src"
+   AC_MSG_WARN([Skipped setting ac_cv_gmock_root, value $ac_cv_gmock_root])
+else
+   if test -n "${GMOCK_ROOT}" -a -r "${GMOCK_ROOT}/src/gmock-all.cc"; then
+       ac_cv_gmock_src_path=${GMOCK_ROOT}/src
+       ac_cv_gmock_root=${GMOCK_ROOT}
+   elif test "x$ac_cv_gtest_system_install" = "xyes"; then
+       if test "x$ac_cv_file__usr_src_gmock_src_gmock_all_cc" = xyes; then
+         ac_cv_gmock_src_path="/usr/src/gmock/src"
+       elif test "x$ac_cv_file__usr_src_gmock_gmock_all_cc" = xyes; then
+          ac_cv_gmock_src_path="/usr/src/gmock"
+       else
+          ac_cv_gmock_src_path=""
+       fi
+       ac_cv_gmock_root="/usr/src/gmock"
    else
-      if test -n "${GMOCK_ROOT}" -a -r "${GMOCK_ROOT}/src/gmock-all.cc"; then
-         ac_cv_gmock_src_path=${GMOCK_ROOT}/src
-	 ac_cv_gmock_root=${GMOCK_ROOT}
-      elif test "x$ac_cv_gtest_system_install" = "xyes"; then
-         if test "x$ac_cv_file__usr_src_gmock_src_gmock_all_cc" = xyes; then
-            ac_cv_gmock_src_path="/usr/src/gmock/src"
-	 elif test "x$ac_cv_file__usr_src_gmock_gmock_all_cc" = xyes; then
-	    ac_cv_gmock_src_path="/usr/src/gmock"
-	 else
-	    ac_cv_gmock_src_path=""
-	 fi
-	 ac_cv_gmock_root="/usr/src/gmock"
-      else
-         ac_cv_gmock_root=""
-      fi
+      ac_cv_gmock_root=""
    fi
-   if test -z "$ac_cv_gmock_root"; then
-      AC_MSG_RESULT([No gmock-root])
-      enable_google_test=no
-   else
-      if test ! -r "$ac_cv_gmock_root/include/gmock/gmock.h"; then
-         if test -n "$ac_cv_gmock_headers" -a -r "$ac_cv_gmock_headers/gmock/gmock.h"; then
-            AC_MSG_WARN([Skipped setting ac_cv_gmock_headers, value $ac_cv_gmock_headers])
+fi
+if test -z "$ac_cv_gmock_root"; then
+   AC_MSG_RESULT([No gmock-root])
+   google_test_found=no
+else
+   if test ! -r "$ac_cv_gmock_root/include/gmock/gmock.h"; then
+      if test -n "$ac_cv_gmock_headers" -a -r "$ac_cv_gmock_headers/gmock/gmock.h"; then
+         AC_MSG_WARN([Skipped setting ac_cv_gmock_headers, value $ac_cv_gmock_headers])
+      else
+         if test -n "${GMOCK_HEADERS}" -a -r "${GMOCK_HEADERS}/gmock/gmock.h"; then
+            ac_cv_gmock_headers=${GMOCK_HEADERS}
+         elif test "x$ac_cv_gtest_system_install" = "xyes"; then
+            ac_cv_gmock_headers="/usr/include"
          else
-            if test -n "${GMOCK_HEADERS}" -a -r "${GMOCK_HEADERS}/gmock/gmock.h"; then
-               ac_cv_gmock_headers=${GMOCK_HEADERS}
-            elif test "x$ac_cv_gtest_system_install" = "xyes"; then
-               ac_cv_gmock_headers="/usr/include"
-            else
-               ac_cv_gmock_headers=""
-            fi
+            ac_cv_gmock_headers=""
          fi
-         if test -z "$ac_cv_gmock_headers"; then
-	    AC_MSG_RESULT([No gmock-headers])
-            enable_google_test=no
-         fi
-      else
-         ac_cv_gmock_headers="$ac_cv_gmock_root/include"
       fi
+      if test -z "$ac_cv_gmock_headers"; then
+         AC_MSG_RESULT([No gmock-headers])
+         google_test_found=no
+      fi
+   else
+      ac_cv_gmock_headers="$ac_cv_gmock_root/include"
    fi
-   if test "x$enable_google_test" = "xyes"; then
-       AC_MSG_RESULT([Yes])
-   fi
+fi
+
+if test "x$google_test_found" = "xyes"; then
+    AC_MSG_RESULT([Yes])
+else
+    AC_MSG_ERROR([
+
+ Unable to find the Google test framework. Either install gtest/gmock
+ packages or point to the base directories of the sources using
+ GTEST_ROOT and GMOCK_ROOT environment variables.
+])
 fi
 
 if test "x$ac_cv_have_gtest_libs" = xyes; then
@@ -1002,10 +1005,9 @@ dnl Google test requires pthreads and this seems the easiest way to check.
     AX_PTHREAD([
     ac_cv_gtest_libs="\$(top_builddir)/src/test-core/libgtest.a $PTHREAD_CFLAGS"
     ],[
-    AC_MSG_WARN(
-      [Disabling GTest because pthreads, which it requires, wasn't found.])
+    AC_MSG_ERROR(
+      [GTest requires pthreads, but this wasn't found.])
       dnl Google test requires pthreads and this seems the easiest way to check.
-    enable_google_test="no"
     ])
 fi
 
@@ -1015,7 +1017,6 @@ AC_SUBST([GTEST_HEADERS], [$ac_cv_gtest_headers])
 AC_SUBST([GMOCK_SRC_PATH], [$ac_cv_gmock_src_path])
 AC_SUBST([GMOCK_SRC], [$ac_cv_gmock_root])
 AC_SUBST([GMOCK_HEADERS], [$ac_cv_gmock_headers])
-AM_CONDITIONAL([WITH_GOOGLE_TEST], [test "x$enable_google_test" = "xyes"])
 AM_CONDITIONAL([GOOGLE_TEST_LIBS], [test "x$ac_cv_have_gtest_libs" == "xyes"])
 ### --------------------------------------------------------------------------
 ### Register2
diff --git a/src/cmake_modules/GncAddTest.cmake b/src/cmake_modules/GncAddTest.cmake
index 63adc3c..445b412 100644
--- a/src/cmake_modules/GncAddTest.cmake
+++ b/src/cmake_modules/GncAddTest.cmake
@@ -85,34 +85,44 @@ FUNCTION(GNC_ADD_SCHEME_TEST _TARGET _SOURCE_FILE)
 ENDFUNCTION()
 
 FUNCTION(GNC_GTEST_CONFIGURE)
-  MESSAGE(STATUS "Maybe setting up GTEST with " ${GTEST_DISABLE})
-  IF (NOT GTEST_DISABLE)
-    FIND_PATH(GTEST_INCLUDE_DIR gtest/gtest.h
-      PATHS /usr/include ${GMOCK_ROOT}/gtest/include ${GTEST_ROOT}/include)
-    FIND_PATH(GTEST_SRC_DIR src/gtest-all.cc
-      PATHS /usr/src/gtest ${GMOCK_ROOT}/gtest ${GTEST_ROOT})
-    FIND_PATH(GMOCK_INCLUDE_DIR gmock/gmock.h
-      PATHS /usr/include ${GMOCK_ROOT}/include)
-    FIND_PATH(GMOCK_SRC_DIR src/gmock-all.cc
-      PATHS /usr/src/gmock ${GMOCK_ROOT})
-    FIND_LIBRARY(GTEST_SHARED_LIB gtest)
-    FIND_LIBRARY(GTEST_MAIN_LIB gtest_main)
-    IF ((GTEST_SHARED_LIB OR GTEST_SRC_DIR) AND GTEST_INCLUDE_DIR)
-      SET(THREADS_PREFER_PTHREAD_FLAG ON)
-      FIND_PACKAGE(Threads REQUIRED)
-      SET(GTEST_FOUND YES CACHE INTERNAL "Found GTest")
-      IF(GTEST_SHARED_LIB)
-        SET(GTEST_LIB "${GTEST_SHARED_LIB};${GTEST_MAIN_LIB}" PARENT_SCOPE)
-        UNSET(GTEST_SRC_DIR CACHE)
-      ELSE()
-        SET(GTEST_SRC "${GTEST_SRC_DIR}/src/gtest_main.cc" PARENT_SCOPE)
-        SET(GTEST_LIB "${CMAKE_BINARY_DIR}/src/test-core/libgtest.a" PARENT_SCOPE)
-      ENDIF()
-      if (GMOCK_INCLUDE_DIR AND GMOCK_SRC_DIR)
-        SET(GMOCK_FOUND YES PARENT_SCOPE)
-        SET(GMOCK_SRC "${GMOCK_SRC_DIR}/src/gmock_main.cc" PARENT_SCOPE)
-        SET(GMOCK_LIB "${CMAKE_BINARY_DIR}/src/test-core/libgmock.a" PARENT_SCOPE)
-      ENDIF()
+  MESSAGE(STATUS "Checking for GTEST")
+  IF (NOT DEFINED ${GTEST_ROOT})
+    SET(GTEST_ROOT $ENV{GTEST_ROOT})
+  ENDIF()
+  IF (NOT DEFINED ${GMOCK_ROOT})
+    SET(GMOCK_ROOT $ENV{GMOCK_ROOT})
+  ENDIF()
+  FIND_PATH(GTEST_INCLUDE_DIR gtest/gtest.h
+    PATHS ${GTEST_ROOT}/include ${GMOCK_ROOT}/gtest/include /usr/include)
+  FIND_PATH(GTEST_SRC_DIR src/gtest-all.cc
+    PATHS ${GTEST_ROOT} ${GMOCK_ROOT}/gtest /usr/src/gtest)
+  FIND_LIBRARY(GTEST_SHARED_LIB gtest)
+  FIND_LIBRARY(GTEST_MAIN_LIB gtest_main)
+  IF ((GTEST_SHARED_LIB OR GTEST_SRC_DIR) AND GTEST_INCLUDE_DIR)
+    SET(THREADS_PREFER_PTHREAD_FLAG ON)
+    FIND_PACKAGE(Threads REQUIRED)
+    SET(GTEST_FOUND YES CACHE INTERNAL "Found GTest")
+    IF(GTEST_SHARED_LIB)
+      SET(GTEST_LIB "${GTEST_SHARED_LIB};${GTEST_MAIN_LIB}" PARENT_SCOPE)
+      UNSET(GTEST_SRC_DIR CACHE)
+    ELSE()
+      SET(GTEST_SRC "${GTEST_SRC_DIR}/src/gtest_main.cc" PARENT_SCOPE)
+      SET(GTEST_LIB "${CMAKE_BINARY_DIR}/src/test-core/libgtest.a" PARENT_SCOPE)
     ENDIF()
+  ELSE()
+    MESSAGE(FATAL_ERROR "GTEST not found. Please install it or set GTEST_ROOT or GMOCK_ROOT")
+  ENDIF()
+
+  MESSAGE(STATUS "Checking for GMOCK")
+  FIND_PATH(GMOCK_INCLUDE_DIR gmock/gmock.h
+    PATHS ${GMOCK_ROOT}/include /usr/include)
+  FIND_PATH(GMOCK_SRC_DIR src/gmock-all.cc
+    PATHS ${GMOCK_ROOT} /usr/src/gmock)
+  if (GMOCK_INCLUDE_DIR AND GMOCK_SRC_DIR)
+    SET(GMOCK_FOUND YES PARENT_SCOPE)
+    SET(GMOCK_SRC "${GMOCK_SRC_DIR}/src/gmock_main.cc" PARENT_SCOPE)
+    SET(GMOCK_LIB "${CMAKE_BINARY_DIR}/src/test-core/libgmock.a" PARENT_SCOPE)
+  ELSE()
+    MESSAGE(FATAL_ERROR "GMOCK not found. Please install it or set GMOCK_ROOT")
   ENDIF()
 ENDFUNCTION()
diff --git a/src/engine/test/Makefile.am b/src/engine/test/Makefile.am
index 619cfe5..762bfea 100644
--- a/src/engine/test/Makefile.am
+++ b/src/engine/test/Makefile.am
@@ -183,7 +183,6 @@ libutest_Trans_la_SOURCES = \
 
 libutest_Trans_la_LIBADD = $(LDADD)
 
-if WITH_GOOGLE_TEST
 test_import_map_SOURCES = \
         gtest-import-map.cpp
 test_import_map_LDADD = \
@@ -205,7 +204,6 @@ test_import_map_CPPFLAGS = \
         ${GLIB_CFLAGS}
 
 TEST_GROUP_1 += test-import-map
-endif
 
 
 CLEANFILES = .scm-links
diff --git a/src/libqof/qof/test/CMakeLists.txt b/src/libqof/qof/test/CMakeLists.txt
index 96d4ab5..47834e4 100644
--- a/src/libqof/qof/test/CMakeLists.txt
+++ b/src/libqof/qof/test/CMakeLists.txt
@@ -25,56 +25,53 @@ SET(test_qof_SOURCES
 IF (NOT WIN32)
   GNC_ADD_TEST(test-qof "${test_qof_SOURCES}" TEST_QOF_INCLUDE_DIRS TEST_QOF_LIBS)
   TARGET_COMPILE_DEFINITIONS(test-qof PRIVATE TESTPROG=test_qof)
-  IF(GTEST_FOUND)
-    SET(MODULEPATH ${CMAKE_SOURCE_DIR}/src/libqof/qof)
-    SET(gtest_qof_LIBS gnc-qof ${GLIB2_LDFLAGS} ${Boost_LIBRARIES} ${GTEST_LIB})
-    SET(gtest_qof_INCLUDES
-      ${MODULEPATH}
-      ${GLIB2_INCLUDE_DIRS}
-      ${GTEST_INCLUDE_DIR})
+  SET(MODULEPATH ${CMAKE_SOURCE_DIR}/src/libqof/qof)
+  SET(gtest_qof_LIBS gnc-qof ${GLIB2_LDFLAGS} ${Boost_LIBRARIES} ${GTEST_LIB})
+  SET(gtest_qof_INCLUDES
+    ${MODULEPATH}
+    ${GLIB2_INCLUDE_DIRS}
+    ${GTEST_INCLUDE_DIR})
 
-    SET(test_gnc_guid_SOURCES
-      ${MODULEPATH}/guid.cpp
-      test-gnc-guid.cpp
-      ${GTEST_SRC})
-    GNC_ADD_TEST(test-gnc-guid "${test_gnc_guid_SOURCES}"
-      gtest_qof_INCLUDES gtest_qof_LIBS)
+  SET(test_gnc_guid_SOURCES
+    ${MODULEPATH}/guid.cpp
+    test-gnc-guid.cpp
+    ${GTEST_SRC})
+  GNC_ADD_TEST(test-gnc-guid "${test_gnc_guid_SOURCES}"
+    gtest_qof_INCLUDES gtest_qof_LIBS)
 
-    SET(test_kvp_value_SOURCES
-      ${MODULEPATH}/kvp-value.cpp
-      test-kvp-value.cpp
-      test-kvp-frame.cpp
-      ${GTEST_SRC})
-    GNC_ADD_TEST(test-kvp-value "${test_kvp_value_SOURCES}"
-      gtest_qof_INCLUDES gtest_qof_LIBS)
+  SET(test_kvp_value_SOURCES
+    ${MODULEPATH}/kvp-value.cpp
+    test-kvp-value.cpp
+    test-kvp-frame.cpp
+    ${GTEST_SRC})
+  GNC_ADD_TEST(test-kvp-value "${test_kvp_value_SOURCES}"
+    gtest_qof_INCLUDES gtest_qof_LIBS)
 
-    SET(test_qofsession_SOURCES
-      ${MODULEPATH}/qofsession.cpp
-      test-qofsession.cpp
-      ${GTEST_SRC})
-    GNC_ADD_TEST(test-qofsession "${test_qofsession_SOURCES}"
-      gtest_qof_INCLUDES gtest_qof_LIBS)
+  SET(test_qofsession_SOURCES
+    ${MODULEPATH}/qofsession.cpp
+    test-qofsession.cpp
+    ${GTEST_SRC})
+  GNC_ADD_TEST(test-qofsession "${test_qofsession_SOURCES}"
+    gtest_qof_INCLUDES gtest_qof_LIBS)
 
-    SET(test_gnc_int128_SOURCES
-      ${MODULEPATH}/gnc-int128.cpp
-      gtest-gnc-int128.cpp
-      ${GTEST_SRC})
-    GNC_ADD_TEST(test-gnc-int128 "${test_gnc_int128_SOURCES}"
-      gtest_qof_INCLUDES gtest_qof_LIBS)
+  SET(test_gnc_int128_SOURCES
+    ${MODULEPATH}/gnc-int128.cpp
+    gtest-gnc-int128.cpp
+    ${GTEST_SRC})
+  GNC_ADD_TEST(test-gnc-int128 "${test_gnc_int128_SOURCES}"
+    gtest_qof_INCLUDES gtest_qof_LIBS)
 
-    SET(test_gnc_timezone_SOURCES
-      ${MODULEPATH}/gnc-timezone.cpp
-      gtest-gnc-timezone.cpp
-      ${GTEST_SRC})
-    GNC_ADD_TEST(test-gnc-timezone "${test_gnc_timezone_SOURCES}"
-      gtest_qof_INCLUDES gtest_qof_LIBS)
+  SET(test_gnc_timezone_SOURCES
+    ${MODULEPATH}/gnc-timezone.cpp
+    gtest-gnc-timezone.cpp
+    ${GTEST_SRC})
+  GNC_ADD_TEST(test-gnc-timezone "${test_gnc_timezone_SOURCES}"
+    gtest_qof_INCLUDES gtest_qof_LIBS)
 
-    SET(test_gnc_datetime_SOURCES
-      ${MODULEPATH}/gnc-datetime.cpp
-      gtest-gnc-datetime.cpp
-      ${GTEST_SRC})
-    GNC_ADD_TEST(test-gnc-datetime "${test_gnc_datetime_SOURCES}"
-      gtest_qof_INCLUDES gtest_qof_LIBS)
-
-  ENDIF()
+  SET(test_gnc_datetime_SOURCES
+    ${MODULEPATH}/gnc-datetime.cpp
+    gtest-gnc-datetime.cpp
+    ${GTEST_SRC})
+  GNC_ADD_TEST(test-gnc-datetime "${test_gnc_datetime_SOURCES}"
+    gtest_qof_INCLUDES gtest_qof_LIBS)
 ENDIF()
diff --git a/src/libqof/qof/test/Makefile.am b/src/libqof/qof/test/Makefile.am
index 5c43d20..5e2a70e 100644
--- a/src/libqof/qof/test/Makefile.am
+++ b/src/libqof/qof/test/Makefile.am
@@ -30,7 +30,6 @@ check_PROGRAMS = \
 
 TESTS = ${check_PROGRAMS}
 
-if WITH_GOOGLE_TEST
 test_gnc_guid_SOURCES = \
 	$(top_srcdir)/$(MODULEPATH)/guid.cpp \
 	test-gnc-guid.cpp
@@ -152,7 +151,6 @@ nodist_test_gnc_datetime_SOURCES = \
 endif
 check_PROGRAMS += test-gnc-datetime
 
-endif
 
 test_qofdir = ${GNC_LIBEXECDIR}/${MODULEPATH}/test
 
diff --git a/src/test-core/CMakeLists.txt b/src/test-core/CMakeLists.txt
index 047256b..a6a0c9e 100644
--- a/src/test-core/CMakeLists.txt
+++ b/src/test-core/CMakeLists.txt
@@ -65,18 +65,14 @@ GNC_ADD_SCHEME_TARGETS(scm-test-core
   FALSE
   )
 
-IF(GTEST_FOUND)
-  IF(NOT GTEST_SHARED_LIB)
-    SET (lib_gtest_SOURCES ${GTEST_SRC_DIR}/src/gtest-all.cc)
-    ADD_LIBRARY(gtest STATIC  ${lib_gtest_SOURCES})
-    TARGET_INCLUDE_DIRECTORIES(gtest PUBLIC ${GTEST_INCLUDE_DIR} ${GTEST_SRC_DIR})
-  ENDIF()
-  IF(GMOCK_FOUND)
-    SET (lib_gmock_SOURCES ${GMOCK_SRC_DIR}/src/gmock-all.cc)
-    ADD_LIBRARY(gmock STATIC  ${lib_gmock_SOURCES})
-    TARGET_INCLUDE_DIRECTORIES(gmock PUBLIC
-      ${GTEST_INCLUDE_DIR} ${GTEST_SRC_DIR}
-      ${GMOCK_INCLUDE_DIR} ${GMOCK_SRC_DIR})
-  ENDIF()
+IF(NOT GTEST_SHARED_LIB)
+  SET (lib_gtest_SOURCES ${GTEST_SRC_DIR}/src/gtest-all.cc)
+  ADD_LIBRARY(gtest STATIC  ${lib_gtest_SOURCES})
+  TARGET_INCLUDE_DIRECTORIES(gtest PUBLIC ${GTEST_INCLUDE_DIR} ${GTEST_SRC_DIR})
 ENDIF()
+SET (lib_gmock_SOURCES ${GMOCK_SRC_DIR}/src/gmock-all.cc)
+ADD_LIBRARY(gmock STATIC  ${lib_gmock_SOURCES})
+TARGET_INCLUDE_DIRECTORIES(gmock PUBLIC
+  ${GTEST_INCLUDE_DIR} ${GTEST_SRC_DIR}
+  ${GMOCK_INCLUDE_DIR} ${GMOCK_SRC_DIR})
 INSTALL(FILES unittest-support.h DESTINATION libexec/gnucash/src/libqof/qof/test)
diff --git a/src/test-core/Makefile.am b/src/test-core/Makefile.am
index aadd040..f8b9414 100644
--- a/src/test-core/Makefile.am
+++ b/src/test-core/Makefile.am
@@ -79,7 +79,6 @@ _unittest_support_la_LIBADD = \
 
 endif
 
-if WITH_GOOGLE_TEST
 if GOOGLE_TEST_LIBS
 noinst_LIBRARIES = libgmock.a
 else
@@ -91,7 +90,6 @@ libgtest_a_CPPFLAGS = ${AM_CPPFLAGS} -I${GTEST_HEADERS} -I${GTEST_SRC}
 endif
 nodist_libgmock_a_SOURCES = ${GMOCK_SRC_PATH}/gmock-all.cc
 libgmock_a_CPPFLAGS = ${libgtest_a_CPPFLAGS} -I${GMOCK_HEADERS} -I${GMOCK_SRC}
-endif
 
 gncscmmoddir = ${GNC_SCM_INSTALL_DIR}/gnucash
 gncscmmod_DATA = unittest-support.scm



Summary of changes:
 CMakeLists.txt                     |   9 +-
 configure.ac                       | 197 +++++++++++++++++++------------------
 src/cmake_modules/GncAddTest.cmake |  66 +++++++------
 src/engine/test/Makefile.am        |   2 -
 src/libqof/qof/test/CMakeLists.txt |  89 ++++++++---------
 src/libqof/qof/test/Makefile.am    |   2 -
 src/test-core/CMakeLists.txt       |  22 ++---
 src/test-core/Makefile.am          |   2 -
 8 files changed, 195 insertions(+), 194 deletions(-)



More information about the gnucash-changes mailing list