Skip to contentSkip to conversation

gtest: bump to version 1.8.0

PATCH New Fabrice Fontaine 5 participants 25 messages Sep 7, 2016 – Mar 5, 2017

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 gtest: bump to version 1.8.0

Version 1.8.0 now includes gmock so merge gmock package inside gtest In this merge:
- Add gmock as a suboption of gtest (BR2_PACKAGE_GTEST_GMOCK) following advice from Arnout Vandecappelle
- Use cmake to install libraries and headers and add missing files (gtest.pc, gtest-config, gmock.pc) in GTEST_POST_INSTALL_STAGING_HOOKS instead of redefining GTEST_INSTALL_STAGING_CMDS
- Remove patch on Python as gmock/gtest now supports python 3.0 (commit 456fc2b5c4e9ebf05a5987dfe1ff0ac9ffeb53cc)
- Add the correct license in HOST_GTEST_LICENSE as all python code in googlemock/scripts/generator is licensed under Apache-2.0 and not BSD-3c
- Fix URL of gtest project in Config.in

---
 package/Config.in                          |  1 -
 package/gmock/0001-force-use-python2.patch | 20 ----------
 package/gmock/Config.in                    | 32 ---------------
 package/gmock/gmock.hash                   |  2 -
 package/gmock/gmock.mk                     | 64 ------------------------------
 package/gtest/Config.in                    | 31 ++++++++++++++-
 package/{gmock => gtest}/gmock.pc          |  2 +-
 package/gtest/gtest.hash                   |  2 +-
 package/gtest/gtest.mk                     | 52 +++++++++++++++++++-----
 package/gtest/gtest.pc                     |  2 +-
 10 files changed, 75 insertions(+), 133 deletions(-)
 delete mode 100644 package/gmock/0001-force-use-python2.patch
 delete mode 100644 package/gmock/Config.in
 delete mode 100644 package/gmock/gmock.hash
 delete mode 100644 package/gmock/gmock.mk
 rename package/{gmock => gtest}/gmock.pc (93%)
package/Config.in +0 -1
index add6052..a70aaca 100644
@@ -1269,7 +1269,6 @@ menu "Other"
 	source "package/gflags/Config.in"
 	source "package/glibmm/Config.in"
 	source "package/glm/Config.in"
-	source "package/gmock/Config.in"
 	source "package/gmp/Config.in"
 	source "package/gsl/Config.in"
 	source "package/gtest/Config.in"
package/gmock/0001-force-use-python2.patch deleted +0 -20
deleted file mode 100644
index 5dcb231..0000000
@@ -1,20 +0,0 @@
-Force use of Python 2 even when Python 3 is the default Python interpreter.
-
-Signed-off-by: Carlos Santos <[email protected]>
-
---- ./gtest/scripts/fuse_gtest_files.py.orig	2013-09-18 14:48:30.000000000 -0300
-+++ ./gtest/scripts/fuse_gtest_files.py	2015-07-22 15:42:53.291591205 -0300
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python2
- #
- # Copyright 2009, Google Inc.
- # All rights reserved.
---- ./scripts/generator/gmock_gen.py.orig	2013-09-18 14:50:15.000000000 -0300
-+++ ./scripts/generator/gmock_gen.py	2015-07-22 17:06:51.071815634 -0300
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python2
- #
- # Copyright 2008 Google Inc. All Rights Reserved.
- #
package/gmock/Config.in deleted +0 -32
deleted file mode 100644
index ec3eb92..0000000
@@ -1,32 +0,0 @@
-config BR2_PACKAGE_GMOCK
-	bool "gmock"
-	select BR2_PACKAGE_GTEST
-	depends on BR2_USE_WCHAR
-	depends on BR2_TOOLCHAIN_HAS_THREADS
-	depends on BR2_INSTALL_LIBSTDCPP
-	depends on BR2_USE_MMU # fork()
-	help
-	  Inspired by jMock, EasyMock, and Hamcrest, and designed with C++'s
-	  specifics in mind, Google C++ Mocking Framework (or Google Mock for
-	  short) is a library for writing and using C++ mock classes.
-
-	  Google Mock:
-
-	    * lets you create mock classes trivially using simple macros,
-	    * supports a rich set of matchers and actions,
-	    * handles unordered, partially ordered, or completely ordered
-	      expectations,
-	    * is extensible by users, and
-	    * works on Linux, Mac OS X, Windows, Windows Mobile, minGW, and
-	      Symbian.
-
-	    http://code.google.com/p/googlemock/
-
-	  There are both host and target packages. The target one has include
-	  files required to compile the tests and the static libraries required
-	  to link/run them. The host package installs gmock_gen, a Python script
-	  used to generate code mocks.
-
-comment "gmock needs a toolchain w/ C++, wchar, threads"
-	depends on BR2_USE_MMU
-	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP
package/gmock/gmock.hash deleted +0 -2
deleted file mode 100644
index 2b71739..0000000
@@ -1,2 +0,0 @@
-# Locally computed
-sha256 26fcbb5925b74ad5fc8c26b0495dfc96353f4d553492eb97e85a8a6d2f43095b  gmock-1.7.0.zip
package/gmock/gmock.mk deleted +0 -64

64 lines not on this page · raw message

package/gtest/Config.in +29 -2
index c07f13b..9f514da 100644
@@ -19,8 +19,35 @@ config BR2_PACKAGE_GTEST
 	  This package allows running testsuites on the target which
 	  might be advantageous in certain cases.
 
-	  http://code.google.com/p/googletest/
+	  https://github.com/google/googletest
+
+if BR2_PACKAGE_GTEST
+
+config BR2_PACKAGE_GTEST_GMOCK
+	bool "gmock"
+	help
+	  Inspired by jMock, EasyMock, and Hamcrest, and designed with C++'s
+	  specifics in mind, Google C++ Mocking Framework (or Google Mock for
+	  short) is a library for writing and using C++ mock classes.
+
+	  Google Mock:
+
+	    * lets you create mock classes trivially using simple macros,
+	    * supports a rich set of matchers and actions,
+	    * handles unordered, partially ordered, or completely ordered
+	      expectations,
+	    * is extensible by users, and
+	    * works on Linux, Mac OS X, Windows, Windows Mobile, minGW, and
+	      Symbian.
+
+	  There are both host and target packages. The target one has include
+	  files required to compile the tests and the static libraries required
+	  to link/run them. The host package installs gmock_gen, a Python script
+	  used to generate code mocks.
+
+endif # BR2_PACKAGE_GTEST
 
 comment "gtest needs a toolchain w/ C++, wchar, threads"
 	depends on BR2_USE_MMU
-	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP
+	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
+		!BR2_INSTALL_LIBSTDCPP
package/gtest/gmock.pc renamed from package/gmock/gmock.pc +1 -1
similarity index 93%
rename from package/gmock/gmock.pc
rename to package/gtest/gmock.pc
index 2f90068..4c72354 100644
@@ -5,7 +5,7 @@ includedir=${prefix}/include
 
 Name: gmock
 Description: Google C++ Mocking Framework
-Version: 1.7.0
+Version: 1.8.0
 Libs: -L${libdir} -lgmock
 Libs.private: -lpthread
 Cflags: -I${includedir}
package/gtest/gtest.hash +1 -1
index 79e31e4..474008d 100644
@@ -1,2 +1,2 @@
 # Locally computed:
-sha256	f73a6546fdf9fce9ff93a5015e0333a8af3062a152a9ad6bcb772c96687016cc	gtest-release-1.7.0.tar.gz
+sha256	58a6f4277ca2bc8565222b3bbd58a177609e9c488e8a72649359ba51450db7d8	gtest-release-1.8.0.tar.gz
package/gtest/gtest.mk +43 -9

76 lines not on this page · raw message

package/gtest/gtest.pc +1 -1
index b7a8aa4..594e79d 100644
@@ -5,7 +5,7 @@ includedir=${prefix}/include
 
 Name: gtest
 Description: Google C++ Testing Framework
-Version: 1.7.0
+Version: 1.8.0
 Libs: -L${libdir} -lgtest
 Libs.private: -lpthread
 Cflags: -I${includedir}
Signature · 1 line
2.7.4
#1 lore raw

PATCH 1/1 gtest: bump to version 1.8.0

Quoted 227 lines

From: "Fabrice Fontaine" <[email protected]>
To: buildroot at buildroot.org
Cc: "Fabrice Fontaine" <[email protected]>
Sent: Wednesday, September 7, 2016 11:39:45 AM
Subject: [Buildroot] [PATCH 1/1] gtest: bump to version 1.8.0

Version 1.8.0 now includes gmock so merge gmock package inside gtest In this merge:
- Add gmock as a suboption of gtest (BR2_PACKAGE_GTEST_GMOCK) following advice from Arnout Vandecappelle
- Use cmake to install libraries and headers and add missing files (gtest.pc, gtest-config, gmock.pc) in GTEST_POST_INSTALL_STAGING_HOOKS instead of redefining GTEST_INSTALL_STAGING_CMDS
- Remove patch on Python as gmock/gtest now supports python 3.0 (commit 456fc2b5c4e9ebf05a5987dfe1ff0ac9ffeb53cc)
- Add the correct license in HOST_GTEST_LICENSE as all python code in googlemock/scripts/generator is licensed under Apache-2.0 and not BSD-3c
- Fix URL of gtest project in Config.in

---

package/Config.in                          |  1 -
package/gmock/0001-force-use-python2.patch | 20 ----------
package/gmock/Config.in                    | 32 ---------------
package/gmock/gmock.hash                   |  2 -
package/gmock/gmock.mk                     | 64 ------------------------------
package/gtest/Config.in                    | 31 ++++++++++++++-
package/{gmock => gtest}/gmock.pc          |  2 +-
package/gtest/gtest.hash                   |  2 +-
package/gtest/gtest.mk                     | 52 +++++++++++++++++++-----
package/gtest/gtest.pc                     |  2 +-
10 files changed, 75 insertions(+), 133 deletions(-)

delete mode 100644 package/gmock/0001-force-use-python2.patch delete mode 100644 package/gmock/Config.in
delete mode 100644 package/gmock/gmock.hash
delete mode 100644 package/gmock/gmock.mk
rename package/{gmock => gtest}/gmock.pc (93%)

package/Config.in +0 -1
index add6052..a70aaca 100644
@@ -1269,7 +1269,6 @@ menu "Other"
 	source "package/gflags/Config.in"
 	source "package/glibmm/Config.in"
 	source "package/glm/Config.in"
-	source "package/gmock/Config.in"
 	source "package/gmp/Config.in"
 	source "package/gsl/Config.in"
 	source "package/gtest/Config.in"
package/gmock/0001-force-use-python2.patch deleted +0 -21
deleted file mode 100644
index 5dcb231..0000000
@@ -1,20 +0,0 @@
-Force use of Python 2 even when Python 3 is the default Python interpreter.
-
-Signed-off-by: Carlos Santos <[email protected]>
-
---- ./gtest/scripts/fuse_gtest_files.py.orig	2013-09-18 14:48:30.000000000
-0300
-+++ ./gtest/scripts/fuse_gtest_files.py	2015-07-22 15:42:53.291591205 -0300
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python2
- #
- # Copyright 2009, Google Inc.
- # All rights reserved.
---- ./scripts/generator/gmock_gen.py.orig	2013-09-18 14:50:15.000000000 -0300
-+++ ./scripts/generator/gmock_gen.py	2015-07-22 17:06:51.071815634 -0300
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python2
- #
- # Copyright 2008 Google Inc. All Rights Reserved.
- #
package/gmock/Config.in deleted +0 -32
deleted file mode 100644
index ec3eb92..0000000
@@ -1,32 +0,0 @@
-config BR2_PACKAGE_GMOCK
-	bool "gmock"
-	select BR2_PACKAGE_GTEST
-	depends on BR2_USE_WCHAR
-	depends on BR2_TOOLCHAIN_HAS_THREADS
-	depends on BR2_INSTALL_LIBSTDCPP
-	depends on BR2_USE_MMU # fork()
-	help
-	  Inspired by jMock, EasyMock, and Hamcrest, and designed with C++'s
-	  specifics in mind, Google C++ Mocking Framework (or Google Mock for
-	  short) is a library for writing and using C++ mock classes.
-
-	  Google Mock:
-
-	    * lets you create mock classes trivially using simple macros,
-	    * supports a rich set of matchers and actions,
-	    * handles unordered, partially ordered, or completely ordered
-	      expectations,
-	    * is extensible by users, and
-	    * works on Linux, Mac OS X, Windows, Windows Mobile, minGW, and
-	      Symbian.
-
-	    http://code.google.com/p/googlemock/
-
-	  There are both host and target packages. The target one has include
-	  files required to compile the tests and the static libraries required
-	  to link/run them. The host package installs gmock_gen, a Python script
-	  used to generate code mocks.
-
-comment "gmock needs a toolchain w/ C++, wchar, threads"
-	depends on BR2_USE_MMU
-	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS ||

!BR2_INSTALL_LIBSTDCPP

package/gmock/gmock.hash deleted +0 -2
deleted file mode 100644
index 2b71739..0000000
@@ -1,2 +0,0 @@
-# Locally computed
-sha256 26fcbb5925b74ad5fc8c26b0495dfc96353f4d553492eb97e85a8a6d2f43095b

gmock-1.7.0.zip

