mirror of
https://github.com/godotengine/buildroot.git
synced 2026-01-04 06:10:16 +03:00
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. Signed-off-by: Fabrice Fontaine <fabrice.fontaine@orange.com> Signed-off-by: Carlos Santos <casantos@datacom.ind.br> Reviewed-by: Romain Naour <romain.naour@gmail.com> [Thomas: - Use += instead of = when assigning a value to <pkg>_DEPENDENCIES in conditional - Remove comment about the "tricky logic" around BUILD_GTEST and BUILD_GMOCK - Move GTEST_GMOCK_INSTALL_MISSING_FILE inside the ($(BR2_PACKAGE_GTEST_GMOCK),y) condition.] Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
This commit is contained in:
committed by
Thomas Petazzoni
parent
cf38fa8338
commit
6a9c6311f8
@@ -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
|
||||
|
||||
11
package/gtest/gmock.pc
Normal file
11
package/gtest/gmock.pc
Normal file
@@ -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}
|
||||
@@ -1,2 +1,2 @@
|
||||
# Locally computed:
|
||||
sha256 f73a6546fdf9fce9ff93a5015e0333a8af3062a152a9ad6bcb772c96687016cc gtest-release-1.7.0.tar.gz
|
||||
sha256 58a6f4277ca2bc8565222b3bbd58a177609e9c488e8a72649359ba51450db7d8 gtest-release-1.8.0.tar.gz
|
||||
|
||||
@@ -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,15 @@ 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/
|
||||
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_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 +59,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
|
||||
|
||||
GTEST_POST_INSTALL_STAGING_HOOKS = GTEST_INSTALL_MISSING_FILES
|
||||
|
||||
ifeq ($(BR2_PACKAGE_GTEST_GMOCK),y)
|
||||
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_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
|
||||
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))
|
||||
|
||||
@@ -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}
|
||||
|
||||
Reference in New Issue
Block a user