gtest: bump to version 1.8.0
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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
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.0Version 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) inGTEST_POST_INSTALL_STAGING_HOOKSinstead of redefiningGTEST_INSTALL_STAGING_CMDS
- Remove patch on Python as gmock/gtest now supports python 3.0 (commit456fc2b5c4e9ebf05a5987dfe1ff0ac9ffeb53cc)
- Add the correct license inHOST_GTEST_LICENSEas all python code in googlemock/scripts/generator is licensed under Apache-2.0 and not BSD-3c
- Fix URL of gtest project in Config.inSigned-off-by Fabrice Fontaine <[email protected]>---
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.patchdelete mode 100644 package/gmock/Config.in
delete mode 100644 package/gmock/gmock.hash
delete mode 100644package/gmock/gmock.mk
rename package/{gmock => gtest}/gmock.pc (93%)package/Config.in +0
-1@@ -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@@ -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@@ -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@@ -1,2 +0,0 @@ -# Locally computed -sha256 26fcbb5925b74ad5fc8c26b0495dfc96353f4d553492eb97e85a8a6d2f43095bgmock-1.7.0.zip
package/gmock/gmock.mk deleted +0
-38@@ -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@@ -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
PATCH 1/1 gtest/gmock: bump to version 1.8.0
In reply to Fabrice FontaineFrom: 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
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 selectsBR2_PACKAGE_GTESTandBR2_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_HOOKSinstead of redefiningGTEST_INSTALL_STAGING_CMDS
- Remove patch on Python as gmock/gtest now supports python 3.0 (commit456fc2b5c4e9ebf05a5987dfe1ff0ac9ffeb53cc)
- Add the correct license inHOST_GTEST_LICENSEas 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
Signed-off-by Fabrice Fontaine <[email protected]>Signed-off-by Carlos Santos <[email protected]>---
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
Signed-off-by Carlos Santos <[email protected]>--- 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@@ -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)) +endifpackage/gtest/gtest.pc +1
-1@@ -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
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 selectsBR2_PACKAGE_GTESTandBR2_PACKAGE_GTEST_GMOCK, to provide backward compatibilityI don't think this is a good idea.
* It means we have to keep on supporting the
BR2_PACKAGE_GMOCKoption 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_HOOKSinstead of redefiningGTEST_INSTALL_STAGING_CMDS
- Remove patch on Python as gmock/gtest now supports python 3.0 (commit456fc2b5c4e9ebf05a5987dfe1ff0ac9ffeb53cc)
- Add the correct license inHOST_GTEST_LICENSEas all python code in googlemock/scripts/generator is licensed under Apache-2.0 and not BSD-3c
- Fix URL of gtest project in Config.inQuoted 7 lines
Signed-off-by Fabrice Fontaine <[email protected]>Signed-off-by Carlos Santos <[email protected]>---
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
Signed-off-by Carlos Santos <[email protected]>--- 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@@ -4,13 +4,27 @@ # ################################################################################ -# Make sure this remains the same version as the gmock one -GTEST_VERSION = release-1.7.0package/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/LICENSEIt 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.0This is so weird that it deserves a separate comment.
#
HOST_GTESTis 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-pythonIs 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_GTESTstuff 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 = googletestActually, the top-level CMakeLists has the options
BUILD_GTESTandBUILD_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_FILESpackage/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_CMDSThis shouldn't be inside the
GTEST_GMOCKcondition.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 bemkdir -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_genI.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 thegmock_genimports 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_GMOCKcondition. We never let the
package definition itself depend on the config options.Regards,
ArnoutQuoted 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)) +endifpackage/gtest/gtest.pc +1
-1@@ -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}
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.0Hi 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
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?)
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.0Hi 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,
RomainI 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?)
PATCH v3 1/1 gtest/gmock: bump to version 1.8.0
In reply to Carlos SantosGTest 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
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
- AddBR2_PACKAGE_GMOCKas a legacy entry, selectingBR2_PACKAGE_GTESTandBR2_PACKAGE_GTEST_GMOCK.
- Use cmake to install libraries and headers and add missing files (gtest.pc, gtest-config, gmock.pc) inGTEST_POST_INSTALL_STAGING_HOOKSinstead of redefiningGTEST_INSTALL_STAGING_CMDS
- Remove patch on Python as gmock/gtest now supports python 3.0 (commit456fc2b5c4e9ebf05a5987dfe1ff0ac9ffeb53cc)
- Add the correct license inHOST_GTEST_LICENSEas 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 DEVELOPERSNotice 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.
Signed-off-by Fabrice Fontaine <[email protected]>Signed-off-by Carlos Santos <[email protected]>---
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 VandecappelleSigned-off-by Carlos Santos <[email protected]>--- 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
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_LEGACYDEVELOPERS +0
-1@@ -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@@ -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@@ -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.
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_LIBSTDCPPpackage/gtest/gmock.pc renamed from package/gmock/gmock.pc +1
-1@@ -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@@ -1,2 +1,2 @@ # Locally computed: -sha256 f73a6546fdf9fce9ff93a5015e0333a8af3062a152a9ad6bcb772c96687016cc gtest-release-1.7.0.tar.gz +sha256 58a6f4277ca2bc8565222b3bbd58a177609e9c488e8a72649359ba51450db7d8 gtest-1.8.0.tar.gzpackage/gtest/gtest.mk +0
-0
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
-1s%@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@@ -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}
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_GMOCKmissing 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-packagesIndent 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:
Reviewed-by Romain Naour <[email protected]>Best regards,
RomainQuoted 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@@ -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
-1Name: 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?)
PATCH v4 1/1 gtest/gmock: bump to version 1.8.0
In reply to Carlos SantosGTest 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
PATCH v5 1/1 gtest/gmock: bump to version 1.8.0
In reply to Carlos SantosGTest 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
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
- AddBR2_PACKAGE_GMOCKas a legacy entry, selectingBR2_PACKAGE_GTESTandBR2_PACKAGE_GTEST_GMOCK.
- Use cmake to install libraries and headers and add missing files (gtest.pc, gtest-config, gmock.pc) inGTEST_POST_INSTALL_STAGING_HOOKSinstead of redefiningGTEST_INSTALL_STAGING_CMDS
- Remove patch on Python as gmock/gtest now supports python 3.0 (commit456fc2b5c4e9ebf05a5987dfe1ff0ac9ffeb53cc)
- Add the correct license inHOST_GTEST_LICENSEas 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 DEVELOPERSNotice 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.
Signed-off-by Fabrice Fontaine <[email protected]>Signed-off-by Carlos Santos <[email protected]>---
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)
- DropGTEST_VERSION_TAGafter a parallel conversation with Thomas Petazzoni and Yann E. MORIN
(http://patchwork.ozlabs.org/patch/726836/).Signed-off-by Carlos Santos <[email protected]>--- 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@@ -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_LEGACYDEVELOPERS +0
-1@@ -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@@ -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@@ -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@@ -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_LIBSTDCPPpackage/gmock/gmock.hash deleted +0
-2@@ -1,2 +0,0 @@ -# Locally computed -sha256 26fcbb5925b74ad5fc8c26b0495dfc96353f4d553492eb97e85a8a6d2f43095b gmock-1.7.0.zippackage/gmock/gmock.mk deleted +0
-64@@ -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@@ -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_LIBSTDCPPpackage/gtest/gmock.pc renamed from package/gmock/gmock.pc +1
-1@@ -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@@ -1,2 +1,2 @@ # Locally computed: -sha256 f73a6546fdf9fce9ff93a5015e0333a8af3062a152a9ad6bcb772c96687016cc gtest-release-1.7.0.tar.gz +sha256 58a6f4277ca2bc8565222b3bbd58a177609e9c488e8a72649359ba51450db7d8 gtest-release-1.8.0.tar.gzpackage/gtest/gtest.mk +19
-3@@ -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@@ -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}
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 +endifHere, if
BR2_PACKAGE_GTEST_GMOCKis not set -DBUILD_SHARED_LIBS=OFF will be dropped fromGTEST_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.soMaybe 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
elseGTEST_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
PATCH v5 1/1 gtest/gmock: bump to version 1.8.0
In reply to Carlos SantosHello,
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
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.0Hello,
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_genIs there a good reason to not install directly
gmock_gen.pyasgmock_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?)
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.pyasgmock_gen?IIRC some of out tests build calling
gmock_gen.pyand other callinggmock_genbut 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
PATCH v6 1/1 gtest/gmock: bump to version 1.8.0
In reply to Carlos SantosGTest 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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
@@ -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
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
elseGTEST_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
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.0Hello,
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=ONifeq ($(BR2_PACKAGE_GTEST_GMOCK),y)
GTEST_CONF_OPTS+= -DBUILD_GMOCK=ON
elseGTEST_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
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
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.0Hello,
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_GMOCKis not set
Quoted 6 lines
and:
BR2_PACKAGE_GTEST=y
BR2_PACKAGE_GTEST_GMOCK=yand 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
PATCH v6 1/1 gtest/gmock: bump to version 1.8.0
In reply to Carlos SantosHello,
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
- AddBR2_PACKAGE_GMOCKas a legacy entry, selectingBR2_PACKAGE_GTESTandBR2_PACKAGE_GTEST_GMOCK.
- Use cmake to install libraries and headers and add missing files (gtest.pc, gtest-config, gmock.pc) inGTEST_POST_INSTALL_STAGING_HOOKSinstead of redefiningGTEST_INSTALL_STAGING_CMDS
- Remove patch on Python as gmock/gtest now supports python 3.0 (commit456fc2b5c4e9ebf05a5987dfe1ff0ac9ffeb53cc)
- Add the correct license inHOST_GTEST_LICENSEas 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
- Installgmock_gendirectly, instead of as a symlink togmock_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.
Signed-off-by Fabrice Fontaine <[email protected]>Signed-off-by Carlos Santos <[email protected]>Reviewed-by Romain Naour <[email protected]>
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