package/gmock/gmock.mk deleted +0 -38
deleted file mode 100644
index 4f04422..0000000
@@ -1,64 +0,0 @@
-################################################################################
-#
-# gmock
-#
-################################################################################
-
-# Make sure this remains the same version as the gtest one
-GMOCK_VERSION = 1.7.0
-GMOCK_SOURCE = gmock-$(GMOCK_VERSION).zip
-GMOCK_SITE = http://googlemock.googlecode.com/files
-GMOCK_INSTALL_STAGING = YES
-GMOCK_INSTALL_TARGET = NO
-GMOCK_LICENSE = BSD-3c
-GMOCK_LICENSE_FILES = LICENSE
-GMOCK_DEPENDENCIES = gtest host-gmock
-
-# GMock 1.7.0 relies on Python 2.7 syntax which is NOT compatible with Python3.
-HOST_GMOCK_DEPENDENCIES = host-python
-HOST_GMOCK_PYTHONPATH=$(HOST_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages
-
-# Static linking is required in order to keep the GMock package completely
-# separated from GTest. According to GMock's README file:
-#
-#   "Google Mock can be used as a DLL, but the same DLL must contain Google
-#    Test as well.  See Google Test's README file for instructions on how to
-#    set up necessary compiler settings".
-GMOCK_CONF_OPTS = --enable-static --disable-shared
-
-define GMOCK_EXTRACT_CMDS
-	$(UNZIP) $(DL_DIR)/$(GMOCK_SOURCE) -d $(BUILD_DIR)
-endef
-
-# We can't use the default rule for autotools-package staging because it fails
-# because it tries to rebuild/install gtest stuff and fails after this error:
-#    "'make install' is dangerous and not supported. Instead, see README for
-#      how to integrate Google Test into your build system."
-define GMOCK_INSTALL_STAGING_CMDS
-	$(INSTALL) -D -m 0755 $(@D)/lib/.libs/libgmock.a

$(STAGING_DIR)/usr/lib/libgmock.a

package/gmock/gmock.mk deleted +0 -1
-	$(INSTALL) -D -m 0755 $(@D)/lib/.libs/libgmock_main.a

$(STAGING_DIR)/usr/lib/libgmock_main.a

package/gmock/gmock.mk deleted +0 -17
-	$(INSTALL) -d -m 0755 $(STAGING_DIR)/usr/include/gmock/
-	cp -rp $(@D)/include/gmock/* $(STAGING_DIR)/usr/include/gmock/
-	$(INSTALL) -D -m 0755 package/gmock/gmock.pc \
-		$(STAGING_DIR)/usr/lib/pkgconfig/gmock.pc
-endef
-
-# Unzipping inside $(@D) and moving everything from the created subdirectory is
-# required because unzipping directly in $(BUILD_DIR) would cause host-gmock to
-# overwrite the gmock subdir instead of unzipping in a host-gmock subdir.
-define HOST_GMOCK_EXTRACT_CMDS
-	$(UNZIP) $(DL_DIR)/$(GMOCK_SOURCE) -d $(@D)
-	mv $(@D)/gmock-$(GMOCK_VERSION)/* $(@D)
-	rmdir $(@D)/gmock-$(GMOCK_VERSION)
-endef
-
-define HOST_GMOCK_INSTALL_CMDS
-	$(INSTALL) -D -m 0755 $(@D)/scripts/generator/gmock_gen.py

$(HOST_DIR)/usr/bin/gmock_gen.py

package/gmock/gmock.mk deleted +0 -8
-	ln -sf gmock_gen.py $(HOST_DIR)/usr/bin/gmock_gen
-	cp -rp $(@D)/scripts/generator/cpp $(HOST_GMOCK_PYTHONPATH)
-endef
-
-$(eval $(autotools-package))
-# The host package does not build anything, just installs gmock_gen stuff, so
-# it does not need to be a host-autotools-package.
-$(eval $(host-generic-package))
package/gtest/Config.in +17 -1
index c07f13b..9f514da 100644
@@ -19,8 +19,35 @@ config BR2_PACKAGE_GTEST
 	  This package allows running testsuites on the target which
 	  might be advantageous in certain cases.
 
-	  http://code.google.com/p/googletest/
+	  https://github.com/google/googletest
+
+if BR2_PACKAGE_GTEST
+
+config BR2_PACKAGE_GTEST_GMOCK
+	bool "gmock"
+	help
+	  Inspired by jMock, EasyMock, and Hamcrest, and designed with C++'s
+	  specifics in mind, Google C++ Mocking Framework (or Google Mock for
+	  short) is a library for writing and using C++ mock classes.
+
+	  Google Mock:
+
+	    * lets you create mock classes trivially using simple macros,
+	    * supports a rich set of matchers and actions,
+	    * handles unordered, partially ordered, or completely ordered
+	      expectations,

package/gtest/Config.in config BR2_PACKAGE_GTEST · line 48

Quoted 10 lines
package/gtest/Config.in +10 -0
+	    * is extensible by users, and
+	    * works on Linux, Mac OS X, Windows, Windows Mobile, minGW, and
+	      Symbian.
+
+	  There are both host and target packages. The target one has include
+	  files required to compile the tests and the static libraries required
+	  to link/run them. The host package installs gmock_gen, a Python script
+	  used to generate code mocks.
+
+endif # BR2_PACKAGE_GTEST

Here you are removing the "gmock" package and replacing it by an option that resembles a package. This breaks the build of any package declaring "gmock" in its dependency list because there is no such package. I think I have a solution for this problem but I will need some time to work on it this afternoon.

Carlos Santos (Casantos)
DATACOM, P&D

#2 lore raw

PATCH 1/1 gtest/gmock: bump to version 1.8.0

In reply to Fabrice Fontaine

From: Fabrice Fontaine <[email protected]>

Version 1.8.0 now includes gmock so merge gmock package inside gtest.

In this merge:
- Add gmock as a suboption of gtest (BR2_PACKAGE_GTEST_GMOCK) following advice from Arnout Vandecappelle
- Make gmock a virtual package that selects BR2_PACKAGE_GTEST and BR2_PACKAGE_GTEST_GMOCK, to provide backward compatibility
- Use cmake to install libraries and headers and add missing files (gtest.pc, gtest-config, gmock.pc) in GTEST_POST_INSTALL_STAGING_HOOKS instead of redefining GTEST_INSTALL_STAGING_CMDS
- Remove patch on Python as gmock/gtest now supports python 3.0 (commit 456fc2b5c4e9ebf05a5987dfe1ff0ac9ffeb53cc)
- Add the correct license in HOST_GTEST_LICENSE as all python code in googlemock/scripts/generator is licensed under Apache-2.0 and not BSD-3c
- Fix URL of gtest project in Config.in

---
 package/gmock/0001-force-use-python2.patch | 20 ----------
 package/gmock/Config.in                    | 26 +++++--------
 package/gmock/gmock.hash                   |  2 -
 package/gmock/gmock.mk                     | 59 +-----------------------------
 package/gtest/Config.in                    | 28 +++++++++++++-
 package/{gmock => gtest}/gmock.pc          |  2 +-
 package/gtest/gtest.hash                   |  2 +-
 package/gtest/gtest.mk                     | 52 +++++++++++++++++++++-----
 package/gtest/gtest.pc                     |  2 +-
 9 files changed, 83 insertions(+), 110 deletions(-)
 delete mode 100644 package/gmock/0001-force-use-python2.patch
 delete mode 100644 package/gmock/gmock.hash
 rename package/{gmock => gtest}/gmock.pc (93%)
package/gmock/0001-force-use-python2.patch deleted +0 -20
deleted file mode 100644
index 5dcb231..0000000
@@ -1,20 +0,0 @@
-Force use of Python 2 even when Python 3 is the default Python interpreter.
-
-Signed-off-by: Carlos Santos <[email protected]>
-
---- ./gtest/scripts/fuse_gtest_files.py.orig	2013-09-18 14:48:30.000000000 -0300
-+++ ./gtest/scripts/fuse_gtest_files.py	2015-07-22 15:42:53.291591205 -0300
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python2
- #
- # Copyright 2009, Google Inc.
- # All rights reserved.
---- ./scripts/generator/gmock_gen.py.orig	2013-09-18 14:50:15.000000000 -0300
-+++ ./scripts/generator/gmock_gen.py	2015-07-22 17:06:51.071815634 -0300
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python2
- #
- # Copyright 2008 Google Inc. All Rights Reserved.
- #
package/gmock/Config.in +9 -17
index ec3eb92..c2b36f3 100644
@@ -1,31 +1,23 @@
 config BR2_PACKAGE_GMOCK
 	bool "gmock"
 	select BR2_PACKAGE_GTEST
+	select BR2_PACKAGE_GTEST_GMOCK
 	depends on BR2_USE_WCHAR
 	depends on BR2_TOOLCHAIN_HAS_THREADS
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_USE_MMU # fork()
 	help
-	  Inspired by jMock, EasyMock, and Hamcrest, and designed with C++'s
-	  specifics in mind, Google C++ Mocking Framework (or Google Mock for
-	  short) is a library for writing and using C++ mock classes.
+	  This virtual package provides backward compatibility for
+	  packages that depend on the old "gmock" package, whose
+	  functionality is provided by "gtest", now.
 
-	  Google Mock:
+if BR2_PACKAGE_GMOCK
 
-	    * lets you create mock classes trivially using simple macros,
-	    * supports a rich set of matchers and actions,
-	    * handles unordered, partially ordered, or completely ordered
-	      expectations,
-	    * is extensible by users, and
-	    * works on Linux, Mac OS X, Windows, Windows Mobile, minGW, and
-	      Symbian.
+config BR2_PACKAGE_PROVIDES_GMOCK
+	string
+	default "gtest"
 
-	    http://code.google.com/p/googlemock/
-
-	  There are both host and target packages. The target one has include
-	  files required to compile the tests and the static libraries required
-	  to link/run them. The host package installs gmock_gen, a Python script
-	  used to generate code mocks.
+endif
 
 comment "gmock needs a toolchain w/ C++, wchar, threads"
 	depends on BR2_USE_MMU
package/gmock/gmock.hash deleted +0 -2
deleted file mode 100644
index 2b71739..0000000
@@ -1,2 +0,0 @@
-# Locally computed
-sha256 26fcbb5925b74ad5fc8c26b0495dfc96353f4d553492eb97e85a8a6d2f43095b  gmock-1.7.0.zip
package/gmock/gmock.mk +1 -58

62 lines not on this page · raw message

package/gtest/Config.in +27 -1
index c07f13b..3b0b5d5 100644
@@ -19,7 +19,33 @@ config BR2_PACKAGE_GTEST
 	  This package allows running testsuites on the target which
 	  might be advantageous in certain cases.
 
-	  http://code.google.com/p/googletest/
+	  https://github.com/google/googletest
+
+if BR2_PACKAGE_GTEST
+
+config BR2_PACKAGE_GTEST_GMOCK
+	bool "Build the C++ mocking framework (gmock)"
+	help
+	  Inspired by jMock, EasyMock, and Hamcrest, and designed with C++'s
+	  specifics in mind, Google C++ Mocking Framework (or Google Mock for
+	  short) is a library for writing and using C++ mock classes.
+
+	  Google Mock:
+
+	    * lets you create mock classes trivially using simple macros,
+	    * supports a rich set of matchers and actions,
+	    * handles unordered, partially ordered, or completely ordered
+	      expectations,
+	    * is extensible by users, and
+	    * works on Linux, Mac OS X, Windows, Windows Mobile, minGW, and
+	      Symbian.
+
+	  There are both host and target packages. The target one has include
+	  files required to compile the tests and the static libraries required
+	  to link/run them. The host package installs gmock_gen, a Python script
+	  used to generate code mocks.
+
+endif # BR2_PACKAGE_GTEST
 
 comment "gtest needs a toolchain w/ C++, wchar, threads"
 	depends on BR2_USE_MMU
package/gtest/gmock.pc renamed from package/gmock/gmock.pc +1 -1
similarity index 93%
rename from package/gmock/gmock.pc
rename to package/gtest/gmock.pc
index 2f90068..4c72354 100644
@@ -5,7 +5,7 @@ includedir=${prefix}/include
 
 Name: gmock
 Description: Google C++ Mocking Framework
-Version: 1.7.0
+Version: 1.8.0
 Libs: -L${libdir} -lgmock
 Libs.private: -lpthread
 Cflags: -I${includedir}
package/gtest/gtest.hash +1 -1
index 79e31e4..474008d 100644
@@ -1,2 +1,2 @@
 # Locally computed:
-sha256	f73a6546fdf9fce9ff93a5015e0333a8af3062a152a9ad6bcb772c96687016cc	gtest-release-1.7.0.tar.gz
+sha256	58a6f4277ca2bc8565222b3bbd58a177609e9c488e8a72649359ba51450db7d8	gtest-release-1.8.0.tar.gz
package/gtest/gtest.mk +43 -9

76 lines not on this page · raw message

package/gtest/gtest.pc +1 -1
index b7a8aa4..594e79d 100644
@@ -5,7 +5,7 @@ includedir=${prefix}/include
 
 Name: gtest
 Description: Google C++ Testing Framework
-Version: 1.7.0
+Version: 1.8.0
 Libs: -L${libdir} -lgtest
 Libs.private: -lpthread
 Cflags: -I${includedir}
Signature · 1 line
2.7.4
#3 lore raw

PATCH v2 1/1 gtest/gmock: bump to version 1.8.0

From: Fabrice Fontaine <[email protected]>

Version 1.8.0 now includes gmock so merge gmock package inside gtest.

In this merge:
- Add gmock as a suboption of gtest (BR2_PACKAGE_GTEST_GMOCK) following advice from Arnout Vandecappelle
- Make gmock a virtual package that selects BR2_PACKAGE_GTEST and BR2_PACKAGE_GTEST_GMOCK, to provide backward compatibility
- Use cmake to install libraries and headers and add missing files (gtest.pc, gtest-config, gmock.pc) in GTEST_POST_INSTALL_STAGING_HOOKS instead of redefining GTEST_INSTALL_STAGING_CMDS
- Remove patch on Python as gmock/gtest now supports python 3.0 (commit 456fc2b5c4e9ebf05a5987dfe1ff0ac9ffeb53cc)
- Add the correct license in HOST_GTEST_LICENSE as all python code in googlemock/scripts/generator is licensed under Apache-2.0 and not BSD-3c
- Fix URL of gtest project in Config.in

---
Changes v1 -> v2
- Add mirtual package for host-gmock, as pointed-out by Arnout Vandecappelle.

---
 package/gmock/0001-force-use-python2.patch | 20 ----------
 package/gmock/Config.in                    | 26 +++++--------
 package/gmock/gmock.hash                   |  2 -
 package/gmock/gmock.mk                     | 60 +-----------------------------
 package/gtest/Config.in                    | 28 +++++++++++++-
 package/{gmock => gtest}/gmock.pc          |  2 +-
 package/gtest/gtest.hash                   |  2 +-
 package/gtest/gtest.mk                     | 52 +++++++++++++++++++++-----
 package/gtest/gtest.pc                     |  2 +-
 9 files changed, 84 insertions(+), 110 deletions(-)
 delete mode 100644 package/gmock/0001-force-use-python2.patch
 delete mode 100644 package/gmock/gmock.hash
 rename package/{gmock => gtest}/gmock.pc (93%)
package/gmock/0001-force-use-python2.patch deleted +0 -20
deleted file mode 100644
index 5dcb231..0000000
@@ -1,20 +0,0 @@
-Force use of Python 2 even when Python 3 is the default Python interpreter.
-
-Signed-off-by: Carlos Santos <[email protected]>
-
---- ./gtest/scripts/fuse_gtest_files.py.orig	2013-09-18 14:48:30.000000000 -0300
-+++ ./gtest/scripts/fuse_gtest_files.py	2015-07-22 15:42:53.291591205 -0300
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python2
- #
- # Copyright 2009, Google Inc.
- # All rights reserved.
---- ./scripts/generator/gmock_gen.py.orig	2013-09-18 14:50:15.000000000 -0300
-+++ ./scripts/generator/gmock_gen.py	2015-07-22 17:06:51.071815634 -0300
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python2
- #
- # Copyright 2008 Google Inc. All Rights Reserved.
- #
package/gmock/Config.in +9 -17
index ec3eb92..c2b36f3 100644
@@ -1,31 +1,23 @@
 config BR2_PACKAGE_GMOCK
 	bool "gmock"
 	select BR2_PACKAGE_GTEST
+	select BR2_PACKAGE_GTEST_GMOCK
 	depends on BR2_USE_WCHAR
 	depends on BR2_TOOLCHAIN_HAS_THREADS
 	depends on BR2_INSTALL_LIBSTDCPP
 	depends on BR2_USE_MMU # fork()
 	help
-	  Inspired by jMock, EasyMock, and Hamcrest, and designed with C++'s
-	  specifics in mind, Google C++ Mocking Framework (or Google Mock for
-	  short) is a library for writing and using C++ mock classes.
+	  This virtual package provides backward compatibility for
+	  packages that depend on the old "gmock" package, whose
+	  functionality is provided by "gtest", now.
 
-	  Google Mock:
+if BR2_PACKAGE_GMOCK
 
-	    * lets you create mock classes trivially using simple macros,
-	    * supports a rich set of matchers and actions,
-	    * handles unordered, partially ordered, or completely ordered
-	      expectations,
-	    * is extensible by users, and
-	    * works on Linux, Mac OS X, Windows, Windows Mobile, minGW, and
-	      Symbian.
+config BR2_PACKAGE_PROVIDES_GMOCK
+	string
+	default "gtest"
 
-	    http://code.google.com/p/googlemock/
-
-	  There are both host and target packages. The target one has include
-	  files required to compile the tests and the static libraries required
-	  to link/run them. The host package installs gmock_gen, a Python script
-	  used to generate code mocks.
+endif
 
 comment "gmock needs a toolchain w/ C++, wchar, threads"
 	depends on BR2_USE_MMU
package/gmock/gmock.hash deleted +0 -2
deleted file mode 100644
index 2b71739..0000000
@@ -1,2 +0,0 @@
-# Locally computed
-sha256 26fcbb5925b74ad5fc8c26b0495dfc96353f4d553492eb97e85a8a6d2f43095b  gmock-1.7.0.zip
package/gmock/gmock.mk +2 -58

63 lines not on this page · raw message

package/gtest/Config.in +27 -1
index c07f13b..3b0b5d5 100644
@@ -19,7 +19,33 @@ config BR2_PACKAGE_GTEST
 	  This package allows running testsuites on the target which
 	  might be advantageous in certain cases.
 
-	  http://code.google.com/p/googletest/
+	  https://github.com/google/googletest
+
+if BR2_PACKAGE_GTEST
+
+config BR2_PACKAGE_GTEST_GMOCK
+	bool "Build the C++ mocking framework (gmock)"
+	help
+	  Inspired by jMock, EasyMock, and Hamcrest, and designed with C++'s
+	  specifics in mind, Google C++ Mocking Framework (or Google Mock for
+	  short) is a library for writing and using C++ mock classes.
+
+	  Google Mock:
+
+	    * lets you create mock classes trivially using simple macros,
+	    * supports a rich set of matchers and actions,
+	    * handles unordered, partially ordered, or completely ordered
+	      expectations,
+	    * is extensible by users, and
+	    * works on Linux, Mac OS X, Windows, Windows Mobile, minGW, and
+	      Symbian.
+
+	  There are both host and target packages. The target one has include
+	  files required to compile the tests and the static libraries required
+	  to link/run them. The host package installs gmock_gen, a Python script
+	  used to generate code mocks.
+
+endif # BR2_PACKAGE_GTEST
 
 comment "gtest needs a toolchain w/ C++, wchar, threads"
 	depends on BR2_USE_MMU
package/gtest/gmock.pc renamed from package/gmock/gmock.pc +1 -1
similarity index 93%
rename from package/gmock/gmock.pc
rename to package/gtest/gmock.pc
index 2f90068..4c72354 100644
@@ -5,7 +5,7 @@ includedir=${prefix}/include
 
 Name: gmock
 Description: Google C++ Mocking Framework
-Version: 1.7.0
+Version: 1.8.0
 Libs: -L${libdir} -lgmock
 Libs.private: -lpthread
 Cflags: -I${includedir}
package/gtest/gtest.hash +1 -1
index 79e31e4..474008d 100644
@@ -1,2 +1,2 @@
 # Locally computed:
-sha256	f73a6546fdf9fce9ff93a5015e0333a8af3062a152a9ad6bcb772c96687016cc	gtest-release-1.7.0.tar.gz
+sha256	58a6f4277ca2bc8565222b3bbd58a177609e9c488e8a72649359ba51450db7d8	gtest-release-1.8.0.tar.gz
package/gtest/gtest.mk +43 -9

76 lines not on this page · raw message

package/gtest/gtest.pc +1 -1
index b7a8aa4..594e79d 100644
@@ -5,7 +5,7 @@ includedir=${prefix}/include
 
 Name: gtest
 Description: Google C++ Testing Framework
-Version: 1.7.0
+Version: 1.8.0
 Libs: -L${libdir} -lgtest
 Libs.private: -lpthread
 Cflags: -I${includedir}
Signature · 1 line
2.7.4
#4 lore raw

PATCH v2 1/1 gtest/gmock: bump to version 1.8.0

Big patch, so lots of comments on this one...

Quoted 9 lines · Carlos Santos

From: Fabrice Fontaine <[email protected]>

Version 1.8.0 now includes gmock so merge gmock package inside gtest.

In this merge:
- Add gmock as a suboption of gtest (BR2_PACKAGE_GTEST_GMOCK) following advice from Arnout Vandecappelle
- Make gmock a virtual package that selects BR2_PACKAGE_GTEST and BR2_PACKAGE_GTEST_GMOCK, to provide backward compatibility

I don't think this is a good idea.

* It means we have to keep on supporting the BR2_PACKAGE_GMOCK option for some time. Let's say two years down the line we decide to remove it, it means we have to move it to legacy at that time. So long term, we gain exactly nothing.
* The legacy approach works perfectly. The Config.in.legacy entry will make sure that the package remains selected. If an external package depends on gmock, you'll get an immediate build termination because make doesn't know how to build gmock. Since the user has just removed gmock from the legacy menu, it should be quite obvious what needs to be done.
* This is abusing the virtual package infra for something it wasn't meant for. We want to avoid adding bad examples to buildroot.

Quoted 11 lines

- Use cmake to install libraries and headers and add missing files (gtest.pc, gtest-config, gmock.pc) in GTEST_POST_INSTALL_STAGING_HOOKS instead of redefining GTEST_INSTALL_STAGING_CMDS
- Remove patch on Python as gmock/gtest now supports python 3.0 (commit 456fc2b5c4e9ebf05a5987dfe1ff0ac9ffeb53cc)
- Add the correct license in HOST_GTEST_LICENSE as all python code in googlemock/scripts/generator is licensed under Apache-2.0 and not BSD-3c
- Fix URL of gtest project in Config.in

Quoted 7 lines

---
Changes v1 -> v2
- Add mirtual package for host-gmock, as pointed-out by Arnout Vandecappelle.

Well, no, I never mentioned virtual-package, I said to add a legacy entry.

Quoted 16 lines
---
 package/gmock/0001-force-use-python2.patch | 20 ----------
 package/gmock/Config.in                    | 26 +++++--------
 package/gmock/gmock.hash                   |  2 -
 package/gmock/gmock.mk                     | 60 +-----------------------------
 package/gtest/Config.in                    | 28 +++++++++++++-
 package/{gmock => gtest}/gmock.pc          |  2 +-
 package/gtest/gtest.hash                   |  2 +-
 package/gtest/gtest.mk                     | 52 +++++++++++++++++++++-----
 package/gtest/gtest.pc                     |  2 +-
 9 files changed, 84 insertions(+), 110 deletions(-)
 delete mode 100644 package/gmock/0001-force-use-python2.patch
 delete mode 100644 package/gmock/gmock.hash
 rename package/{gmock => gtest}/gmock.pc (93%)

[snip]

Quoted 10 lines
package/gtest/gtest.mk +0 -2
index eb30905..249971e 100644
@@ -4,13 +4,27 @@
 #
 ################################################################################
 
-# Make sure this remains the same version as the gmock one
-GTEST_VERSION = release-1.7.0

package/gtest/gtest.mk line 15

Quoted 10 lines
package/gtest/gtest.mk +5 -1
+GTEST_VERSION = release-1.8.0
 GTEST_SITE = $(call github,google,googletest,$(GTEST_VERSION))
 GTEST_INSTALL_STAGING = YES
 GTEST_INSTALL_TARGET = NO
 GTEST_LICENSE = BSD-3c
-GTEST_LICENSE_FILES = LICENSE
+GTEST_LICENSE_FILES = googletest/LICENSE
+
+ifeq ($(BR2_PACKAGE_GTEST_GMOCK),y)
+GTEST_LICENSE_FILES += googlemock/LICENSE

It has the same content, so it doesn't make sense adding it. Since it's now a
single package, a single license file is definitely enough.

package/gtest/gtest.mk line 18

Quoted 3 lines
package/gtest/gtest.mk +3 -0
+GTEST_DEPENDENCIES = host-gtest
+
+HOST_GTEST_LICENSE = Apache-2.0

This is so weird that it deserves a separate comment.

# HOST_GTEST is just the generator script, which has a different license

# than the rest of gtest. Also, the generator script is not installed on
# target so its license doesn't need to be mentioned for the target package.

package/gtest/gtest.mk line 20

Quoted 2 lines
package/gtest/gtest.mk +2 -0
+HOST_GTEST_LICENSE_FILES = googlemock/scripts/generator/LICENSE
+HOST_GTEST_DEPENDENCIES = host-python

Is the host-python dependency still needed? If python-2.6 doesn't work, yes it
is, but then there should be a comment. But the README file says "Python 2.3.5 or later"...

All this HOST_GTEST stuff should be defined unconditionally.

package/gtest/gtest.mk line 23

Quoted 3 lines
package/gtest/gtest.mk +3 -0
+else
+# By default, gtest also builds gmock
+GTEST_SUBDIR = googletest

Actually, the top-level CMakeLists has the options BUILD_GTEST and BUILD_GMOCK
(the latter implies the former in a rather complicated way). It's better to use those rather than messing with SUBDIR.

Quoted 31 lines
package/gtest/gtest.mk +7 -6
+endif
+
+HOST_GTEST_GMOCK_PYTHONPATH = \
+        $(HOST_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages
 
 # While it is possible to build gtest as shared library, using this gtest shared
 # library requires to set some special configure option in the project using
@@ -21,11 +35,7 @@ GTEST_LICENSE_FILES = LICENSE
 # the gtest sources.
 GTEST_CONF_OPTS = -DBUILD_SHARED_LIBS=OFF
 
-define GTEST_INSTALL_STAGING_CMDS
-	$(INSTALL) -D -m 0755 $(@D)/libgtest.a $(STAGING_DIR)/usr/lib/libgtest.a
-	$(INSTALL) -D -m 0755 $(@D)/libgtest_main.a $(STAGING_DIR)/usr/lib/libgtest_main.a
-	$(INSTALL) -d -m 0755 $(STAGING_DIR)/usr/include/gtest/
-	cp -rp $(@D)/include/gtest/* $(STAGING_DIR)/usr/include/gtest/
+define GTEST_INSTALL_MISSING_FILES
 	$(INSTALL) -D -m 0644 package/gtest/gtest.pc \
 		$(STAGING_DIR)/usr/lib/pkgconfig/gtest.pc
 	# Generate the gtest-config script manually, since the CMake
@@ -39,9 +49,33 @@ define GTEST_INSTALL_STAGING_CMDS
 		s%@bindir@%$(STAGING_DIR)/usr/bin%;\
 		s%@PTHREAD_CFLAGS@%%;\
 		s%@PTHREAD_LIBS@%-lpthread%;' \
-		$(@D)/scripts/gtest-config.in \
+		$(@D)/googletest/scripts/gtest-config.in \
 		> $(STAGING_DIR)/usr/bin/gtest-config
 	chmod +x $(STAGING_DIR)/usr/bin/gtest-config
 endef
 
+GTEST_POST_INSTALL_STAGING_HOOKS += GTEST_INSTALL_MISSING_FILES

package/gtest/gtest.mk define GTEST_INSTALL_STAGING_CMDS · line 67

Quoted 10 lines
package/gtest/gtest.mk +10 -0
+
+ifeq ($(BR2_PACKAGE_GTEST_GMOCK),y)
+define GTEST_GMOCK_INSTALL_MISSING_FILE
+	$(INSTALL) -D -m 0755 package/gtest/gmock.pc \
+		$(STAGING_DIR)/usr/lib/pkgconfig/gmock.pc
+endef
+
+GTEST_POST_INSTALL_STAGING_HOOKS += GTEST_GMOCK_INSTALL_MISSING_FILE
+
+define HOST_GTEST_INSTALL_CMDS

This shouldn't be inside the GTEST_GMOCK condition.

package/gtest/gtest.mk define GTEST_INSTALL_STAGING_CMDS · line 72

Quoted 5 lines
package/gtest/gtest.mk +5 -0
+	$(INSTALL) -D -m 0755 $(@D)/googlemock/scripts/generator/gmock_gen.py \
+		$(HOST_DIR)/usr/bin/gmock_gen.py
+	ln -sf gmock_gen.py $(HOST_DIR)/usr/bin/gmock_gen
+	cp -rp $(@D)/googlemock/scripts/generator/cpp \
+		$(HOST_GTEST_GMOCK_PYTHONPATH)

This is just copied from the current implementation, so OK. However, now I look
like it, this seems a really twisted way of installing this script. The normal approach would be

	mkdir -p $(HOST_DIR)/usr/lib/gmock
	cp -r $(@D)/googlemock/scripts/generator/* $(HOST_DIR)/usr/lib/gmock
	ln -sf ../lib/gmock/gmock_gen.py $(HOST_DIR)/usr/bin/gmock_gen

I.e. install the script itself together with the libraries it imports, and
symlink to it from $PATH. This way, the script will find the libraries by itself (it extends sys.path with $0).

That way, the script is also usable with the system's python. So, unless you
make this change, the host-python dependency really _is_ needed, otherwise the gmock_gen imports won't be found when executing the script.

package/gtest/gtest.mk define GTEST_INSTALL_STAGING_CMDS · line 77

Quoted 5 lines
package/gtest/gtest.mk +4 -0
+endef
+endif
+
 $(eval $(cmake-package))
+ifeq ($(BR2_PACKAGE_GTEST_GMOCK),y)

This should _definitely_ not be in the GTEST_GMOCK condition. We never let the
package definition itself depend on the config options.

Regards,
Arnout

Quoted 18 lines
package/gtest/gtest.mk +4 -0
+# The host package does not build anything, just installs gmock_gen stuff, so
+# it does not need to be a host-cmake-package.
+$(eval $(host-generic-package))
+endif
package/gtest/gtest.pc +1 -1
index b7a8aa4..594e79d 100644
@@ -5,7 +5,7 @@ includedir=${prefix}/include
 
 Name: gtest
 Description: Google C++ Testing Framework
-Version: 1.7.0
+Version: 1.8.0
 Libs: -L${libdir} -lgtest
 Libs.private: -lpthread
 Cflags: -I${includedir}
Signature · 6 lines
Arnout Vandecappelle                          arnout at mind be
Senior Embedded Software Architect            +32-16-286500
Essensium/Mind                                http://www.mind.be
G.Geenslaan 9, 3001 Leuven, Belgium           BE 872 984 063 RPR Leuven
LinkedIn profile: http://www.linkedin.com/in/arnoutvandecappelle
GPG fingerprint:  7493 020B C7E3 8618 8DEC 222C 82EB F404 F9AC 0DDF
#5 lore raw

PATCH v2 1/1 gtest/gmock: bump to version 1.8.0

Hi Carlos, Fabrice, All,

I removed the last remaining gtest related patch [1] from patchwork since the gtest/gmock 1.8.0 is now available.

What's the status of this patch bump?
Can you send an updated version?

Thanks!

Best regards,
Romain

[1] http://patchwork.ozlabs.org/patch/667729/

Le 11/09/2016 ? 14:09, Arnout Vandecappelle a ?crit :

Quoted 215 lines

Big patch, so lots of comments on this one...

Quoted 9 lines · Carlos Santos

From: Fabrice Fontaine <[email protected]>

Version 1.8.0 now includes gmock so merge gmock package inside gtest.

In this merge:
- Add gmock as a suboption of gtest (BR2_PACKAGE_GTEST_GMOCK) following advice from Arnout Vandecappelle
- Make gmock a virtual package that selects BR2_PACKAGE_GTEST and BR2_PACKAGE_GTEST_GMOCK, to provide backward compatibility

I don't think this is a good idea.

* It means we have to keep on supporting the BR2_PACKAGE_GMOCK option for some time. Let's say two years down the line we decide to remove it, it means we have to move it to legacy at that time. So long term, we gain exactly nothing.
* The legacy approach works perfectly. The Config.in.legacy entry will make sure that the package remains selected. If an external package depends on gmock, you'll get an immediate build termination because make doesn't know how to build gmock. Since the user has just removed gmock from the legacy menu, it should be quite obvious what needs to be done.
* This is abusing the virtual package infra for something it wasn't meant for. We want to avoid adding bad examples to buildroot.

Quoted 11 lines

- Use cmake to install libraries and headers and add missing files (gtest.pc, gtest-config, gmock.pc) in GTEST_POST_INSTALL_STAGING_HOOKS instead of redefining GTEST_INSTALL_STAGING_CMDS
- Remove patch on Python as gmock/gtest now supports python 3.0 (commit 456fc2b5c4e9ebf05a5987dfe1ff0ac9ffeb53cc)
- Add the correct license in HOST_GTEST_LICENSE as all python code in googlemock/scripts/generator is licensed under Apache-2.0 and not BSD-3c
- Fix URL of gtest project in Config.in

Quoted 7 lines

---
Changes v1 -> v2
- Add mirtual package for host-gmock, as pointed-out by Arnout Vandecappelle.

Well, no, I never mentioned virtual-package, I said to add a legacy entry.

Quoted 16 lines
---
 package/gmock/0001-force-use-python2.patch | 20 ----------
 package/gmock/Config.in                    | 26 +++++--------
 package/gmock/gmock.hash                   |  2 -
 package/gmock/gmock.mk                     | 60 +-----------------------------
 package/gtest/Config.in                    | 28 +++++++++++++-
 package/{gmock => gtest}/gmock.pc          |  2 +-
 package/gtest/gtest.hash                   |  2 +-
 package/gtest/gtest.mk                     | 52 +++++++++++++++++++++-----
 package/gtest/gtest.pc                     |  2 +-
 9 files changed, 84 insertions(+), 110 deletions(-)
 delete mode 100644 package/gmock/0001-force-use-python2.patch
 delete mode 100644 package/gmock/gmock.hash
 rename package/{gmock => gtest}/gmock.pc (93%)

[snip]

Quoted 10 lines
package/gtest/gtest.mk +0 -2
index eb30905..249971e 100644
@@ -4,13 +4,27 @@
 #
 ################################################################################
 
-# Make sure this remains the same version as the gmock one
-GTEST_VERSION = release-1.7.0

package/gtest/gtest.mk line 15

Quoted 10 lines
package/gtest/gtest.mk +5 -1
+GTEST_VERSION = release-1.8.0
 GTEST_SITE = $(call github,google,googletest,$(GTEST_VERSION))
 GTEST_INSTALL_STAGING = YES
 GTEST_INSTALL_TARGET = NO
 GTEST_LICENSE = BSD-3c
-GTEST_LICENSE_FILES = LICENSE
+GTEST_LICENSE_FILES = googletest/LICENSE
+
+ifeq ($(BR2_PACKAGE_GTEST_GMOCK),y)
+GTEST_LICENSE_FILES += googlemock/LICENSE

It has the same content, so it doesn't make sense adding it. Since it's now a
single package, a single license file is definitely enough.

package/gtest/gtest.mk line 18

Quoted 3 lines
package/gtest/gtest.mk +3 -0
+GTEST_DEPENDENCIES = host-gtest
+
+HOST_GTEST_LICENSE = Apache-2.0

This is so weird that it deserves a separate comment.

# HOST_GTEST is just the generator script, which has a different license

# than the rest of gtest. Also, the generator script is not installed on
# target so its license doesn't need to be mentioned for the target package.

package/gtest/gtest.mk line 20

Quoted 2 lines
package/gtest/gtest.mk +2 -0
+HOST_GTEST_LICENSE_FILES = googlemock/scripts/generator/LICENSE
+HOST_GTEST_DEPENDENCIES = host-python

Is the host-python dependency still needed? If python-2.6 doesn't work, yes it
is, but then there should be a comment. But the README file says "Python 2.3.5 or later"...

All this HOST_GTEST stuff should be defined unconditionally.

package/gtest/gtest.mk line 23

Quoted 3 lines
package/gtest/gtest.mk +3 -0
+else
+# By default, gtest also builds gmock
+GTEST_SUBDIR = googletest

Actually, the top-level CMakeLists has the options BUILD_GTEST and BUILD_GMOCK
(the latter implies the former in a rather complicated way). It's better to use those rather than messing with SUBDIR.

Quoted 31 lines
package/gtest/gtest.mk +7 -6
+endif
+
+HOST_GTEST_GMOCK_PYTHONPATH = \
+        $(HOST_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages
 
 # While it is possible to build gtest as shared library, using this gtest shared
 # library requires to set some special configure option in the project using
@@ -21,11 +35,7 @@ GTEST_LICENSE_FILES = LICENSE
 # the gtest sources.
 GTEST_CONF_OPTS = -DBUILD_SHARED_LIBS=OFF
 
-define GTEST_INSTALL_STAGING_CMDS
-	$(INSTALL) -D -m 0755 $(@D)/libgtest.a $(STAGING_DIR)/usr/lib/libgtest.a
-	$(INSTALL) -D -m 0755 $(@D)/libgtest_main.a $(STAGING_DIR)/usr/lib/libgtest_main.a
-	$(INSTALL) -d -m 0755 $(STAGING_DIR)/usr/include/gtest/
-	cp -rp $(@D)/include/gtest/* $(STAGING_DIR)/usr/include/gtest/
+define GTEST_INSTALL_MISSING_FILES
 	$(INSTALL) -D -m 0644 package/gtest/gtest.pc \
 		$(STAGING_DIR)/usr/lib/pkgconfig/gtest.pc
 	# Generate the gtest-config script manually, since the CMake
@@ -39,9 +49,33 @@ define GTEST_INSTALL_STAGING_CMDS
 		s%@bindir@%$(STAGING_DIR)/usr/bin%;\
 		s%@PTHREAD_CFLAGS@%%;\
 		s%@PTHREAD_LIBS@%-lpthread%;' \
-		$(@D)/scripts/gtest-config.in \
+		$(@D)/googletest/scripts/gtest-config.in \
 		> $(STAGING_DIR)/usr/bin/gtest-config
 	chmod +x $(STAGING_DIR)/usr/bin/gtest-config
 endef
 
+GTEST_POST_INSTALL_STAGING_HOOKS += GTEST_INSTALL_MISSING_FILES

package/gtest/gtest.mk define GTEST_INSTALL_STAGING_CMDS · line 67

Quoted 10 lines
package/gtest/gtest.mk +10 -0
+
+ifeq ($(BR2_PACKAGE_GTEST_GMOCK),y)
+define GTEST_GMOCK_INSTALL_MISSING_FILE
+	$(INSTALL) -D -m 0755 package/gtest/gmock.pc \
+		$(STAGING_DIR)/usr/lib/pkgconfig/gmock.pc
+endef
+
+GTEST_POST_INSTALL_STAGING_HOOKS += GTEST_GMOCK_INSTALL_MISSING_FILE
+
+define HOST_GTEST_INSTALL_CMDS

This shouldn't be inside the GTEST_GMOCK condition.

package/gtest/gtest.mk define GTEST_INSTALL_STAGING_CMDS · line 72

Quoted 5 lines
package/gtest/gtest.mk +5 -0
+	$(INSTALL) -D -m 0755 $(@D)/googlemock/scripts/generator/gmock_gen.py \
+		$(HOST_DIR)/usr/bin/gmock_gen.py
+	ln -sf gmock_gen.py $(HOST_DIR)/usr/bin/gmock_gen
+	cp -rp $(@D)/googlemock/scripts/generator/cpp \
+		$(HOST_GTEST_GMOCK_PYTHONPATH)

This is just copied from the current implementation, so OK. However, now I look
like it, this seems a really twisted way of installing this script. The normal approach would be

	mkdir -p $(HOST_DIR)/usr/lib/gmock
	cp -r $(@D)/googlemock/scripts/generator/* $(HOST_DIR)/usr/lib/gmock
	ln -sf ../lib/gmock/gmock_gen.py $(HOST_DIR)/usr/bin/gmock_gen

I.e. install the script itself together with the libraries it imports, and
symlink to it from $PATH. This way, the script will find the libraries by itself (it extends sys.path with $0).

That way, the script is also usable with the system's python. So, unless you
make this change, the host-python dependency really _is_ needed, otherwise the gmock_gen imports won't be found when executing the script.

package/gtest/gtest.mk define GTEST_INSTALL_STAGING_CMDS · line 77

Quoted 5 lines
package/gtest/gtest.mk +4 -0
+endef
+endif
+
 $(eval $(cmake-package))
+ifeq ($(BR2_PACKAGE_GTEST_GMOCK),y)

This should _definitely_ not be in the GTEST_GMOCK condition. We never let the
package definition itself depend on the config options.

Regards,
Arnout

Quoted 18 lines
package/gtest/gtest.mk +4 -0
+# The host package does not build anything, just installs gmock_gen stuff, so
+# it does not need to be a host-cmake-package.
+$(eval $(host-generic-package))
+endif
package/gtest/gtest.pc +1 -1
index b7a8aa4..594e79d 100644
@@ -5,7 +5,7 @@ includedir=${prefix}/include
 
 Name: gtest
 Description: Google C++ Testing Framework
-Version: 1.7.0
+Version: 1.8.0
 Libs: -L${libdir} -lgtest
 Libs.private: -lpthread
 Cflags: -I${includedir}
#6 lore raw

PATCH v2 1/1 gtest/gmock: bump to version 1.8.0

Quoted 15 lines

From: "Romain Naour" <[email protected]>
To: "Arnout Vandecappelle" <[email protected]>, "Carlos Santos" <[email protected]>, buildroot at buildroot.org
Cc: "fabrice fontaine" <[email protected]>, "fontaine fabrice" <[email protected]>, "Thomas Petazzoni" <[email protected]>
Sent: Monday, February 6, 2017 1:43:17 PM
Subject: Re: [Buildroot] [PATCH v2] gtest/gmock: bump to version 1.8.0

Hi Carlos, Fabrice, All,

I removed the last remaining gtest related patch [1] from patchwork since the gtest/gmock 1.8.0 is now available.

What's the status of this patch bump?
Can you send an updated version?

Quoted 6 lines

Thanks!

Best regards,
Romain

[1] http://patchwork.ozlabs.org/patch/667729/

I will probably have time to work on these GTest/Gmock issues again by Thursday.

Carlos Santos (Casantos) - DATACOM, P&D
?Something must be done. This is something. Therefore we must do it.? (from the BBC series ?Yes, Prime Minister?, ?Power to the people?)

#7 lore raw

PATCH v2 1/1 gtest/gmock: bump to version 1.8.0

Hi Carlos,

Le 06/02/2017 ? 17:46, Carlos Santos a ?crit :

Quoted 15 lines
Quoted 15 lines

From: "Romain Naour" <[email protected]>
To: "Arnout Vandecappelle" <[email protected]>, "Carlos Santos" <[email protected]>, buildroot at buildroot.org
Cc: "fabrice fontaine" <[email protected]>, "fontaine fabrice" <[email protected]>, "Thomas Petazzoni" <[email protected]>
Sent: Monday, February 6, 2017 1:43:17 PM
Subject: Re: [Buildroot] [PATCH v2] gtest/gmock: bump to version 1.8.0

Hi Carlos, Fabrice, All,

I removed the last remaining gtest related patch [1] from patchwork since the gtest/gmock 1.8.0 is now available.

What's the status of this patch bump?
Can you send an updated version?

Quoted 8 lines
Quoted 6 lines

Thanks!

Best regards,
Romain

[1] http://patchwork.ozlabs.org/patch/667729/

I will probably have time to work on these GTest/Gmock issues again by Thursday.

Great, thanks!

Best regards,
Romain

Quoted 5 lines

Carlos Santos (Casantos) - DATACOM, P&D
?Something must be done. This is something. Therefore we must do it.? (from the BBC series ?Yes, Prime Minister?, ?Power to the people?)

#8 lore raw

PATCH v3 1/1 gtest/gmock: bump to version 1.8.0

In reply to Carlos Santos

GTest version 1.8.0 includes gmock so merge both packages inside gtest

In this merge:

- Add gmock as a suboption of gtest (BR2_PACKAGE_GTEST_GMOCK) following advice from Arnout Vandecappelle
- Add BR2_PACKAGE_GMOCK as a legacy entry, selecting BR2_PACKAGE_GTEST and BR2_PACKAGE_GTEST_GMOCK.
- Use cmake to install libraries and headers and add missing files (gtest.pc, gtest-config, gmock.pc) in GTEST_POST_INSTALL_STAGING_HOOKS instead of redefining GTEST_INSTALL_STAGING_CMDS
- Remove patch on Python as gmock/gtest now supports python 3.0 (commit 456fc2b5c4e9ebf05a5987dfe1ff0ac9ffeb53cc)
- Add the correct license in HOST_GTEST_LICENSE as all python code in googlemock/scripts/generator is licensed under Apache-2.0 and not BSD-3c
- Fix URL of gtest project in Config.in
- Remove the gmock entry from DEVELOPERS

Notice that any external package that depends on gmock will cause an immediate build termination because make doesn't know how to build gmock. Since the user has just removed gmock from the legacy menu, it should be quite obvious what needs to be done.

---
Version history:

v1 (Fabrice Fontaine)
- Add gmock as a suboption
- Use cmake to install
- Remove patch on Python
- Add the correct license
- Fix URL of gtest project

v1->v2 (Carlos Santos)
- Add gmock a virtual package (yeah, yeah, big mistake)

v2->v3 (Carlos Santos)
- Got rid of the gmock virtual package (yeah, BIG mistake)
- Use $(PYTHON3_VERSION_MAJOR) to choose the Python version
- Several fixes, as suggested by Arnout Vandecappelle

---
 Config.in.legacy                           |  7 ++++
 DEVELOPERS                                 |  1 -
 package/Config.in                          |  1 -
 package/gmock/0001-force-use-python2.patch | 20 ----------
 package/gmock/Config.in                    | 32 ---------------
 package/gmock/gmock.hash                   |  2 -
 package/gmock/gmock.mk                     | 64 ------------------------------
 package/gtest/Config.in                    | 29 +++++++++++++-
 package/{gmock => gtest}/gmock.pc          |  2 +-
 package/gtest/gtest.hash                   |  2 +-
 package/gtest/gtest.mk                     | 59 ++++++++++++++++++++++-----
 package/gtest/gtest.pc                     |  2 +-
 12 files changed, 87 insertions(+), 134 deletions(-)
 delete mode 100644 package/gmock/0001-force-use-python2.patch
 delete mode 100644 package/gmock/Config.in
 delete mode 100644 package/gmock/gmock.hash
 delete mode 100644 package/gmock/gmock.mk
 rename package/{gmock => gtest}/gmock.pc (93%)
Config.in.legacy +7 -0
index 20445b8..23184e8 100644
@@ -145,6 +145,13 @@ endif
 ###############################################################################
 comment "Legacy options removed in 2017.02"
 
+config BR2_PACKAGE_GMOCK
+	bool "gmock removed"
+	select BR2_PACKAGE_GTEST
+	select BR2_PACKAGE_GTEST_GMOCK
+	help
+	  GMock is now a suboption of GTest
+
 config BR2_PACKAGE_PERL_DB_FILE
 	bool "perl-db-file removed"
 	select BR2_LEGACY
DEVELOPERS +0 -1
index 94f6804..5ff6223 100644
@@ -286,7 +286,6 @@ N:	Carlo Caione <[email protected]>
 F:	package/sunxi-boards/
 
 N:	Carlos Santos <[email protected]>
-F:	package/gmock/
 F:	package/gtest/
 F:	package/libpam-radius-auth/
 F:	package/libpam-tacplus/
package/Config.in +0 -1
index deff0fe..70e3fff 100644
@@ -1325,7 +1325,6 @@ menu "Other"
 	source "package/gflags/Config.in"
 	source "package/glibmm/Config.in"
 	source "package/glm/Config.in"
-	source "package/gmock/Config.in"
 	source "package/gmp/Config.in"
 	source "package/gsl/Config.in"
 	source "package/gtest/Config.in"
package/gmock/0001-force-use-python2.patch deleted +0 -20
deleted file mode 100644
index 5dcb231..0000000
@@ -1,20 +0,0 @@
-Force use of Python 2 even when Python 3 is the default Python interpreter.
-
-Signed-off-by: Carlos Santos <[email protected]>
-
---- ./gtest/scripts/fuse_gtest_files.py.orig	2013-09-18 14:48:30.000000000 -0300
-+++ ./gtest/scripts/fuse_gtest_files.py	2015-07-22 15:42:53.291591205 -0300
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python2
- #
- # Copyright 2009, Google Inc.
- # All rights reserved.
---- ./scripts/generator/gmock_gen.py.orig	2013-09-18 14:50:15.000000000 -0300
-+++ ./scripts/generator/gmock_gen.py	2015-07-22 17:06:51.071815634 -0300
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python2
- #
- # Copyright 2008 Google Inc. All Rights Reserved.
- #
package/gmock/Config.in deleted +0 -32
deleted file mode 100644
index ec3eb92..0000000
@@ -1,32 +0,0 @@
-config BR2_PACKAGE_GMOCK
-	bool "gmock"
-	select BR2_PACKAGE_GTEST
-	depends on BR2_USE_WCHAR
-	depends on BR2_TOOLCHAIN_HAS_THREADS
-	depends on BR2_INSTALL_LIBSTDCPP
-	depends on BR2_USE_MMU # fork()
-	help
-	  Inspired by jMock, EasyMock, and Hamcrest, and designed with C++'s
-	  specifics in mind, Google C++ Mocking Framework (or Google Mock for
-	  short) is a library for writing and using C++ mock classes.
-
-	  Google Mock:
-
-	    * lets you create mock classes trivially using simple macros,
-	    * supports a rich set of matchers and actions,
-	    * handles unordered, partially ordered, or completely ordered
-	      expectations,
-	    * is extensible by users, and
-	    * works on Linux, Mac OS X, Windows, Windows Mobile, minGW, and
-	      Symbian.
-
-	    http://code.google.com/p/googlemock/
-
-	  There are both host and target packages. The target one has include
-	  files required to compile the tests and the static libraries required
-	  to link/run them. The host package installs gmock_gen, a Python script
-	  used to generate code mocks.
-
-comment "gmock needs a toolchain w/ C++, wchar, threads"
-	depends on BR2_USE_MMU
-	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP
package/gmock/gmock.hash deleted +0 -2
deleted file mode 100644
index 2b71739..0000000
@@ -1,2 +0,0 @@
-# Locally computed
-sha256 26fcbb5925b74ad5fc8c26b0495dfc96353f4d553492eb97e85a8a6d2f43095b  gmock-1.7.0.zip
package/gmock/gmock.mk deleted +0 -64

64 lines not on this page · raw message

package/gtest/Config.in +28 -1
index 355b736..9f514da 100644
@@ -21,6 +21,33 @@ config BR2_PACKAGE_GTEST
 
 	  https://github.com/google/googletest
 
+if BR2_PACKAGE_GTEST
+
+config BR2_PACKAGE_GTEST_GMOCK
+	bool "gmock"
+	help
+	  Inspired by jMock, EasyMock, and Hamcrest, and designed with C++'s
+	  specifics in mind, Google C++ Mocking Framework (or Google Mock for
+	  short) is a library for writing and using C++ mock classes.
+
+	  Google Mock:
+
+	    * lets you create mock classes trivially using simple macros,
+	    * supports a rich set of matchers and actions,
+	    * handles unordered, partially ordered, or completely ordered
+	      expectations,
+	    * is extensible by users, and
+	    * works on Linux, Mac OS X, Windows, Windows Mobile, minGW, and
+	      Symbian.
+
+	  There are both host and target packages. The target one has include
+	  files required to compile the tests and the static libraries required
+	  to link/run them. The host package installs gmock_gen, a Python script
+	  used to generate code mocks.
+
+endif # BR2_PACKAGE_GTEST
+
 comment "gtest needs a toolchain w/ C++, wchar, threads"
 	depends on BR2_USE_MMU
-	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP
+	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
+		!BR2_INSTALL_LIBSTDCPP
package/gtest/gmock.pc renamed from package/gmock/gmock.pc +1 -1
similarity index 93%
rename from package/gmock/gmock.pc
rename to package/gtest/gmock.pc
index 2f90068..4c72354 100644
@@ -5,7 +5,7 @@ includedir=${prefix}/include
 
 Name: gmock
 Description: Google C++ Mocking Framework
-Version: 1.7.0
+Version: 1.8.0
 Libs: -L${libdir} -lgmock
 Libs.private: -lpthread
 Cflags: -I${includedir}
package/gtest/gtest.hash +1 -1
index 79e31e4..854ace8 100644
@@ -1,2 +1,2 @@
 # Locally computed:
-sha256	f73a6546fdf9fce9ff93a5015e0333a8af3062a152a9ad6bcb772c96687016cc	gtest-release-1.7.0.tar.gz
+sha256	58a6f4277ca2bc8565222b3bbd58a177609e9c488e8a72649359ba51450db7d8	gtest-1.8.0.tar.gz
package/gtest/gtest.mk +49 -10

82 lines not on this page · raw message

package/gtest/gtest.pc +1 -1
index b7a8aa4..594e79d 100644
@@ -5,7 +5,7 @@ includedir=${prefix}/include
 
 Name: gtest
 Description: Google C++ Testing Framework
-Version: 1.7.0
+Version: 1.8.0
 Libs: -L${libdir} -lgtest
 Libs.private: -lpthread
 Cflags: -I${includedir}
Signature · 1 line
2.7.4
#9 lore raw

PATCH v3 1/1 gtest/gmock: bump to version 1.8.0

Hi Carlos,

Thanks for this new version, I hope it will merged soon.

Le 11/02/2017 ? 12:32, Carlos Santos a ?crit :

Quoted 71 lines

GTest version 1.8.0 includes gmock so merge both packages inside gtest

In this merge:

- Add gmock as a suboption of gtest (BR2_PACKAGE_GTEST_GMOCK) following advice from Arnout Vandecappelle
- Add BR2_PACKAGE_GMOCK as a legacy entry, selecting BR2_PACKAGE_GTEST and BR2_PACKAGE_GTEST_GMOCK.
- Use cmake to install libraries and headers and add missing files (gtest.pc, gtest-config, gmock.pc) in GTEST_POST_INSTALL_STAGING_HOOKS instead of redefining GTEST_INSTALL_STAGING_CMDS
- Remove patch on Python as gmock/gtest now supports python 3.0 (commit 456fc2b5c4e9ebf05a5987dfe1ff0ac9ffeb53cc)
- Add the correct license in HOST_GTEST_LICENSE as all python code in googlemock/scripts/generator is licensed under Apache-2.0 and not BSD-3c
- Fix URL of gtest project in Config.in
- Remove the gmock entry from DEVELOPERS

Notice that any external package that depends on gmock will cause an immediate build termination because make doesn't know how to build gmock. Since the user has just removed gmock from the legacy menu, it should be quite obvious what needs to be done.

---
Version history:

v1 (Fabrice Fontaine)
- Add gmock as a suboption
- Use cmake to install
- Remove patch on Python
- Add the correct license
- Fix URL of gtest project

v1->v2 (Carlos Santos)
- Add gmock a virtual package (yeah, yeah, big mistake)

v2->v3 (Carlos Santos)
- Got rid of the gmock virtual package (yeah, BIG mistake)
- Use $(PYTHON3_VERSION_MAJOR) to choose the Python version
- Several fixes, as suggested by Arnout Vandecappelle

---
 Config.in.legacy                           |  7 ++++
 DEVELOPERS                                 |  1 -
 package/Config.in                          |  1 -
 package/gmock/0001-force-use-python2.patch | 20 ----------
 package/gmock/Config.in                    | 32 ---------------
 package/gmock/gmock.hash                   |  2 -
 package/gmock/gmock.mk                     | 64 ------------------------------
 package/gtest/Config.in                    | 29 +++++++++++++-
 package/{gmock => gtest}/gmock.pc          |  2 +-
 package/gtest/gtest.hash                   |  2 +-
 package/gtest/gtest.mk                     | 59 ++++++++++++++++++++++-----
 package/gtest/gtest.pc                     |  2 +-
 12 files changed, 87 insertions(+), 134 deletions(-)
 delete mode 100644 package/gmock/0001-force-use-python2.patch
 delete mode 100644 package/gmock/Config.in
 delete mode 100644 package/gmock/gmock.hash
 delete mode 100644 package/gmock/gmock.mk
 rename package/{gmock => gtest}/gmock.pc (93%)
Config.in.legacy +0 -0
index 20445b8..23184e8 100644

Config.in.legacy endif · line 151

Quoted 7 lines
Config.in.legacy +4 -0
@@ -145,6 +145,13 @@ endif
 ###############################################################################
 comment "Legacy options removed in 2017.02"
 
+config BR2_PACKAGE_GMOCK
+	bool "gmock removed"
+	select BR2_PACKAGE_GTEST
+	select BR2_PACKAGE_GTEST_GMOCK

missing select BR2_LEGACY

Quoted 30 lines
Config.in.legacy +3 -0
+	help
+	  GMock is now a suboption of GTest
+
 config BR2_PACKAGE_PERL_DB_FILE
 	bool "perl-db-file removed"
 	select BR2_LEGACY
DEVELOPERS +0 -1
index 94f6804..5ff6223 100644
@@ -286,7 +286,6 @@ N:	Carlo Caione <[email protected]>
 F:	package/sunxi-boards/
 
 N:	Carlos Santos <[email protected]>
-F:	package/gmock/
 F:	package/gtest/
 F:	package/libpam-radius-auth/
 F:	package/libpam-tacplus/
package/Config.in +0 -1
index deff0fe..70e3fff 100644
@@ -1325,7 +1325,6 @@ menu "Other"
 	source "package/gflags/Config.in"
 	source "package/glibmm/Config.in"
 	source "package/glm/Config.in"
-	source "package/gmock/Config.in"
 	source "package/gmp/Config.in"
 	source "package/gsl/Config.in"
 	source "package/gtest/Config.in"

[...]

Quoted 21 lines
package/gtest/Config.in +13 -0
index 355b736..9f514da 100644
@@ -21,6 +21,33 @@ config BR2_PACKAGE_GTEST
 
 	  https://github.com/google/googletest
 
+if BR2_PACKAGE_GTEST
+
+config BR2_PACKAGE_GTEST_GMOCK
+	bool "gmock"
+	help
+	  Inspired by jMock, EasyMock, and Hamcrest, and designed with C++'s
+	  specifics in mind, Google C++ Mocking Framework (or Google Mock for
+	  short) is a library for writing and using C++ mock classes.
+
+	  Google Mock:
+
+	    * lets you create mock classes trivially using simple macros,
+	    * supports a rich set of matchers and actions,

package/gtest/Config.in config BR2_PACKAGE_GTEST · line 46

Quoted 10 lines
package/gtest/Config.in +10 -0
+	    * handles unordered, partially ordered, or completely ordered
+	      expectations,
+	    * is extensible by users, and
+	    * works on Linux, Mac OS X, Windows, Windows Mobile, minGW, and
+	      Symbian.
+
+	  There are both host and target packages. The target one has include
+	  files required to compile the tests and the static libraries required
+	  to link/run them. The host package installs gmock_gen, a Python script
+	  used to generate code mocks.

"The help text should be wrapped to fit 72 columns." see [1]

Note: one Tab count as 8 characters.

[1] http://nightly.buildroot.org/#writing-rules-config-in

Quoted 37 lines
package/gtest/Config.in +5 -1
+
+endif # BR2_PACKAGE_GTEST
+
 comment "gtest needs a toolchain w/ C++, wchar, threads"
 	depends on BR2_USE_MMU
-	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP
+	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
+		!BR2_INSTALL_LIBSTDCPP
package/gtest/gmock.pc renamed from package/gmock/gmock.pc +1 -1
similarity index 93%
rename from package/gmock/gmock.pc
rename to package/gtest/gmock.pc
index 2f90068..4c72354 100644
@@ -5,7 +5,7 @@ includedir=${prefix}/include
 
 Name: gmock
 Description: Google C++ Mocking Framework
-Version: 1.7.0
+Version: 1.8.0
 Libs: -L${libdir} -lgmock
 Libs.private: -lpthread
 Cflags: -I${includedir}
package/gtest/gtest.hash +1 -1
index 79e31e4..854ace8 100644
@@ -1,2 +1,2 @@
 # Locally computed:
-sha256	f73a6546fdf9fce9ff93a5015e0333a8af3062a152a9ad6bcb772c96687016cc	gtest-release-1.7.0.tar.gz
+sha256	58a6f4277ca2bc8565222b3bbd58a177609e9c488e8a72649359ba51450db7d8	gtest-1.8.0.tar.gz
package/gtest/gtest.mk +0 -0
index eb30905..fac1ab7 100644

package/gtest/gtest.mk line 8

Quoted 8 lines
package/gtest/gtest.mk +2 -3
@@ -4,13 +4,30 @@
 #
 ################################################################################
 
-# Make sure this remains the same version as the gmock one
-GTEST_VERSION = release-1.7.0
-GTEST_SITE = $(call github,google,googletest,$(GTEST_VERSION))
+GTEST_VERSION = 1.8.0
+GTEST_VERSION_TAG = release-$(GTEST_VERSION)

Why are you adding GTEST_VERSION_TAG ?
It seems ok to use "GTEST_VERSION = release-1.8.0" no ?

Quoted 13 lines
package/gtest/gtest.mk +9 -1
+GTEST_SITE = $(call github,google,googletest,$(GTEST_VERSION_TAG))
 GTEST_INSTALL_STAGING = YES
 GTEST_INSTALL_TARGET = NO
 GTEST_LICENSE = BSD-3c
-GTEST_LICENSE_FILES = LICENSE
+GTEST_LICENSE_FILES = googletest/LICENSE
+
+ifeq ($(BR2_PACKAGE_GTEST_GMOCK),y)
+GTEST_DEPENDENCIES = host-gtest
+endif
+
+HOST_GTEST_LICENSE = Apache-2.0
+HOST_GTEST_LICENSE_FILES = googlemock/scripts/generator/LICENSE

package/gtest/gtest.mk line 30

Quoted 10 lines
package/gtest/gtest.mk +10 -0
+ifeq ($(BR2_PACKAGE_PYTHON3),y)
+HOST_GTEST_PYTHON_VERSION = $(PYTHON3_VERSION_MAJOR)
+HOST_GTEST_DEPENDENCIES = host-python3
+else
+HOST_GTEST_PYTHON_VERSION = $(PYTHON_VERSION_MAJOR)
+HOST_GTEST_DEPENDENCIES = host-python
+endif
+
+HOST_GTEST_GMOCK_PYTHONPATH = \
+        $(HOST_DIR)/usr/lib/python$(HOST_GTEST_PYTHON_VERSION)/site-packages

Indent with one Tab.

Quoted 4 lines
package/gtest/gtest.mk +0 -0
 # While it is possible to build gtest as shared library, using this gtest shared
 # library requires to set some special configure option in the project using

package/gtest/gtest.mk GTEST_LICENSE_FILES = LICENSE · line 42

Quoted 10 lines
package/gtest/gtest.mk +2 -5
@@ -21,11 +38,12 @@ GTEST_LICENSE_FILES = LICENSE
 # the gtest sources.
 GTEST_CONF_OPTS = -DBUILD_SHARED_LIBS=OFF
 
-define GTEST_INSTALL_STAGING_CMDS
-	$(INSTALL) -D -m 0755 $(@D)/libgtest.a $(STAGING_DIR)/usr/lib/libgtest.a
-	$(INSTALL) -D -m 0755 $(@D)/libgtest_main.a $(STAGING_DIR)/usr/lib/libgtest_main.a
-	$(INSTALL) -d -m 0755 $(STAGING_DIR)/usr/include/gtest/
-	cp -rp $(@D)/include/gtest/* $(STAGING_DIR)/usr/include/gtest/
+# By default, build gmock and gtest
+ifneq ($(BR2_PACKAGE_GTEST_GMOCK),y)

Try using the "positive" logic:
ifeq ($(BR2_PACKAGE_GTEST_GMOCK),)

Quoted 9 lines
package/gtest/gtest.mk +4 -0
+GTEST_CONF_OPTS = -DBUILD_GTEST=ON -DBUILD_GMOCK=OFF
+endif
+
+define GTEST_INSTALL_MISSING_FILES
 	$(INSTALL) -D -m 0644 package/gtest/gtest.pc \
 		$(STAGING_DIR)/usr/lib/pkgconfig/gtest.pc
 	# Generate the gtest-config script manually, since the CMake
@@ -39,9 +57,30 @@ define GTEST_INSTALL_STAGING_CMDS
 		s%@bindir@%$(STAGING_DIR)/usr/bin%;\

package/gtest/gtest.mk define GTEST_INSTALL_STAGING_CMDS · line 66

Quoted 10 lines
package/gtest/gtest.mk +3 -1
 		s%@PTHREAD_CFLAGS@%%;\
 		s%@PTHREAD_LIBS@%-lpthread%;' \
-		$(@D)/scripts/gtest-config.in \
+		$(@D)/googletest/scripts/gtest-config.in \
 		> $(STAGING_DIR)/usr/bin/gtest-config
 	chmod +x $(STAGING_DIR)/usr/bin/gtest-config
 endef
 
+define GTEST_GMOCK_INSTALL_MISSING_FILE
+	$(INSTALL) -D -m 0755 package/gtest/gmock.pc \

Use -m 0644, we don't need gmock.pc to be executable.

package/gtest/gtest.mk define GTEST_INSTALL_STAGING_CMDS · line 76

Quoted 10 lines
package/gtest/gtest.mk +10 -0
+		$(STAGING_DIR)/usr/lib/pkgconfig/gmock.pc
+endef
+
+GTEST_POST_INSTALL_STAGING_HOOKS += GTEST_INSTALL_MISSING_FILES
+ifeq ($(BR2_PACKAGE_GTEST_GMOCK),y)
+GTEST_POST_INSTALL_STAGING_HOOKS += GTEST_GMOCK_INSTALL_MISSING_FILE
+endif
+
+define HOST_GTEST_INSTALL_CMDS
+	$(INSTALL) -D -m 0755 $(@D)/googlemock/scripts/generator/gmock_gen.py \

Same for gmock_gen.py.

Otherwise:

Best regards,
Romain

Quoted 24 lines
package/gtest/gtest.mk +9 -0
+		$(HOST_DIR)/usr/bin/gmock_gen.py
+	ln -sf gmock_gen.py $(HOST_DIR)/usr/bin/gmock_gen
+	cp -rp $(@D)/googlemock/scripts/generator/cpp \
+		$(HOST_GTEST_GMOCK_PYTHONPATH)
+endef
+
 $(eval $(cmake-package))
+# The host package does not build anything, just installs gmock_gen stuff, so
+# it does not need to be a host-cmake-package.
+$(eval $(host-generic-package))
package/gtest/gtest.pc +1 -1
index b7a8aa4..594e79d 100644
@@ -5,7 +5,7 @@ includedir=${prefix}/include
 
 Name: gtest
 Description: Google C++ Testing Framework
-Version: 1.7.0
+Version: 1.8.0
 Libs: -L${libdir} -lgtest
 Libs.private: -lpthread
 Cflags: -I${includedir}
#10 lore raw

PATCH v3 1/1 gtest/gmock: bump to version 1.8.0

Quoted 5 lines

From: "Romain Naour" <[email protected]>
To: "Carlos Santos" <[email protected]>, buildroot at buildroot.org
Cc: arnout at mind.be, "Fabrice Fontaine" <[email protected]>
Sent: Saturday, February 11, 2017 11:50:36 AM
Subject: Re: [PATCH v3] gtest/gmock: bump to version 1.8.0

[...]

Quoted 6 lines
Quoted 6 lines
Config.in.legacy +0 -0
@@ -145,6 +145,13 @@ endif
 ###############################################################################
 comment "Legacy options removed in 2017.02"
 
Quoted 6 lines

Config.in.legacy endif · line 151

Quoted 4 lines
Config.in.legacy +4 -0
+config BR2_PACKAGE_GMOCK
+	bool "gmock removed"
+	select BR2_PACKAGE_GTEST
+	select BR2_PACKAGE_GTEST_GMOCK

missing select BR2_LEGACY

Done

[...]

Quoted 15 lines
Quoted 15 lines
Config.in.legacy +15 -0
+config BR2_PACKAGE_GTEST_GMOCK
+	bool "gmock"
+	help
+	  Inspired by jMock, EasyMock, and Hamcrest, and designed with C++'s
+	  specifics in mind, Google C++ Mocking Framework (or Google Mock for
+	  short) is a library for writing and using C++ mock classes.
+
+	  Google Mock:
+
+	    * lets you create mock classes trivially using simple macros,
+	    * supports a rich set of matchers and actions,
+	    * handles unordered, partially ordered, or completely ordered
+	      expectations,
+	    * is extensible by users, and
+	    * works on Linux, Mac OS X, Windows, Windows Mobile, minGW, and
Quoted 8 lines

Config.in.legacy

Quoted 6 lines
Config.in.legacy +6 -0
+	      Symbian.
+
+	  There are both host and target packages. The target one has include
+	  files required to compile the tests and the static libraries required
+	  to link/run them. The host package installs gmock_gen, a Python script
+	  used to generate code mocks.

"The help text should be wrapped to fit 72 columns." see [1]

Done.

[...]

Quoted 6 lines
Quoted 6 lines
package/gtest/gtest.mk +0 -0
@@ -4,13 +4,30 @@
 #
 ################################################################################
 
Quoted 8 lines

package/gtest/gtest.mk line 8

Quoted 5 lines
package/gtest/gtest.mk +2 -3
-# Make sure this remains the same version as the gmock one
-GTEST_VERSION = release-1.7.0
-GTEST_SITE = $(call github,google,googletest,$(GTEST_VERSION))
+GTEST_VERSION = 1.8.0
+GTEST_VERSION_TAG = release-$(GTEST_VERSION)

Why are you adding GTEST_VERSION_TAG ?
It seems ok to use "GTEST_VERSION = release-1.8.0" no ?

To have a cleaner <pkg>_VERSION variable (and archive name). Previous gtest/gmock archives were saved as "gtest-Z.Y.Z.zip" but it changed when the package started to be downloaded from GitHub and started to be called "gtest-release-1.7.0.tar.gz", including the "release" prefix included in the tag, which is superfluous.

[...]

Quoted 4 lines

package/gtest/gtest.mk line 30

Quoted 2 lines
package/gtest/gtest.mk +2 -0
+HOST_GTEST_GMOCK_PYTHONPATH = \
+        $(HOST_DIR)/usr/lib/python$(HOST_GTEST_PYTHON_VERSION)/site-packages

Indent with one Tab.

Done.

Quoted 5 lines

package/gtest/gtest.mk GTEST_LICENSE_FILES = LICENSE · line 42

Quoted 2 lines
package/gtest/gtest.mk +2 -0
+# By default, build gmock and gtest
+ifneq ($(BR2_PACKAGE_GTEST_GMOCK),y)

Try using the "positive" logic:
ifeq ($(BR2_PACKAGE_GTEST_GMOCK),)

Done

[...]

Quoted 4 lines

package/gtest/gtest.mk define GTEST_INSTALL_STAGING_CMDS · line 76

Quoted 2 lines
package/gtest/gtest.mk +2 -0
+define HOST_GTEST_INSTALL_CMDS
+	$(INSTALL) -D -m 0755 $(@D)/googlemock/scripts/generator/gmock_gen.py \

Same for gmock_gen.py.

Do you mean -m 0644? No, this one must be executable.

Quoted 22 lines

Otherwise:

Best regards,
Romain

Quoted 16 lines
package/gtest/gtest.mk +9 -0
+		$(HOST_DIR)/usr/bin/gmock_gen.py
+	ln -sf gmock_gen.py $(HOST_DIR)/usr/bin/gmock_gen
+	cp -rp $(@D)/googlemock/scripts/generator/cpp \
+		$(HOST_GTEST_GMOCK_PYTHONPATH)
+endef
+
 $(eval $(cmake-package))
+# The host package does not build anything, just installs gmock_gen stuff, so
+# it does not need to be a host-cmake-package.
+$(eval $(host-generic-package))
package/gtest/gtest.pc +0 -0
index b7a8aa4..594e79d 100644
@@ -5,7 +5,7 @@ includedir=${prefix}/include
 
Quoted 7 lines

package/gtest/gtest.pc includedir=${prefix}/include · line 11

Quoted 7 lines
package/gtest/gtest.pc +1 -1
 Name: gtest
 Description: Google C++ Testing Framework
-Version: 1.7.0
+Version: 1.8.0
 Libs: -L${libdir} -lgtest
 Libs.private: -lpthread
 Cflags: -I${includedir}

Carlos Santos (Casantos) - DATACOM, P&D
?Something must be done. This is something. Therefore we must do it.? (from the BBC series ?Yes, Prime Minister?, ?Power to the people?)

#11 lore raw

PATCH v4 1/1 gtest/gmock: bump to version 1.8.0

In reply to Carlos Santos

GTest version 1.8.0 includes gmock so merge both packages inside gtest

In this merge:

- Add gmock as a suboption of gtest (BR2_PACKAGE_GTEST_GMOCK) following advice from Arnout Vandecappelle
- Add BR2_PACKAGE_GMOCK as a legacy entry, selecting BR2_PACKAGE_GTEST and BR2_PACKAGE_GTEST_GMOCK.
- Use cmake to install libraries and headers and add missing files (gtest.pc, gtest-config, gmock.pc) in GTEST_POST_INSTALL_STAGING_HOOKS instead of redefining GTEST_INSTALL_STAGING_CMDS
- Remove patch on Python as gmock/gtest now supports python 3.0 (commit 456fc2b5c4e9ebf05a5987dfe1ff0ac9ffeb53cc)
- Add the correct license in HOST_GTEST_LICENSE as all python code in googlemock/scripts/generator is licensed under Apache-2.0 and not BSD-3c
- Fix URL of gtest project in Config.in
- Remove the gmock entry from DEVELOPERS

Notice that any external package that depends on gmock will cause an immediate build termination because make doesn't know how to build gmock. Since the user has just removed gmock from the legacy menu, it should be quite obvious what needs to be done.

---
Version history:

v1 (Fabrice Fontaine)
- Add gmock as a suboption
- Use cmake to install
- Remove patch on Python
- Add the correct license
- Fix URL of gtest project

v1->v2 (Carlos Santos)
- Add gmock a virtual package (yeah, yeah, big mistake)

v2->v3 (Carlos Santos)
- Got rid of the gmock virtual package (yeah, BIG mistake)
- Use $(PYTHON3_VERSION_MAJOR) to choose the Python version
- Several fixes, as suggested by Arnout Vandecappelle

v3->v4 (Carlos Santos)
- Several fixes, as suggested by Romain Naour

---
 Config.in.legacy                           |  8 ++++
 DEVELOPERS                                 |  1 -
 package/Config.in                          |  1 -
 package/gmock/0001-force-use-python2.patch | 20 ----------
 package/gmock/Config.in                    | 32 ---------------
 package/gmock/gmock.hash                   |  2 -
 package/gmock/gmock.mk                     | 64 ------------------------------
 package/gtest/Config.in                    | 30 +++++++++++++-
 package/{gmock => gtest}/gmock.pc          |  2 +-
 package/gtest/gtest.hash                   |  2 +-
 package/gtest/gtest.mk                     | 59 ++++++++++++++++++++++-----
 package/gtest/gtest.pc                     |  2 +-
 12 files changed, 89 insertions(+), 134 deletions(-)
 delete mode 100644 package/gmock/0001-force-use-python2.patch
 delete mode 100644 package/gmock/Config.in
 delete mode 100644 package/gmock/gmock.hash
 delete mode 100644 package/gmock/gmock.mk
 rename package/{gmock => gtest}/gmock.pc (93%)
Config.in.legacy +8 -0
index 20445b8..4532a9a 100644
@@ -145,6 +145,14 @@ endif
 ###############################################################################
 comment "Legacy options removed in 2017.02"
 
+config BR2_PACKAGE_GMOCK
+	bool "gmock removed"
+	select BR2_LEGACY
+	select BR2_PACKAGE_GTEST
+	select BR2_PACKAGE_GTEST_GMOCK
+	help
+	  GMock is now a suboption of GTest
+
 config BR2_PACKAGE_PERL_DB_FILE
 	bool "perl-db-file removed"
 	select BR2_LEGACY
DEVELOPERS +0 -1
index 94f6804..5ff6223 100644
@@ -286,7 +286,6 @@ N:	Carlo Caione <[email protected]>
 F:	package/sunxi-boards/
 
 N:	Carlos Santos <[email protected]>
-F:	package/gmock/
 F:	package/gtest/
 F:	package/libpam-radius-auth/
 F:	package/libpam-tacplus/
package/Config.in +0 -1
index deff0fe..70e3fff 100644
@@ -1325,7 +1325,6 @@ menu "Other"
 	source "package/gflags/Config.in"
 	source "package/glibmm/Config.in"
 	source "package/glm/Config.in"
-	source "package/gmock/Config.in"
 	source "package/gmp/Config.in"
 	source "package/gsl/Config.in"
 	source "package/gtest/Config.in"
package/gmock/0001-force-use-python2.patch deleted +0 -20
deleted file mode 100644
index 5dcb231..0000000
@@ -1,20 +0,0 @@
-Force use of Python 2 even when Python 3 is the default Python interpreter.
-
-Signed-off-by: Carlos Santos <[email protected]>
-
---- ./gtest/scripts/fuse_gtest_files.py.orig	2013-09-18 14:48:30.000000000 -0300
-+++ ./gtest/scripts/fuse_gtest_files.py	2015-07-22 15:42:53.291591205 -0300
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python2
- #
- # Copyright 2009, Google Inc.
- # All rights reserved.
---- ./scripts/generator/gmock_gen.py.orig	2013-09-18 14:50:15.000000000 -0300
-+++ ./scripts/generator/gmock_gen.py	2015-07-22 17:06:51.071815634 -0300
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python2
- #
- # Copyright 2008 Google Inc. All Rights Reserved.
- #
package/gmock/Config.in deleted +0 -32
deleted file mode 100644
index ec3eb92..0000000
@@ -1,32 +0,0 @@
-config BR2_PACKAGE_GMOCK
-	bool "gmock"
-	select BR2_PACKAGE_GTEST
-	depends on BR2_USE_WCHAR
-	depends on BR2_TOOLCHAIN_HAS_THREADS
-	depends on BR2_INSTALL_LIBSTDCPP
-	depends on BR2_USE_MMU # fork()
-	help
-	  Inspired by jMock, EasyMock, and Hamcrest, and designed with C++'s
-	  specifics in mind, Google C++ Mocking Framework (or Google Mock for
-	  short) is a library for writing and using C++ mock classes.
-
-	  Google Mock:
-
-	    * lets you create mock classes trivially using simple macros,
-	    * supports a rich set of matchers and actions,
-	    * handles unordered, partially ordered, or completely ordered
-	      expectations,
-	    * is extensible by users, and
-	    * works on Linux, Mac OS X, Windows, Windows Mobile, minGW, and
-	      Symbian.
-
-	    http://code.google.com/p/googlemock/
-
-	  There are both host and target packages. The target one has include
-	  files required to compile the tests and the static libraries required
-	  to link/run them. The host package installs gmock_gen, a Python script
-	  used to generate code mocks.
-
-comment "gmock needs a toolchain w/ C++, wchar, threads"
-	depends on BR2_USE_MMU
-	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP
package/gmock/gmock.hash deleted +0 -2
deleted file mode 100644
index 2b71739..0000000
@@ -1,2 +0,0 @@
-# Locally computed
-sha256 26fcbb5925b74ad5fc8c26b0495dfc96353f4d553492eb97e85a8a6d2f43095b  gmock-1.7.0.zip
package/gmock/gmock.mk deleted +0 -64

64 lines not on this page · raw message

package/gtest/Config.in +29 -1
index 355b736..3f1f385 100644
@@ -21,6 +21,34 @@ config BR2_PACKAGE_GTEST
 
 	  https://github.com/google/googletest
 
+if BR2_PACKAGE_GTEST
+
+config BR2_PACKAGE_GTEST_GMOCK
+	bool "gmock"
+	help
+	  Inspired by jMock, EasyMock, and Hamcrest, and designed with
+	  C++'s specifics in mind, Google C++ Mocking Framework (or
+	  Google Mock for short) is a library for writing and using C++
+	  mock classes.
+
+	  Google Mock:
+
+	    * lets you create mock classes trivially using simple
+	      macros, supports a rich set of matchers and actions,
+	    * handles unordered, partially ordered, or completely
+	      ordered expectations,
+	    * is extensible by users, and
+	    * works on Linux, Mac OS X, Windows, Windows Mobile, minGW,
+	      and Symbian.
+
+	  There are both host and target packages. The target one has
+	  include files required to compile the tests and the static
+	  libraries required to link/run them. The host package installs
+	  gmock_gen, a Python script used to generate code mocks.
+
+endif # BR2_PACKAGE_GTEST
+
 comment "gtest needs a toolchain w/ C++, wchar, threads"
 	depends on BR2_USE_MMU
-	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP
+	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
+		!BR2_INSTALL_LIBSTDCPP
package/gtest/gmock.pc renamed from package/gmock/gmock.pc +1 -1
similarity index 93%
rename from package/gmock/gmock.pc
rename to package/gtest/gmock.pc
index 2f90068..4c72354 100644
@@ -5,7 +5,7 @@ includedir=${prefix}/include
 
 Name: gmock
 Description: Google C++ Mocking Framework
-Version: 1.7.0
+Version: 1.8.0
 Libs: -L${libdir} -lgmock
 Libs.private: -lpthread
 Cflags: -I${includedir}
package/gtest/gtest.hash +1 -1
index 79e31e4..854ace8 100644
@@ -1,2 +1,2 @@
 # Locally computed:
-sha256	f73a6546fdf9fce9ff93a5015e0333a8af3062a152a9ad6bcb772c96687016cc	gtest-release-1.7.0.tar.gz
+sha256	58a6f4277ca2bc8565222b3bbd58a177609e9c488e8a72649359ba51450db7d8	gtest-1.8.0.tar.gz
package/gtest/gtest.mk +49 -10

82 lines not on this page · raw message

package/gtest/gtest.pc +1 -1
index b7a8aa4..594e79d 100644
@@ -5,7 +5,7 @@ includedir=${prefix}/include
 
 Name: gtest
 Description: Google C++ Testing Framework
-Version: 1.7.0
+Version: 1.8.0
 Libs: -L${libdir} -lgtest
 Libs.private: -lpthread
 Cflags: -I${includedir}
Signature · 1 line
2.7.4
#12 lore raw

PATCH v5 1/1 gtest/gmock: bump to version 1.8.0

In reply to Carlos Santos

GTest version 1.8.0 includes gmock so merge both packages inside gtest

In this merge:

- Add gmock as a suboption of gtest (BR2_PACKAGE_GTEST_GMOCK) following advice from Arnout Vandecappelle
- Add BR2_PACKAGE_GMOCK as a legacy entry, selecting BR2_PACKAGE_GTEST and BR2_PACKAGE_GTEST_GMOCK.
- Use cmake to install libraries and headers and add missing files (gtest.pc, gtest-config, gmock.pc) in GTEST_POST_INSTALL_STAGING_HOOKS instead of redefining GTEST_INSTALL_STAGING_CMDS
- Remove patch on Python as gmock/gtest now supports python 3.0 (commit 456fc2b5c4e9ebf05a5987dfe1ff0ac9ffeb53cc)
- Add the correct license in HOST_GTEST_LICENSE as all python code in googlemock/scripts/generator is licensed under Apache-2.0 and not BSD-3c
- Fix URL of gtest project in Config.in
- Remove the gmock entry from DEVELOPERS

Notice that any external package that depends on gmock will cause an immediate build termination because make doesn't know how to build gmock. Since the user has just removed gmock from the legacy menu, it should be quite obvious what needs to be done.

---
Version history:

v1 (Fabrice Fontaine)
- Add gmock as a suboption
- Use cmake to install
- Remove patch on Python
- Add the correct license
- Fix URL of gtest project

v1->v2 (Carlos Santos)
- Add gmock a virtual package (yeah, yeah, big mistake)

v2->v3 (Carlos Santos)
- Got rid of the gmock virtual package (yeah, BIG mistake)
- Use $(PYTHON3_VERSION_MAJOR) to choose the Python version
- Several fixes, as suggested by Arnout Vandecappelle

v3->v4 (Carlos Santos)
- Several fixes, as suggested by Romain Naour

v4->v5 (Carlos Santos)
- Drop GTEST_VERSION_TAG after a parallel conversation with Thomas Petazzoni and Yann E. MORIN
(http://patchwork.ozlabs.org/patch/726836/).

---
 Config.in.legacy                           |  8 ++++
 DEVELOPERS                                 |  1 -
 package/Config.in                          |  1 -
 package/gmock/0001-force-use-python2.patch | 20 ----------
 package/gmock/Config.in                    | 32 ---------------
 package/gmock/gmock.hash                   |  2 -
 package/gmock/gmock.mk                     | 64 ------------------------------
 package/gtest/Config.in                    | 30 +++++++++++++-
 package/{gmock => gtest}/gmock.pc          |  2 +-
 package/gtest/gtest.hash                   |  2 +-
 package/gtest/gtest.mk                     | 56 +++++++++++++++++++++-----
 package/gtest/gtest.pc                     |  2 +-
 12 files changed, 87 insertions(+), 133 deletions(-)
 delete mode 100644 package/gmock/0001-force-use-python2.patch
 delete mode 100644 package/gmock/Config.in
 delete mode 100644 package/gmock/gmock.hash
 delete mode 100644 package/gmock/gmock.mk
 rename package/{gmock => gtest}/gmock.pc (93%)
Config.in.legacy +8 -0
index 20445b8..4532a9a 100644
@@ -145,6 +145,14 @@ endif
 ###############################################################################
 comment "Legacy options removed in 2017.02"
 
+config BR2_PACKAGE_GMOCK
+	bool "gmock removed"
+	select BR2_LEGACY
+	select BR2_PACKAGE_GTEST
+	select BR2_PACKAGE_GTEST_GMOCK
+	help
+	  GMock is now a suboption of GTest
+
 config BR2_PACKAGE_PERL_DB_FILE
 	bool "perl-db-file removed"
 	select BR2_LEGACY
DEVELOPERS +0 -1
index 94f6804..5ff6223 100644
@@ -286,7 +286,6 @@ N:	Carlo Caione <[email protected]>
 F:	package/sunxi-boards/
 
 N:	Carlos Santos <[email protected]>
-F:	package/gmock/
 F:	package/gtest/
 F:	package/libpam-radius-auth/
 F:	package/libpam-tacplus/
package/Config.in +0 -1
index deff0fe..70e3fff 100644
@@ -1325,7 +1325,6 @@ menu "Other"
 	source "package/gflags/Config.in"
 	source "package/glibmm/Config.in"
 	source "package/glm/Config.in"
-	source "package/gmock/Config.in"
 	source "package/gmp/Config.in"
 	source "package/gsl/Config.in"
 	source "package/gtest/Config.in"
package/gmock/0001-force-use-python2.patch deleted +0 -20
deleted file mode 100644
index 5dcb231..0000000
@@ -1,20 +0,0 @@
-Force use of Python 2 even when Python 3 is the default Python interpreter.
-
-Signed-off-by: Carlos Santos <[email protected]>
-
---- ./gtest/scripts/fuse_gtest_files.py.orig	2013-09-18 14:48:30.000000000 -0300
-+++ ./gtest/scripts/fuse_gtest_files.py	2015-07-22 15:42:53.291591205 -0300
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python2
- #
- # Copyright 2009, Google Inc.
- # All rights reserved.
---- ./scripts/generator/gmock_gen.py.orig	2013-09-18 14:50:15.000000000 -0300
-+++ ./scripts/generator/gmock_gen.py	2015-07-22 17:06:51.071815634 -0300
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python2
- #
- # Copyright 2008 Google Inc. All Rights Reserved.
- #
package/gmock/Config.in deleted +0 -32
deleted file mode 100644
index ec3eb92..0000000
@@ -1,32 +0,0 @@
-config BR2_PACKAGE_GMOCK
-	bool "gmock"
-	select BR2_PACKAGE_GTEST
-	depends on BR2_USE_WCHAR
-	depends on BR2_TOOLCHAIN_HAS_THREADS
-	depends on BR2_INSTALL_LIBSTDCPP
-	depends on BR2_USE_MMU # fork()
-	help
-	  Inspired by jMock, EasyMock, and Hamcrest, and designed with C++'s
-	  specifics in mind, Google C++ Mocking Framework (or Google Mock for
-	  short) is a library for writing and using C++ mock classes.
-
-	  Google Mock:
-
-	    * lets you create mock classes trivially using simple macros,
-	    * supports a rich set of matchers and actions,
-	    * handles unordered, partially ordered, or completely ordered
-	      expectations,
-	    * is extensible by users, and
-	    * works on Linux, Mac OS X, Windows, Windows Mobile, minGW, and
-	      Symbian.
-
-	    http://code.google.com/p/googlemock/
-
-	  There are both host and target packages. The target one has include
-	  files required to compile the tests and the static libraries required
-	  to link/run them. The host package installs gmock_gen, a Python script
-	  used to generate code mocks.
-
-comment "gmock needs a toolchain w/ C++, wchar, threads"
-	depends on BR2_USE_MMU
-	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP
package/gmock/gmock.hash deleted +0 -2
deleted file mode 100644
index 2b71739..0000000
@@ -1,2 +0,0 @@
-# Locally computed
-sha256 26fcbb5925b74ad5fc8c26b0495dfc96353f4d553492eb97e85a8a6d2f43095b  gmock-1.7.0.zip
package/gmock/gmock.mk deleted +0 -64

64 lines not on this page · raw message

package/gtest/Config.in +29 -1
index 355b736..3f1f385 100644
@@ -21,6 +21,34 @@ config BR2_PACKAGE_GTEST
 
 	  https://github.com/google/googletest
 
+if BR2_PACKAGE_GTEST
+
+config BR2_PACKAGE_GTEST_GMOCK
+	bool "gmock"
+	help
+	  Inspired by jMock, EasyMock, and Hamcrest, and designed with
+	  C++'s specifics in mind, Google C++ Mocking Framework (or
+	  Google Mock for short) is a library for writing and using C++
+	  mock classes.
+
+	  Google Mock:
+
+	    * lets you create mock classes trivially using simple
+	      macros, supports a rich set of matchers and actions,
+	    * handles unordered, partially ordered, or completely
+	      ordered expectations,
+	    * is extensible by users, and
+	    * works on Linux, Mac OS X, Windows, Windows Mobile, minGW,
+	      and Symbian.
+
+	  There are both host and target packages. The target one has
+	  include files required to compile the tests and the static
+	  libraries required to link/run them. The host package installs
+	  gmock_gen, a Python script used to generate code mocks.
+
+endif # BR2_PACKAGE_GTEST
+
 comment "gtest needs a toolchain w/ C++, wchar, threads"
 	depends on BR2_USE_MMU
-	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP
+	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
+		!BR2_INSTALL_LIBSTDCPP
package/gtest/gmock.pc renamed from package/gmock/gmock.pc +1 -1
similarity index 93%
rename from package/gmock/gmock.pc
rename to package/gtest/gmock.pc
index 2f90068..4c72354 100644
@@ -5,7 +5,7 @@ includedir=${prefix}/include
 
 Name: gmock
 Description: Google C++ Mocking Framework
-Version: 1.7.0
+Version: 1.8.0
 Libs: -L${libdir} -lgmock
 Libs.private: -lpthread
 Cflags: -I${includedir}
package/gtest/gtest.hash +1 -1
index 79e31e4..474008d 100644
@@ -1,2 +1,2 @@
 # Locally computed:
-sha256	f73a6546fdf9fce9ff93a5015e0333a8af3062a152a9ad6bcb772c96687016cc	gtest-release-1.7.0.tar.gz
+sha256	58a6f4277ca2bc8565222b3bbd58a177609e9c488e8a72649359ba51450db7d8	gtest-release-1.8.0.tar.gz
package/gtest/gtest.mk +47 -9

80 lines not on this page · raw message

package/gtest/gtest.pc +1 -1
index b7a8aa4..594e79d 100644
@@ -5,7 +5,7 @@ includedir=${prefix}/include
 
 Name: gtest
 Description: Google C++ Testing Framework
-Version: 1.7.0
+Version: 1.8.0
 Libs: -L${libdir} -lgtest
 Libs.private: -lpthread
 Cflags: -I${includedir}
Signature · 1 line
2.7.4
#13 lore raw

PATCH v5 1/1 gtest/gmock: bump to version 1.8.0

Hi Carlos,

One small typo...

Le 12/02/2017 ? 13:17, Carlos Santos a ?crit :

Quoted 363 lines

GTest version 1.8.0 includes gmock so merge both packages inside gtest

In this merge:

- Add gmock as a suboption of gtest (BR2_PACKAGE_GTEST_GMOCK) following advice from Arnout Vandecappelle
- Add BR2_PACKAGE_GMOCK as a legacy entry, selecting BR2_PACKAGE_GTEST and BR2_PACKAGE_GTEST_GMOCK.
- Use cmake to install libraries and headers and add missing files (gtest.pc, gtest-config, gmock.pc) in GTEST_POST_INSTALL_STAGING_HOOKS instead of redefining GTEST_INSTALL_STAGING_CMDS
- Remove patch on Python as gmock/gtest now supports python 3.0 (commit 456fc2b5c4e9ebf05a5987dfe1ff0ac9ffeb53cc)
- Add the correct license in HOST_GTEST_LICENSE as all python code in googlemock/scripts/generator is licensed under Apache-2.0 and not BSD-3c
- Fix URL of gtest project in Config.in
- Remove the gmock entry from DEVELOPERS

Notice that any external package that depends on gmock will cause an immediate build termination because make doesn't know how to build gmock. Since the user has just removed gmock from the legacy menu, it should be quite obvious what needs to be done.

---
Version history:

v1 (Fabrice Fontaine)
- Add gmock as a suboption
- Use cmake to install
- Remove patch on Python
- Add the correct license
- Fix URL of gtest project

v1->v2 (Carlos Santos)
- Add gmock a virtual package (yeah, yeah, big mistake)

v2->v3 (Carlos Santos)
- Got rid of the gmock virtual package (yeah, BIG mistake)
- Use $(PYTHON3_VERSION_MAJOR) to choose the Python version
- Several fixes, as suggested by Arnout Vandecappelle

v3->v4 (Carlos Santos)
- Several fixes, as suggested by Romain Naour

v4->v5 (Carlos Santos)
- Drop GTEST_VERSION_TAG after a parallel conversation with Thomas Petazzoni and Yann E. MORIN
(http://patchwork.ozlabs.org/patch/726836/).

---
 Config.in.legacy                           |  8 ++++
 DEVELOPERS                                 |  1 -
 package/Config.in                          |  1 -
 package/gmock/0001-force-use-python2.patch | 20 ----------
 package/gmock/Config.in                    | 32 ---------------
 package/gmock/gmock.hash                   |  2 -
 package/gmock/gmock.mk                     | 64 ------------------------------
 package/gtest/Config.in                    | 30 +++++++++++++-
 package/{gmock => gtest}/gmock.pc          |  2 +-
 package/gtest/gtest.hash                   |  2 +-
 package/gtest/gtest.mk                     | 56 +++++++++++++++++++++-----
 package/gtest/gtest.pc                     |  2 +-
 12 files changed, 87 insertions(+), 133 deletions(-)
 delete mode 100644 package/gmock/0001-force-use-python2.patch
 delete mode 100644 package/gmock/Config.in
 delete mode 100644 package/gmock/gmock.hash
 delete mode 100644 package/gmock/gmock.mk
 rename package/{gmock => gtest}/gmock.pc (93%)
Config.in.legacy +8 -0
index 20445b8..4532a9a 100644
@@ -145,6 +145,14 @@ endif
 ###############################################################################
 comment "Legacy options removed in 2017.02"
 
+config BR2_PACKAGE_GMOCK
+	bool "gmock removed"
+	select BR2_LEGACY
+	select BR2_PACKAGE_GTEST
+	select BR2_PACKAGE_GTEST_GMOCK
+	help
+	  GMock is now a suboption of GTest
+
 config BR2_PACKAGE_PERL_DB_FILE
 	bool "perl-db-file removed"
 	select BR2_LEGACY
DEVELOPERS +0 -1
index 94f6804..5ff6223 100644
@@ -286,7 +286,6 @@ N:	Carlo Caione <[email protected]>
 F:	package/sunxi-boards/
 
 N:	Carlos Santos <[email protected]>
-F:	package/gmock/
 F:	package/gtest/
 F:	package/libpam-radius-auth/
 F:	package/libpam-tacplus/
package/Config.in +0 -1
index deff0fe..70e3fff 100644
@@ -1325,7 +1325,6 @@ menu "Other"
 	source "package/gflags/Config.in"
 	source "package/glibmm/Config.in"
 	source "package/glm/Config.in"
-	source "package/gmock/Config.in"
 	source "package/gmp/Config.in"
 	source "package/gsl/Config.in"
 	source "package/gtest/Config.in"
package/gmock/0001-force-use-python2.patch deleted +0 -20
deleted file mode 100644
index 5dcb231..0000000
@@ -1,20 +0,0 @@
-Force use of Python 2 even when Python 3 is the default Python interpreter.
-
-Signed-off-by: Carlos Santos <[email protected]>
-
---- ./gtest/scripts/fuse_gtest_files.py.orig	2013-09-18 14:48:30.000000000 -0300
-+++ ./gtest/scripts/fuse_gtest_files.py	2015-07-22 15:42:53.291591205 -0300
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python2
- #
- # Copyright 2009, Google Inc.
- # All rights reserved.
---- ./scripts/generator/gmock_gen.py.orig	2013-09-18 14:50:15.000000000 -0300
-+++ ./scripts/generator/gmock_gen.py	2015-07-22 17:06:51.071815634 -0300
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python2
- #
- # Copyright 2008 Google Inc. All Rights Reserved.
- #
package/gmock/Config.in deleted +0 -32
deleted file mode 100644
index ec3eb92..0000000
@@ -1,32 +0,0 @@
-config BR2_PACKAGE_GMOCK
-	bool "gmock"
-	select BR2_PACKAGE_GTEST
-	depends on BR2_USE_WCHAR
-	depends on BR2_TOOLCHAIN_HAS_THREADS
-	depends on BR2_INSTALL_LIBSTDCPP
-	depends on BR2_USE_MMU # fork()
-	help
-	  Inspired by jMock, EasyMock, and Hamcrest, and designed with C++'s
-	  specifics in mind, Google C++ Mocking Framework (or Google Mock for
-	  short) is a library for writing and using C++ mock classes.
-
-	  Google Mock:
-
-	    * lets you create mock classes trivially using simple macros,
-	    * supports a rich set of matchers and actions,
-	    * handles unordered, partially ordered, or completely ordered
-	      expectations,
-	    * is extensible by users, and
-	    * works on Linux, Mac OS X, Windows, Windows Mobile, minGW, and
-	      Symbian.
-
-	    http://code.google.com/p/googlemock/
-
-	  There are both host and target packages. The target one has include
-	  files required to compile the tests and the static libraries required
-	  to link/run them. The host package installs gmock_gen, a Python script
-	  used to generate code mocks.
-
-comment "gmock needs a toolchain w/ C++, wchar, threads"
-	depends on BR2_USE_MMU
-	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP
package/gmock/gmock.hash deleted +0 -2
deleted file mode 100644
index 2b71739..0000000
@@ -1,2 +0,0 @@
-# Locally computed
-sha256 26fcbb5925b74ad5fc8c26b0495dfc96353f4d553492eb97e85a8a6d2f43095b  gmock-1.7.0.zip
package/gmock/gmock.mk deleted +0 -64
deleted file mode 100644
index 4f04422..0000000
@@ -1,64 +0,0 @@
-################################################################################
-#
-# gmock
-#
-################################################################################
-
-# Make sure this remains the same version as the gtest one
-GMOCK_VERSION = 1.7.0
-GMOCK_SOURCE = gmock-$(GMOCK_VERSION).zip
-GMOCK_SITE = http://googlemock.googlecode.com/files
-GMOCK_INSTALL_STAGING = YES
-GMOCK_INSTALL_TARGET = NO
-GMOCK_LICENSE = BSD-3c
-GMOCK_LICENSE_FILES = LICENSE
-GMOCK_DEPENDENCIES = gtest host-gmock
-
-# GMock 1.7.0 relies on Python 2.7 syntax which is NOT compatible with Python3.
-HOST_GMOCK_DEPENDENCIES = host-python
-HOST_GMOCK_PYTHONPATH=$(HOST_DIR)/usr/lib/python$(PYTHON_VERSION_MAJOR)/site-packages
-
-# Static linking is required in order to keep the GMock package completely
-# separated from GTest. According to GMock's README file:
-#
-#   "Google Mock can be used as a DLL, but the same DLL must contain Google
-#    Test as well.  See Google Test's README file for instructions on how to
-#    set up necessary compiler settings".
-GMOCK_CONF_OPTS = --enable-static --disable-shared
-
-define GMOCK_EXTRACT_CMDS
-	$(UNZIP) $(DL_DIR)/$(GMOCK_SOURCE) -d $(BUILD_DIR)
-endef
-
-# We can't use the default rule for autotools-package staging because it fails
-# because it tries to rebuild/install gtest stuff and fails after this error:
-#    "'make install' is dangerous and not supported. Instead, see README for
-#      how to integrate Google Test into your build system."
-define GMOCK_INSTALL_STAGING_CMDS
-	$(INSTALL) -D -m 0755 $(@D)/lib/.libs/libgmock.a $(STAGING_DIR)/usr/lib/libgmock.a
-	$(INSTALL) -D -m 0755 $(@D)/lib/.libs/libgmock_main.a $(STAGING_DIR)/usr/lib/libgmock_main.a
-	$(INSTALL) -d -m 0755 $(STAGING_DIR)/usr/include/gmock/
-	cp -rp $(@D)/include/gmock/* $(STAGING_DIR)/usr/include/gmock/
-	$(INSTALL) -D -m 0755 package/gmock/gmock.pc \
-		$(STAGING_DIR)/usr/lib/pkgconfig/gmock.pc
-endef
-
-# Unzipping inside $(@D) and moving everything from the created subdirectory is
-# required because unzipping directly in $(BUILD_DIR) would cause host-gmock to
-# overwrite the gmock subdir instead of unzipping in a host-gmock subdir.
-define HOST_GMOCK_EXTRACT_CMDS
-	$(UNZIP) $(DL_DIR)/$(GMOCK_SOURCE) -d $(@D)
-	mv $(@D)/gmock-$(GMOCK_VERSION)/* $(@D)
-	rmdir $(@D)/gmock-$(GMOCK_VERSION)
-endef
-
-define HOST_GMOCK_INSTALL_CMDS
-	$(INSTALL) -D -m 0755 $(@D)/scripts/generator/gmock_gen.py $(HOST_DIR)/usr/bin/gmock_gen.py
-	ln -sf gmock_gen.py $(HOST_DIR)/usr/bin/gmock_gen
-	cp -rp $(@D)/scripts/generator/cpp $(HOST_GMOCK_PYTHONPATH)
-endef
-
-$(eval $(autotools-package))
-# The host package does not build anything, just installs gmock_gen stuff, so
-# it does not need to be a host-autotools-package.
-$(eval $(host-generic-package))
package/gtest/Config.in +29 -1
index 355b736..3f1f385 100644
@@ -21,6 +21,34 @@ config BR2_PACKAGE_GTEST
 
 	  https://github.com/google/googletest
 
+if BR2_PACKAGE_GTEST
+
+config BR2_PACKAGE_GTEST_GMOCK
+	bool "gmock"
+	help
+	  Inspired by jMock, EasyMock, and Hamcrest, and designed with
+	  C++'s specifics in mind, Google C++ Mocking Framework (or
+	  Google Mock for short) is a library for writing and using C++
+	  mock classes.
+
+	  Google Mock:
+
+	    * lets you create mock classes trivially using simple
+	      macros, supports a rich set of matchers and actions,
+	    * handles unordered, partially ordered, or completely
+	      ordered expectations,
+	    * is extensible by users, and
+	    * works on Linux, Mac OS X, Windows, Windows Mobile, minGW,
+	      and Symbian.
+
+	  There are both host and target packages. The target one has
+	  include files required to compile the tests and the static
+	  libraries required to link/run them. The host package installs
+	  gmock_gen, a Python script used to generate code mocks.
+
+endif # BR2_PACKAGE_GTEST
+
 comment "gtest needs a toolchain w/ C++, wchar, threads"
 	depends on BR2_USE_MMU
-	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP
+	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
+		!BR2_INSTALL_LIBSTDCPP
package/gtest/gmock.pc renamed from package/gmock/gmock.pc +1 -1
similarity index 93%
rename from package/gmock/gmock.pc
rename to package/gtest/gmock.pc
index 2f90068..4c72354 100644
@@ -5,7 +5,7 @@ includedir=${prefix}/include
 
 Name: gmock
 Description: Google C++ Mocking Framework
-Version: 1.7.0
+Version: 1.8.0
 Libs: -L${libdir} -lgmock
 Libs.private: -lpthread
 Cflags: -I${includedir}
package/gtest/gtest.hash +1 -1
index 79e31e4..474008d 100644
@@ -1,2 +1,2 @@
 # Locally computed:
-sha256	f73a6546fdf9fce9ff93a5015e0333a8af3062a152a9ad6bcb772c96687016cc	gtest-release-1.7.0.tar.gz
+sha256	58a6f4277ca2bc8565222b3bbd58a177609e9c488e8a72649359ba51450db7d8	gtest-release-1.8.0.tar.gz
package/gtest/gtest.mk +19 -3
index eb30905..954a159 100644
@@ -4,13 +4,29 @@
 #
 ################################################################################
 
-# Make sure this remains the same version as the gmock one
-GTEST_VERSION = release-1.7.0
+GTEST_VERSION = release-1.8.0
 GTEST_SITE = $(call github,google,googletest,$(GTEST_VERSION))
 GTEST_INSTALL_STAGING = YES
 GTEST_INSTALL_TARGET = NO
 GTEST_LICENSE = BSD-3c
-GTEST_LICENSE_FILES = LICENSE
+GTEST_LICENSE_FILES = googletest/LICENSE
+
+ifeq ($(BR2_PACKAGE_GTEST_GMOCK),y)
+GTEST_DEPENDENCIES = host-gtest
+endif
+
+HOST_GTEST_LICENSE = Apache-2.0
+HOST_GTEST_LICENSE_FILES = googlemock/scripts/generator/LICENSE
+ifeq ($(BR2_PACKAGE_PYTHON3),y)
+HOST_GTEST_PYTHON_VERSION = $(PYTHON3_VERSION_MAJOR)
+HOST_GTEST_DEPENDENCIES = host-python3
+else
+HOST_GTEST_PYTHON_VERSION = $(PYTHON_VERSION_MAJOR)
+HOST_GTEST_DEPENDENCIES = host-python
+endif
+
+HOST_GTEST_GMOCK_PYTHONPATH = \
+	$(HOST_DIR)/usr/lib/python$(HOST_GTEST_PYTHON_VERSION)/site-packages
 
 # While it is possible to build gtest as shared library, using this gtest shared
 # library requires to set some special configure option in the project using
@@ -21,11 +37,12 @@ GTEST_LICENSE_FILES = LICENSE
 # the gtest sources.
 GTEST_CONF_OPTS = -DBUILD_SHARED_LIBS=OFF

package/gtest/gtest.mk GTEST_LICENSE_FILES = LICENSE · line 43

Quoted 10 lines
package/gtest/gtest.mk +4 -5
 
-define GTEST_INSTALL_STAGING_CMDS
-	$(INSTALL) -D -m 0755 $(@D)/libgtest.a $(STAGING_DIR)/usr/lib/libgtest.a
-	$(INSTALL) -D -m 0755 $(@D)/libgtest_main.a $(STAGING_DIR)/usr/lib/libgtest_main.a
-	$(INSTALL) -d -m 0755 $(STAGING_DIR)/usr/include/gtest/
-	cp -rp $(@D)/include/gtest/* $(STAGING_DIR)/usr/include/gtest/
+# By default, build gmock and gtest
+ifeq ($(BR2_PACKAGE_GTEST_GMOCK),)
+GTEST_CONF_OPTS = -DBUILD_GTEST=ON -DBUILD_GMOCK=OFF
+endif

Here, if BR2_PACKAGE_GTEST_GMOCK is not set -DBUILD_SHARED_LIBS=OFF will be dropped from GTEST_CONF_OPTS.

You should use += here:
GTEST_CONF_OPTS += -DBUILD_GTEST=ON -DBUILD_GMOCK=OFF

Otherwise shared libraries will be build:

./googletest/libgtest_main.so
./googletest/libgtest.so

Maybe it's something that can be fixed while merging this patch?

With that fixed:

Best regards,
Romain

Quoted 51 lines
package/gtest/gtest.mk +24 -1
+
+define GTEST_INSTALL_MISSING_FILES
 	$(INSTALL) -D -m 0644 package/gtest/gtest.pc \
 		$(STAGING_DIR)/usr/lib/pkgconfig/gtest.pc
 	# Generate the gtest-config script manually, since the CMake
@@ -39,9 +56,30 @@ define GTEST_INSTALL_STAGING_CMDS
 		s%@bindir@%$(STAGING_DIR)/usr/bin%;\
 		s%@PTHREAD_CFLAGS@%%;\
 		s%@PTHREAD_LIBS@%-lpthread%;' \
-		$(@D)/scripts/gtest-config.in \
+		$(@D)/googletest/scripts/gtest-config.in \
 		> $(STAGING_DIR)/usr/bin/gtest-config
 	chmod +x $(STAGING_DIR)/usr/bin/gtest-config
 endef
 
+define GTEST_GMOCK_INSTALL_MISSING_FILE
+	$(INSTALL) -D -m 0644 package/gtest/gmock.pc \
+		$(STAGING_DIR)/usr/lib/pkgconfig/gmock.pc
+endef
+
+GTEST_POST_INSTALL_STAGING_HOOKS += GTEST_INSTALL_MISSING_FILES
+ifeq ($(BR2_PACKAGE_GTEST_GMOCK),y)
+GTEST_POST_INSTALL_STAGING_HOOKS += GTEST_GMOCK_INSTALL_MISSING_FILE
+endif
+
+define HOST_GTEST_INSTALL_CMDS
+	$(INSTALL) -D -m 0755 $(@D)/googlemock/scripts/generator/gmock_gen.py \
+		$(HOST_DIR)/usr/bin/gmock_gen.py
+	ln -sf gmock_gen.py $(HOST_DIR)/usr/bin/gmock_gen
+	cp -rp $(@D)/googlemock/scripts/generator/cpp \
+		$(HOST_GTEST_GMOCK_PYTHONPATH)
+endef
+
 $(eval $(cmake-package))
+# The host package does not build anything, just installs gmock_gen stuff, so
+# it does not need to be a host-cmake-package.
+$(eval $(host-generic-package))
package/gtest/gtest.pc +1 -1
index b7a8aa4..594e79d 100644
@@ -5,7 +5,7 @@ includedir=${prefix}/include
 
 Name: gtest
 Description: Google C++ Testing Framework
-Version: 1.7.0
+Version: 1.8.0
 Libs: -L${libdir} -lgtest
 Libs.private: -lpthread
 Cflags: -I${includedir}
#14 lore raw

PATCH v5 1/1 gtest/gmock: bump to version 1.8.0

Hello,

(It would be nice to strip the irrelevant part of an e-mail when replying, so that one doesn't have to scroll through a huge e-mail just to find one comment lost in the middle of the reply. Thanks!)

Quoted 11 lines · Romain Naour

package/gtest/gtest.mk GTEST_LICENSE_FILES = LICENSE · line 43

Quoted 4 lines
package/gtest/gtest.mk +4 -0
+# By default, build gmock and gtest
+ifeq ($(BR2_PACKAGE_GTEST_GMOCK),)
+GTEST_CONF_OPTS = -DBUILD_GTEST=ON -DBUILD_GMOCK=OFF
+endif  

Here, if BR2_PACKAGE_GTEST_GMOCK is not set -DBUILD_SHARED_LIBS=OFF will be dropped from GTEST_CONF_OPTS.

You should use += here:
GTEST_CONF_OPTS += -DBUILD_GTEST=ON -DBUILD_GMOCK=OFF

Quoted 6 lines

Otherwise shared libraries will be build:

./googletest/libgtest_main.so
./googletest/libgtest.so

Maybe it's something that can be fixed while merging this patch?

Also, why is -BUILD_GTEST=on only passed when GMock is disabled?

I would have assumed something more like this:

GTEST_CONF_OPTS += -DBUILD_GTEST=ON

ifeq ($(BR2_PACKAGE_GTEST_GMOCK),y)
GTEST_CONF_OPTS += -DBUILD_GMOCK=ON
else
GTEST_CONF_OPTS += -DBUILD_GMOCK=OFF
endif

Thanks,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#15 lore raw

PATCH v5 1/1 gtest/gmock: bump to version 1.8.0

In reply to Carlos Santos

Hello,

package/gtest/gtest.mk define GTEST_INSTALL_STAGING_CMDS · line 77

Quoted 4 lines · Carlos Santos
package/gtest/gtest.mk +4 -0
+define HOST_GTEST_INSTALL_CMDS
+	$(INSTALL) -D -m 0755 $(@D)/googlemock/scripts/generator/gmock_gen.py \
+		$(HOST_DIR)/usr/bin/gmock_gen.py
+	ln -sf gmock_gen.py $(HOST_DIR)/usr/bin/gmock_gen

Is there a good reason to not install directly gmock_gen.py as gmock_gen ?

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#16 lore raw

PATCH v5 1/1 gtest/gmock: bump to version 1.8.0

Quoted 11 lines

From: "Thomas Petazzoni" <[email protected]>
To: "Carlos Santos" <[email protected]>
Cc: buildroot at buildroot.org, "Fabrice Fontaine" <[email protected]>, "romain naour" <[email protected]>, "yann morin 1998" <[email protected]>
Sent: Sunday, February 12, 2017 12:37:49 PM
Subject: Re: [Buildroot] [PATCH v5] gtest/gmock: bump to version 1.8.0

Hello,

On Sun, 12 Feb 2017 10:17:27 -0200, Carlos Santos wrote:

Quoted 7 lines

package/gtest/gtest.mk define GTEST_INSTALL_STAGING_CMDS · line 77

Quoted 4 lines
package/gtest/gtest.mk +4 -0
+define HOST_GTEST_INSTALL_CMDS
+	$(INSTALL) -D -m 0755 $(@D)/googlemock/scripts/generator/gmock_gen.py \
+		$(HOST_DIR)/usr/bin/gmock_gen.py
+	ln -sf gmock_gen.py $(HOST_DIR)/usr/bin/gmock_gen

Is there a good reason to not install directly gmock_gen.py as gmock_gen ?

IIRC some of out tests build calling gmock_gen.py and other calling gmock_gen but I need to check that tomorrow, at office. Right now I'm at home, without access to that code.

Carlos Santos (Casantos) - DATACOM, P&D
?Something must be done. This is something. Therefore we must do it.? (from the BBC series ?Yes, Prime Minister?, ?Power to the people?)

#17 lore raw

PATCH v5 1/1 gtest/gmock: bump to version 1.8.0

Hello,

Quoted 6 lines · Carlos Santos
Quoted 2 lines

Is there a good reason to not install directly gmock_gen.py as gmock_gen ?

IIRC some of out tests build calling gmock_gen.py and other calling gmock_gen but I need to check that tomorrow, at office. Right now I'm at home, without access to that code.

OK. Since it's weird, perhaps make sense to add a quick comment above this piece of code.

Thanks!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#18 lore raw

PATCH v6 1/1 gtest/gmock: bump to version 1.8.0

In reply to Carlos Santos

GTest version 1.8.0 includes gmock so merge both packages inside gtest

In this merge:

- Add gmock as a suboption of gtest (BR2_PACKAGE_GTEST_GMOCK) following advice from Arnout Vandecappelle
- Add BR2_PACKAGE_GMOCK as a legacy entry, selecting BR2_PACKAGE_GTEST and BR2_PACKAGE_GTEST_GMOCK.
- Use cmake to install libraries and headers and add missing files (gtest.pc, gtest-config, gmock.pc) in GTEST_POST_INSTALL_STAGING_HOOKS instead of redefining GTEST_INSTALL_STAGING_CMDS
- Remove patch on Python as gmock/gtest now supports python 3.0 (commit 456fc2b5c4e9ebf05a5987dfe1ff0ac9ffeb53cc)
- Add the correct license in HOST_GTEST_LICENSE as all python code in googlemock/scripts/generator is licensed under Apache-2.0 and not BSD-3c
- Fix URL of gtest project in Config.in
- Remove the gmock entry from DEVELOPERS
- Install gmock_gen directly, instead of as a symlink to gmock_gen.py

Notice that any external package that depends on gmock will cause an immediate build termination because make doesn't know how to build gmock. Since the user has just removed gmock from the legacy menu, it should be quite obvious what needs to be done.

---
Version history:

v1 (Fabrice Fontaine)
- Add gmock as a suboption
- Use cmake to install
- Remove patch on Python
- Add the correct license
- Fix URL of gtest project

v1->v2 (Carlos Santos)
- Add gmock a virtual package (yeah, yeah, big mistake)

v2->v3 (Carlos Santos)
- Got rid of the gmock virtual package (yeah, BIG mistake)
- Use $(PYTHON3_VERSION_MAJOR) to choose the Python version
- Several fixes, as suggested by Arnout Vandecappelle

v3->v4 (Carlos Santos)
- Several fixes, as suggested by Romain Naour

v4->v5 (Carlos Santos)
- Drop GTEST_VERSION_TAG after a parallel conversation with Thomas Petazzoni and Yann E. MORIN
(http://patchwork.ozlabs.org/patch/726836/).

v5->v6 (Carlos Santos)
- Fix typo found by Romain Naour
- Clarify the logic to choose between gtest or gtest+gmock and drop gmock_gen symlink to gmock_gen.py as identified by Thomas Petazzoni
- Move legacy entry to a 2017.05 session, since this will go to the "master" branch, not to "next".
---
Help git format-patch/send-email to build the recipient list (lazy boy)
Cc: "Thomas Petazzoni" <[email protected]>
Cc: "Yann E. MORIN" <[email protected]>

---
 Config.in.legacy                           | 11 +++++
 DEVELOPERS                                 |  1 -
 package/Config.in                          |  1 -
 package/gmock/0001-force-use-python2.patch | 20 ---------
 package/gmock/Config.in                    | 32 ---------------
 package/gmock/gmock.hash                   |  2 -
 package/gmock/gmock.mk                     | 64 -----------------------------
 package/gtest/Config.in                    | 30 +++++++++++++-
 package/{gmock => gtest}/gmock.pc          |  2 +-
 package/gtest/gtest.hash                   |  2 +-
 package/gtest/gtest.mk                     | 65 +++++++++++++++++++++++++-----
 package/gtest/gtest.pc                     |  2 +-
 12 files changed, 99 insertions(+), 133 deletions(-)
 delete mode 100644 package/gmock/0001-force-use-python2.patch
 delete mode 100644 package/gmock/Config.in
 delete mode 100644 package/gmock/gmock.hash
 delete mode 100644 package/gmock/gmock.mk
 rename package/{gmock => gtest}/gmock.pc (93%)
Config.in.legacy +11 -0
index 20445b8..cc2ab69 100644
@@ -143,6 +143,17 @@ comment "----------------------------------------------------"
 endif
 
 ###############################################################################
+comment "Legacy options removed in 2017.05"
+
+config BR2_PACKAGE_GMOCK
+	bool "gmock removed"
+	select BR2_LEGACY
+	select BR2_PACKAGE_GTEST
+	select BR2_PACKAGE_GTEST_GMOCK
+	help
+	  GMock is now a suboption of GTest
+
+###############################################################################
 comment "Legacy options removed in 2017.02"
 
 config BR2_PACKAGE_PERL_DB_FILE
DEVELOPERS +0 -1
index 7f65909..f27ec83 100644
@@ -286,7 +286,6 @@ N:	Carlo Caione <[email protected]>
 F:	package/sunxi-boards/
 
 N:	Carlos Santos <[email protected]>
-F:	package/gmock/
 F:	package/gtest/
 F:	package/libpam-radius-auth/
 F:	package/libpam-tacplus/
package/Config.in +0 -1
index 0212121..2ed7a08 100644
@@ -1325,7 +1325,6 @@ menu "Other"
 	source "package/gflags/Config.in"
 	source "package/glibmm/Config.in"
 	source "package/glm/Config.in"
-	source "package/gmock/Config.in"
 	source "package/gmp/Config.in"
 	source "package/gsl/Config.in"
 	source "package/gtest/Config.in"
package/gmock/0001-force-use-python2.patch deleted +0 -20
deleted file mode 100644
index 5dcb231..0000000
@@ -1,20 +0,0 @@
-Force use of Python 2 even when Python 3 is the default Python interpreter.
-
-Signed-off-by: Carlos Santos <[email protected]>
-
---- ./gtest/scripts/fuse_gtest_files.py.orig	2013-09-18 14:48:30.000000000 -0300
-+++ ./gtest/scripts/fuse_gtest_files.py	2015-07-22 15:42:53.291591205 -0300
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python2
- #
- # Copyright 2009, Google Inc.
- # All rights reserved.
---- ./scripts/generator/gmock_gen.py.orig	2013-09-18 14:50:15.000000000 -0300
-+++ ./scripts/generator/gmock_gen.py	2015-07-22 17:06:51.071815634 -0300
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python2
- #
- # Copyright 2008 Google Inc. All Rights Reserved.
- #
package/gmock/Config.in deleted +0 -32
deleted file mode 100644
index ec3eb92..0000000
@@ -1,32 +0,0 @@
-config BR2_PACKAGE_GMOCK
-	bool "gmock"
-	select BR2_PACKAGE_GTEST
-	depends on BR2_USE_WCHAR
-	depends on BR2_TOOLCHAIN_HAS_THREADS
-	depends on BR2_INSTALL_LIBSTDCPP
-	depends on BR2_USE_MMU # fork()
-	help
-	  Inspired by jMock, EasyMock, and Hamcrest, and designed with C++'s
-	  specifics in mind, Google C++ Mocking Framework (or Google Mock for
-	  short) is a library for writing and using C++ mock classes.
-
-	  Google Mock:
-
-	    * lets you create mock classes trivially using simple macros,
-	    * supports a rich set of matchers and actions,
-	    * handles unordered, partially ordered, or completely ordered
-	      expectations,
-	    * is extensible by users, and
-	    * works on Linux, Mac OS X, Windows, Windows Mobile, minGW, and
-	      Symbian.
-
-	    http://code.google.com/p/googlemock/
-
-	  There are both host and target packages. The target one has include
-	  files required to compile the tests and the static libraries required
-	  to link/run them. The host package installs gmock_gen, a Python script
-	  used to generate code mocks.
-
-comment "gmock needs a toolchain w/ C++, wchar, threads"
-	depends on BR2_USE_MMU
-	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP
package/gmock/gmock.hash deleted +0 -2
deleted file mode 100644
index 2b71739..0000000
@@ -1,2 +0,0 @@
-# Locally computed
-sha256 26fcbb5925b74ad5fc8c26b0495dfc96353f4d553492eb97e85a8a6d2f43095b  gmock-1.7.0.zip
package/gmock/gmock.mk deleted +0 -64

64 lines not on this page · raw message

package/gtest/Config.in +29 -1
index 355b736..3f1f385 100644
@@ -21,6 +21,34 @@ config BR2_PACKAGE_GTEST
 
 	  https://github.com/google/googletest
 
+if BR2_PACKAGE_GTEST
+
+config BR2_PACKAGE_GTEST_GMOCK
+	bool "gmock"
+	help
+	  Inspired by jMock, EasyMock, and Hamcrest, and designed with
+	  C++'s specifics in mind, Google C++ Mocking Framework (or
+	  Google Mock for short) is a library for writing and using C++
+	  mock classes.
+
+	  Google Mock:
+
+	    * lets you create mock classes trivially using simple
+	      macros, supports a rich set of matchers and actions,
+	    * handles unordered, partially ordered, or completely
+	      ordered expectations,
+	    * is extensible by users, and
+	    * works on Linux, Mac OS X, Windows, Windows Mobile, minGW,
+	      and Symbian.
+
+	  There are both host and target packages. The target one has
+	  include files required to compile the tests and the static
+	  libraries required to link/run them. The host package installs
+	  gmock_gen, a Python script used to generate code mocks.
+
+endif # BR2_PACKAGE_GTEST
+
 comment "gtest needs a toolchain w/ C++, wchar, threads"
 	depends on BR2_USE_MMU
-	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP
+	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
+		!BR2_INSTALL_LIBSTDCPP
package/gtest/gmock.pc renamed from package/gmock/gmock.pc +1 -1
similarity index 93%
rename from package/gmock/gmock.pc
rename to package/gtest/gmock.pc
index 2f90068..4c72354 100644
@@ -5,7 +5,7 @@ includedir=${prefix}/include
 
 Name: gmock
 Description: Google C++ Mocking Framework
-Version: 1.7.0
+Version: 1.8.0
 Libs: -L${libdir} -lgmock
 Libs.private: -lpthread
 Cflags: -I${includedir}
package/gtest/gtest.hash +1 -1
index 79e31e4..474008d 100644
@@ -1,2 +1,2 @@
 # Locally computed:
-sha256	f73a6546fdf9fce9ff93a5015e0333a8af3062a152a9ad6bcb772c96687016cc	gtest-release-1.7.0.tar.gz
+sha256	58a6f4277ca2bc8565222b3bbd58a177609e9c488e8a72649359ba51450db7d8	gtest-release-1.8.0.tar.gz
package/gtest/gtest.mk +56 -9

89 lines not on this page · raw message

package/gtest/gtest.pc +1 -1
index b7a8aa4..594e79d 100644
@@ -5,7 +5,7 @@ includedir=${prefix}/include
 
 Name: gtest
 Description: Google C++ Testing Framework
-Version: 1.7.0
+Version: 1.8.0
 Libs: -L${libdir} -lgtest
 Libs.private: -lpthread
 Cflags: -I${includedir}
Signature · 1 line
2.7.4
#19 lore raw

PATCH v7 1/1 gtest/gmock: bump to version 1.8.0

GTest version 1.8.0 includes gmock so merge both packages inside gtest

In this merge:

- Add gmock as a suboption of gtest (BR2_PACKAGE_GTEST_GMOCK) following advice from Arnout Vandecappelle
- Add BR2_PACKAGE_GMOCK as a legacy entry, selecting BR2_PACKAGE_GTEST and BR2_PACKAGE_GTEST_GMOCK.
- Use cmake to install libraries and headers and add missing files (gtest.pc, gtest-config, gmock.pc) in GTEST_POST_INSTALL_STAGING_HOOKS instead of redefining GTEST_INSTALL_STAGING_CMDS
- Remove patch on Python as gmock/gtest now supports python 3.0 (commit 456fc2b5c4e9ebf05a5987dfe1ff0ac9ffeb53cc)
- Add the correct license in HOST_GTEST_LICENSE as all python code in googlemock/scripts/generator is licensed under Apache-2.0 and not BSD-3c
- Fix URL of gtest project in Config.in
- Remove the gmock entry from DEVELOPERS
- Install gmock_gen directly, instead of as a symlink to gmock_gen.py

Notice that any external package that depends on gmock will cause an immediate build termination because make doesn't know how to build gmock. Since the user has just removed gmock from the legacy menu, it should be quite obvious what needs to be done.

---
Version history:

v1 (Fabrice Fontaine)
- Add gmock as a suboption
- Use cmake to install
- Remove patch on Python
- Add the correct license
- Fix URL of gtest project

v1->v2 (Carlos Santos)
- Add gmock a virtual package (yeah, yeah, big mistake)

v2->v3 (Carlos Santos)
- Got rid of the gmock virtual package (yeah, BIG mistake)
- Use $(PYTHON3_VERSION_MAJOR) to choose the Python version
- Several fixes, as suggested by Arnout Vandecappelle

v3->v4 (Carlos Santos)
- Several fixes, as suggested by Romain Naour

v4->v5 (Carlos Santos)
- Drop GTEST_VERSION_TAG after a parallel conversation with Thomas Petazzoni and Yann E. MORIN
(http://patchwork.ozlabs.org/patch/726836/).

v5->v6 (Carlos Santos)
- Fix typo found by Romain Naour
- Clarify the logic to choose between gtest or gtest+gmock and drop gmock_gen symlink to gmock_gen.py as identified by Thomas Petazzoni
- Move legacy entry to a 2017.05 session, since this will go to the "master" branch, not to "next".

v6->v7 (Carlos Santos)
- Fix GTEST_CONF_OPTS to match the tricki logic in CMakeLists.txt. The change made in v6 made it build gtest, only, regardless the value of BR2_PACKAGE_GTEST_GMOCK.
---
Help git format-patch/send-email to build the recipient list (lazy boy)
Cc: "Thomas Petazzoni" <[email protected]>
Cc: "Yann E. MORIN" <[email protected]>
CC: "Romain Naour" <[email protected]>

---
 Config.in.legacy                           | 11 +++++
 DEVELOPERS                                 |  1 -
 package/Config.in                          |  1 -
 package/gmock/0001-force-use-python2.patch | 20 ----------
 package/gmock/Config.in                    | 32 ---------------
 package/gmock/gmock.hash                   |  2 -
 package/gmock/gmock.mk                     | 64 ------------------------------
 package/gmock/gmock.pc                     | 11 -----
 package/gtest/Config.in                    | 30 +++++++++++++-
 package/gtest/gmock.pc                     | 11 +++++
 package/gtest/gtest.hash                   |  2 +-
 package/gtest/gtest.mk                     | 63 ++++++++++++++++++++++++-----
 package/gtest/gtest.pc                     |  2 +-
 13 files changed, 107 insertions(+), 143 deletions(-)
 delete mode 100644 package/gmock/0001-force-use-python2.patch
 delete mode 100644 package/gmock/Config.in
 delete mode 100644 package/gmock/gmock.hash
 delete mode 100644 package/gmock/gmock.mk
 delete mode 100644 package/gmock/gmock.pc
 create mode 100644 package/gtest/gmock.pc
Config.in.legacy +11 -0
index 20445b8..cc2ab69 100644
@@ -143,6 +143,17 @@ comment "----------------------------------------------------"
 endif
 
 ###############################################################################
+comment "Legacy options removed in 2017.05"
+
+config BR2_PACKAGE_GMOCK
+	bool "gmock removed"
+	select BR2_LEGACY
+	select BR2_PACKAGE_GTEST
+	select BR2_PACKAGE_GTEST_GMOCK
+	help
+	  GMock is now a suboption of GTest
+
+###############################################################################
 comment "Legacy options removed in 2017.02"
 
 config BR2_PACKAGE_PERL_DB_FILE
DEVELOPERS +0 -1
index 09a0a6e..752b873 100644
@@ -286,7 +286,6 @@ N:	Carlo Caione <[email protected]>
 F:	package/sunxi-boards/
 
 N:	Carlos Santos <[email protected]>
-F:	package/gmock/
 F:	package/gtest/
 F:	package/libpam-radius-auth/
 F:	package/libpam-tacplus/
package/Config.in +0 -1
index 0212121..2ed7a08 100644
@@ -1325,7 +1325,6 @@ menu "Other"
 	source "package/gflags/Config.in"
 	source "package/glibmm/Config.in"
 	source "package/glm/Config.in"
-	source "package/gmock/Config.in"
 	source "package/gmp/Config.in"
 	source "package/gsl/Config.in"
 	source "package/gtest/Config.in"
package/gmock/0001-force-use-python2.patch deleted +0 -20
deleted file mode 100644
index 5dcb231..0000000
@@ -1,20 +0,0 @@
-Force use of Python 2 even when Python 3 is the default Python interpreter.
-
-Signed-off-by: Carlos Santos <[email protected]>
-
---- ./gtest/scripts/fuse_gtest_files.py.orig	2013-09-18 14:48:30.000000000 -0300
-+++ ./gtest/scripts/fuse_gtest_files.py	2015-07-22 15:42:53.291591205 -0300
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python2
- #
- # Copyright 2009, Google Inc.
- # All rights reserved.
---- ./scripts/generator/gmock_gen.py.orig	2013-09-18 14:50:15.000000000 -0300
-+++ ./scripts/generator/gmock_gen.py	2015-07-22 17:06:51.071815634 -0300
-@@ -1,4 +1,4 @@
--#!/usr/bin/env python
-+#!/usr/bin/env python2
- #
- # Copyright 2008 Google Inc. All Rights Reserved.
- #
package/gmock/Config.in deleted +0 -32
deleted file mode 100644
index ec3eb92..0000000
@@ -1,32 +0,0 @@
-config BR2_PACKAGE_GMOCK
-	bool "gmock"
-	select BR2_PACKAGE_GTEST
-	depends on BR2_USE_WCHAR
-	depends on BR2_TOOLCHAIN_HAS_THREADS
-	depends on BR2_INSTALL_LIBSTDCPP
-	depends on BR2_USE_MMU # fork()
-	help
-	  Inspired by jMock, EasyMock, and Hamcrest, and designed with C++'s
-	  specifics in mind, Google C++ Mocking Framework (or Google Mock for
-	  short) is a library for writing and using C++ mock classes.
-
-	  Google Mock:
-
-	    * lets you create mock classes trivially using simple macros,
-	    * supports a rich set of matchers and actions,
-	    * handles unordered, partially ordered, or completely ordered
-	      expectations,
-	    * is extensible by users, and
-	    * works on Linux, Mac OS X, Windows, Windows Mobile, minGW, and
-	      Symbian.
-
-	    http://code.google.com/p/googlemock/
-
-	  There are both host and target packages. The target one has include
-	  files required to compile the tests and the static libraries required
-	  to link/run them. The host package installs gmock_gen, a Python script
-	  used to generate code mocks.
-
-comment "gmock needs a toolchain w/ C++, wchar, threads"
-	depends on BR2_USE_MMU
-	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP
package/gmock/gmock.hash deleted +0 -2
deleted file mode 100644
index 2b71739..0000000
@@ -1,2 +0,0 @@
-# Locally computed
-sha256 26fcbb5925b74ad5fc8c26b0495dfc96353f4d553492eb97e85a8a6d2f43095b  gmock-1.7.0.zip
package/gmock/gmock.mk deleted +0 -64

64 lines not on this page · raw message

package/gmock/gmock.pc deleted +0 -11
deleted file mode 100644
index 2f90068..0000000
@@ -1,11 +0,0 @@
-prefix=/usr
-exec_prefix=${prefix}
-libdir=${prefix}/lib/
-includedir=${prefix}/include
-
-Name: gmock
-Description: Google C++ Mocking Framework
-Version: 1.7.0
-Libs: -L${libdir} -lgmock
-Libs.private: -lpthread
-Cflags: -I${includedir}
package/gtest/Config.in +29 -1
index 355b736..3f1f385 100644
@@ -21,6 +21,34 @@ config BR2_PACKAGE_GTEST
 
 	  https://github.com/google/googletest
 
+if BR2_PACKAGE_GTEST
+
+config BR2_PACKAGE_GTEST_GMOCK
+	bool "gmock"
+	help
+	  Inspired by jMock, EasyMock, and Hamcrest, and designed with
+	  C++'s specifics in mind, Google C++ Mocking Framework (or
+	  Google Mock for short) is a library for writing and using C++
+	  mock classes.
+
+	  Google Mock:
+
+	    * lets you create mock classes trivially using simple
+	      macros, supports a rich set of matchers and actions,
+	    * handles unordered, partially ordered, or completely
+	      ordered expectations,
+	    * is extensible by users, and
+	    * works on Linux, Mac OS X, Windows, Windows Mobile, minGW,
+	      and Symbian.
+
+	  There are both host and target packages. The target one has
+	  include files required to compile the tests and the static
+	  libraries required to link/run them. The host package installs
+	  gmock_gen, a Python script used to generate code mocks.
+
+endif # BR2_PACKAGE_GTEST
+
 comment "gtest needs a toolchain w/ C++, wchar, threads"
 	depends on BR2_USE_MMU
-	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || !BR2_INSTALL_LIBSTDCPP
+	depends on !BR2_USE_WCHAR || !BR2_TOOLCHAIN_HAS_THREADS || \
+		!BR2_INSTALL_LIBSTDCPP
package/gtest/gmock.pc new file +11 -0
new file mode 100644
index 0000000..4c72354
@@ -0,0 +1,11 @@
+prefix=/usr
+exec_prefix=${prefix}
+libdir=${prefix}/lib/
+includedir=${prefix}/include
+
+Name: gmock
+Description: Google C++ Mocking Framework
+Version: 1.8.0
+Libs: -L${libdir} -lgmock
+Libs.private: -lpthread
+Cflags: -I${includedir}
package/gtest/gtest.hash +1 -1
index 79e31e4..474008d 100644
@@ -1,2 +1,2 @@
 # Locally computed:
-sha256	f73a6546fdf9fce9ff93a5015e0333a8af3062a152a9ad6bcb772c96687016cc	gtest-release-1.7.0.tar.gz
+sha256	58a6f4277ca2bc8565222b3bbd58a177609e9c488e8a72649359ba51450db7d8	gtest-release-1.8.0.tar.gz
package/gtest/gtest.mk +54 -9

87 lines not on this page · raw message

package/gtest/gtest.pc +1 -1
index b7a8aa4..594e79d 100644
@@ -5,7 +5,7 @@ includedir=${prefix}/include
 
 Name: gtest
 Description: Google C++ Testing Framework
-Version: 1.7.0
+Version: 1.8.0
 Libs: -L${libdir} -lgtest
 Libs.private: -lpthread
 Cflags: -I${includedir}
Signature · 1 line
2.7.4
#20 lore raw

PATCH v7 1/1 gtest/gmock: bump to version 1.8.0

Hello,

Thanks for this new version, but there's still one thing (the same thing as before) that I don't understand.

package/gtest/gtest.mk GTEST_LICENSE_FILES = LICENSE · line 47

Quoted 8 lines · Carlos Santos
package/gtest/gtest.mk +8 -0
+# GTest's CMakeLists.txt uses a tricky logic:
+# - by default sets BUILD_GMOCK to ON and BUILD_GTEST to OFF
+# - if BUILD_GMOCK is ON then builds gmock, which in its turn builds gtest,
+#   regardless the value of BUILD_GTEST
+# - otherwise, if BUILD_GTEST is ON then build gtest, only
+# So, to build only gtest we must set BUILD_GTEST to ON and BUILD_GMOCK to OFF
+# to revert the default values. Setting both to ON is not really necessary but
+# describes clearly what we intend to do.

Knowing this, why don't you simply do the much more obvious:

GTEST_CONF_OPTS += -DBUILD_GTEST=ON

ifeq ($(BR2_PACKAGE_GTEST_GMOCK),y)
GTEST_CONF_OPTS += -DBUILD_GMOCK=ON
else
GTEST_CONF_OPTS += -DBUILD_GMOCK=OFF
endif

instead of the very cryptic!

package/gtest/gtest.mk GTEST_LICENSE_FILES = LICENSE · line 51

Quoted 4 lines
package/gtest/gtest.mk +4 -0
+ifeq ($(BR2_PACKAGE_GTEST_GMOCK),)
+GTEST_CONF_OPTS += -DBUILD_GMOCK=OFF
+GTEST_CONF_OPTS += -DBUILD_GTEST=ON
+endif

Thanks,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#21 lore raw

PATCH v7 1/1 gtest/gmock: bump to version 1.8.0

[resending, since Zimbra failed to deliver my last message]

Quoted 32 lines

From: "Thomas Petazzoni" <[email protected]>
To: "Carlos Santos" <[email protected]>
Cc: buildroot at buildroot.org, "Fabrice Fontaine" <[email protected]>, "Romain Naour" <[email protected]>, "Yann E. MORIN" <[email protected]>
Sent: Sunday, February 26, 2017 11:05:25 AM
Subject: Re: [Buildroot] [PATCH v7] gtest/gmock: bump to version 1.8.0

Hello,

Thanks for this new version, but there's still one thing (the same thing as before) that I don't understand.

package/gtest/gtest.mk GTEST_LICENSE_FILES = LICENSE · line 47

Quoted 8 lines · Carlos Santos
package/gtest/gtest.mk +8 -0
+# GTest's CMakeLists.txt uses a tricky logic:
+# - by default sets BUILD_GMOCK to ON and BUILD_GTEST to OFF
+# - if BUILD_GMOCK is ON then builds gmock, which in its turn builds gtest,
+#   regardless the value of BUILD_GTEST
+# - otherwise, if BUILD_GTEST is ON then build gtest, only
+# So, to build only gtest we must set BUILD_GTEST to ON and BUILD_GMOCK to OFF
+# to revert the default values. Setting both to ON is not really necessary but
+# describes clearly what we intend to do.

Knowing this, why don't you simply do the much more obvious:

GTEST_CONF_OPTS += -DBUILD_GTEST=ON

ifeq ($(BR2_PACKAGE_GTEST_GMOCK),y)
GTEST_CONF_OPTS += -DBUILD_GMOCK=ON
else
GTEST_CONF_OPTS += -DBUILD_GMOCK=OFF
endif

Quoted 6 lines

instead of the very cryptic!

package/gtest/gtest.mk GTEST_LICENSE_FILES = LICENSE · line 51

Quoted 4 lines
package/gtest/gtest.mk +4 -0
+ifeq ($(BR2_PACKAGE_GTEST_GMOCK),)
+GTEST_CONF_OPTS += -DBUILD_GMOCK=OFF
+GTEST_CONF_OPTS += -DBUILD_GTEST=ON
+endif

Because it does not work (try http://patchwork.ozlabs.org/patch/727786/).

Signature · 4 lines
Carlos Santos (Casantos) - DATACOM, P&D
?The greatest triumph that modern PR can offer is the transcendent 
success of having your words and actions judged by your reputation, 
rather than the other way about.? ? Christopher Hitchens
#22 lore raw

PATCH v7 1/1 gtest/gmock: bump to version 1.8.0

Hello,

Quoted 1 line · Carlos Santos

Because it does not work (try http://patchwork.ozlabs.org/patch/727786/).

Could you define "does not work" ? Indeed, I applied this version of your patch (v6), and built it with the following configurations:

BR2_PACKAGE_GTEST=y
# BR2_PACKAGE_GTEST_GMOCK is not set

and:

BR2_PACKAGE_GTEST=y
BR2_PACKAGE_GTEST_GMOCK=y

and both built successfully.

The first one only installed gtest:

Quoted 1 line
Quoted 1 line
Quoted 1 line

gtest release-1.8.0 Installing to staging directory

PATH="/home/thomas/projets/buildroot/output/host/bin:/home/thomas/projets/buildroot/output/host/sbin:/home/thomas/projets/buildroot/output/host/usr/bin:/home/thomas/projets/buildroot/output/host/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/thomas/.rvm/bin:/home/thomas/sys/bin:/home/thomas/.gem/ruby/2.1.0/bin:/home/thomas/.rvm/bin" /usr/bin/make -j5 DESTDIR=/home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot install/fast -C /home/thomas/projets/buildroot/output/build/gtest-release-1.8.0/ Install the project...
-- Install configuration: "Release"
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libgtest.a
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libgtest_main.a
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest-param-test.h
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest-test-part.h
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest-typed-test.h
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest-message.h
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest-death-test.h
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-param-util.h
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-linked_ptr.h
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-type-util.h
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-port-arch.h
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-type-util.h.pump
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-tuple.h
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-internal.h
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-param-util-generated.h
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-port.h
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-string.h
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-param-util-generated.h.pump
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-death-test-internal.h
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-filepath.h
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-tuple.h.pump
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/custom
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/custom/gtest-port.h
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/custom/gtest.h
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/custom/gtest-printers.h
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest_pred_impl.h
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest.h
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest-spi.h
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest-printers.h
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest_prod.h
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest-param-test.h.pump
/usr/bin/install -D -m 0644 package/gtest/gtest.pc /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/pkgconfig/gtest.pc
# Generate the gtest-config script manually, since the CMake

# build system is not doing it.
sed 's%@PACKAGE_TARNAME@%gtest%; s%@PACKAGE_VERSION@%release-1.8.0%; s%@prefix@%/home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr%; s%@exec_prefix@%/home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr%; s%@libdir@%/home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib%; s%@includedir@%/home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include%; s%@bindir@%/home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/bin%; s%@PTHREAD_CFLAGS@%%; s%@PTHREAD_LIBS@%-lpthread%;' /home/thomas/projets/buildroot/output/build/gtest-release-1.8.0/googletest/scripts/gtest-config.in > /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/bin/gtest-config
chmod +x /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/bin/gtest-config

While the second one installed both gtest and gmock:

Quoted 1 line
Quoted 1 line
Quoted 1 line

gtest release-1.8.0 Installing to staging directory

PATH="/home/thomas/projets/buildroot/output/host/bin:/home/thomas/projets/buildroot/output/host/sbin:/home/thomas/projets/buildroot/output/host/usr/bin:/home/thomas/projets/buildroot/output/host/usr/sbin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/thomas/.rvm/bin:/home/thomas/sys/bin:/home/thomas/.gem/ruby/2.1.0/bin:/home/thomas/.rvm/bin" /usr/bin/make -j5 DESTDIR=/home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot install/fast -C /home/thomas/projets/buildroot/output/build/gtest-release-1.8.0/ Install the project...
-- Install configuration: "Release"
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libgmock.a
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libgmock_main.a
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/gmock-generated-nice-strict.h.pump
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/gmock-cardinalities.h
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/gmock-more-matchers.h
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/gmock-generated-nice-strict.h
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/gmock-generated-actions.h.pump
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/gmock-generated-matchers.h.pump
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/gmock-actions.h
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/gmock.h
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/gmock-more-actions.h
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/internal
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/internal/gmock-port.h
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/internal/gmock-internal-utils.h
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/internal/gmock-generated-internal-utils.h.pump
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/internal/gmock-generated-internal-utils.h
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/internal/custom
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/internal/custom/gmock-port.h
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/internal/custom/gmock-generated-actions.h.pump
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/internal/custom/gmock-matchers.h
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/internal/custom/gmock-generated-actions.h
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/gmock-matchers.h
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/gmock-spec-builders.h
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/gmock-generated-actions.h
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/gmock-generated-function-mockers.h.pump
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/gmock-generated-matchers.h
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gmock/gmock-generated-function-mockers.h
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libgtest.a
-- Installing: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/libgtest_main.a
-- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest
-- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest-param-test.h
-- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest-test-part.h
-- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest-typed-test.h
-- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest-message.h
-- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest-death-test.h
-- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal
-- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-param-util.h
-- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-linked_ptr.h
-- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-type-util.h
-- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-port-arch.h
-- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-type-util.h.pump
-- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-tuple.h
-- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-internal.h
-- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-param-util-generated.h
-- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-port.h
-- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-string.h
-- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-param-util-generated.h.pump
-- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-death-test-internal.h
-- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-filepath.h
-- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/gtest-tuple.h.pump
-- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/custom
-- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/custom/gtest-port.h
-- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/custom/gtest.h
-- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/internal/custom/gtest-printers.h
-- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest_pred_impl.h
-- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest.h
-- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest-spi.h
-- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest-printers.h
-- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest_prod.h
-- Up-to-date: /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include/gtest/gtest-param-test.h.pump
/usr/bin/install -D -m 0644 package/gtest/gtest.pc /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/pkgconfig/gtest.pc
# Generate the gtest-config script manually, since the CMake

# build system is not doing it.
sed 's%@PACKAGE_TARNAME@%gtest%; s%@PACKAGE_VERSION@%release-1.8.0%; s%@prefix@%/home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr%; s%@exec_prefix@%/home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr%; s%@libdir@%/home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib%; s%@includedir@%/home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/include%; s%@bindir@%/home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/bin%; s%@PTHREAD_CFLAGS@%%; s%@PTHREAD_LIBS@%-lpthread%;' /home/thomas/projets/buildroot/output/build/gtest-release-1.8.0/googletest/scripts/gtest-config.in > /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/bin/gtest-config
chmod +x /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/bin/gtest-config
/usr/bin/install -D -m 0644 package/gtest/gmock.pc /home/thomas/projets/buildroot/output/host/usr/arm-buildroot-linux-uclibcgnueabi/sysroot/usr/lib/pkgconfig/gmock.pc

What am I missing here ?

Thanks,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#23 lore raw

PATCH v7 1/1 gtest/gmock: bump to version 1.8.0

Quoted 19 lines

From: "Thomas Petazzoni" <[email protected]>
To: "Carlos Santos" <[email protected]>
Cc: "Fabrice Fontaine" <[email protected]>, "Romain Naour" <[email protected]>, "Yann E. MORIN" <[email protected]>, buildroot at buildroot.org
Sent: Wednesday, March 1, 2017 7:09:27 PM
Subject: Re: [Buildroot] [PATCH v7] gtest/gmock: bump to version 1.8.0

Hello,

Quoted 1 line · Carlos Santos

Because it does not work (try http://patchwork.ozlabs.org/patch/727786/).

Could you define "does not work" ? Indeed, I applied this version of your patch (v6), and built it with the following configurations:

BR2_PACKAGE_GTEST=y
# BR2_PACKAGE_GTEST_GMOCK is not set

Quoted 6 lines

and:

BR2_PACKAGE_GTEST=y
BR2_PACKAGE_GTEST_GMOCK=y

and both built successfully.

Hum, that's correct. I'm at work now, without access to the machine in which I was running my tests, at home, and can't reproduce the problem that led me to believe that v7 was necessary. Looks like it was just a mistake.

Please apply v6 and discard v7. Sorry for the noise.

Signature · 4 lines
Carlos Santos (Casantos) - DATACOM, P&D
?The greatest triumph that modern PR can offer is the transcendent 
success of having your words and actions judged by your reputation, 
rather than the other way about.? ? Christopher Hitchens
#24 lore raw

PATCH v6 1/1 gtest/gmock: bump to version 1.8.0

In reply to Carlos Santos

Hello,

Quoted 21 lines · Carlos Santos

GTest version 1.8.0 includes gmock so merge both packages inside gtest

In this merge:

- Add gmock as a suboption of gtest (BR2_PACKAGE_GTEST_GMOCK) following advice from Arnout Vandecappelle
- Add BR2_PACKAGE_GMOCK as a legacy entry, selecting BR2_PACKAGE_GTEST and BR2_PACKAGE_GTEST_GMOCK.
- Use cmake to install libraries and headers and add missing files (gtest.pc, gtest-config, gmock.pc) in GTEST_POST_INSTALL_STAGING_HOOKS instead of redefining GTEST_INSTALL_STAGING_CMDS
- Remove patch on Python as gmock/gtest now supports python 3.0 (commit 456fc2b5c4e9ebf05a5987dfe1ff0ac9ffeb53cc)
- Add the correct license in HOST_GTEST_LICENSE as all python code in googlemock/scripts/generator is licensed under Apache-2.0 and not BSD-3c
- Fix URL of gtest project in Config.in
- Remove the gmock entry from DEVELOPERS
- Install gmock_gen directly, instead of as a symlink to gmock_gen.py

Quoted 8 lines

Notice that any external package that depends on gmock will cause an immediate build termination because make doesn't know how to build gmock. Since the user has just removed gmock from the legacy menu, it should be quite obvious what needs to be done.

As we discussed, I have applied this v6, with a few changes, see below.

Config.in.legacy comment "----------------------------------------------------" · line 149

Quoted 2 lines
Config.in.legacy +2 -0
+config BR2_PACKAGE_GMOCK
+	bool "gmock removed"

It's not exactly removed, but merged into gtest, so I've changed the prompt slightly here.

package/gtest/gtest.mk line 15

Quoted 2 lines
package/gtest/gtest.mk +2 -0
+ifeq ($(BR2_PACKAGE_GTEST_GMOCK),y)
+GTEST_DEPENDENCIES = host-gtest

Using a '=' here is not a good idea, += should be used instead. I agree '=' works fine, but if someone else adds another GTEST_DEPENDENCIES = above, then it will not be taken into account.

Generally speaking, for conditional assignments to <pkg>_DEPENDENCIES, I really prefer when += is used.

package/gtest/gtest.mk line 22

Quoted 7 lines
package/gtest/gtest.mk +7 -0
+endif
+
+HOST_GTEST_LICENSE = Apache-2.0
+HOST_GTEST_LICENSE_FILES = googlemock/scripts/generator/LICENSE
+ifeq ($(BR2_PACKAGE_PYTHON3),y)
+HOST_GTEST_PYTHON_VERSION = $(PYTHON3_VERSION_MAJOR)
+HOST_GTEST_DEPENDENCIES = host-python3

Ditto.

package/gtest/gtest.mk line 25

Quoted 3 lines
package/gtest/gtest.mk +3 -0
+else
+HOST_GTEST_PYTHON_VERSION = $(PYTHON_VERSION_MAJOR)
+HOST_GTEST_DEPENDENCIES = host-python

Ditto.

package/gtest/gtest.mk GTEST_LICENSE_FILES = LICENSE · line 47

Quoted 8 lines
package/gtest/gtest.mk +8 -0
+# GTest's CMakeLists.txt uses a tricky logic:
+# - by default sets BUILD_GMOCK to ON and BUILD_GTEST to OFF
+# - if BUILD_GMOCK is ON then builds gmock, which in its turn builds gtest,
+#   regardless the value of BUILD_GTEST
+# - otherwise, if BUILD_GTEST is ON then build gtest, only
+# So, to build only gtest we must set BUILD_GTEST to ON and BUILD_GMOCK to OFF
+# to revert the default values. Setting both to ON is not really necessary but
+# describes clearly what we intend to do.

I really don't see what's tricky in the need to enable what you want to build, and disable what you don't want, which is exactly what the following piece of code does. So I've dropped this comment.

package/gtest/gtest.mk GTEST_LICENSE_FILES = LICENSE

Quoted 11 lines
package/gtest/gtest.mk +11 -0
+GTEST_CONF_OPTS += -DBUILD_GTEST=ON
+ifeq ($(BR2_PACKAGE_GTEST_GMOCK),y)
+GTEST_CONF_OPTS += -DBUILD_GMOCK=ON
+else
+GTEST_CONF_OPTS += -DBUILD_GMOCK=OFF
+endif
+
+define GTEST_GMOCK_INSTALL_MISSING_FILE
+	$(INSTALL) -D -m 0644 package/gtest/gmock.pc \
+		$(STAGING_DIR)/usr/lib/pkgconfig/gmock.pc
+endef

I've moved this...

package/gtest/gtest.mk define GTEST_INSTALL_STAGING_CMDS · line 80

Quoted 3 lines
package/gtest/gtest.mk +3 -0
+
+GTEST_POST_INSTALL_STAGING_HOOKS = GTEST_INSTALL_MISSING_FILES
+ifeq ($(BR2_PACKAGE_GTEST_GMOCK),y)

... inside the condition where it is actually used.

package/gtest/gtest.mk define GTEST_INSTALL_STAGING_CMDS · line 82

Quoted 2 lines
package/gtest/gtest.mk +2 -0
+GTEST_POST_INSTALL_STAGING_HOOKS += GTEST_GMOCK_INSTALL_MISSING_FILE
+endif

Thanks a lot for having worked on this, and going through the numerous iterations!

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com