147 lines
7.3 KiB
Diff
147 lines
7.3 KiB
Diff
From c080d329298e841d7d4e1380ff7ec88de5cb3b02 Mon Sep 17 00:00:00 2001
|
|
From: Arfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>
|
|
Date: Fri, 28 Jan 2022 15:14:59 +0800
|
|
Subject: [PATCH] protobuf-3.19.0: system_libraries
|
|
|
|
Use system version of GoogleTest,
|
|
which will unbundle gtest, gmock libraries
|
|
|
|
Signed-off-by: Arfrever Frehtes Taifersar Arahesis <Arfrever@Apache.Org>
|
|
Signed-off-by: Yixun Lan <dlan@gentoo.org>
|
|
---
|
|
Makefile.am | 20 +-------------------
|
|
configure.ac | 7 -------
|
|
src/Makefile.am | 33 ++++++---------------------------
|
|
3 files changed, 7 insertions(+), 53 deletions(-)
|
|
|
|
diff --git a/Makefile.am b/Makefile.am
|
|
index 41d4061..b24f8f4 100644
|
|
--- a/Makefile.am
|
|
+++ b/Makefile.am
|
|
@@ -11,28 +11,10 @@ SUBDIRS = . src
|
|
# Always include third_party directories in distributions.
|
|
DIST_SUBDIRS = src conformance benchmarks third_party/googletest
|
|
|
|
-# Build gmock before we build protobuf tests. We don't add gmock to SUBDIRS
|
|
-# because then "make check" would also build and run all of gmock's own tests,
|
|
-# which takes a lot of time and is generally not useful to us. Also, we don't
|
|
-# want "make install" to recurse into gmock since we don't want to overwrite
|
|
-# the installed version of gmock if there is one.
|
|
check-local:
|
|
- @echo "Making lib/libgmock.a lib/libgmock_main.a in gmock"
|
|
- @cd third_party/googletest/googletest && $(MAKE) $(AM_MAKEFLAGS) lib/libgtest.la lib/libgtest_main.la
|
|
- @cd third_party/googletest/googlemock && $(MAKE) $(AM_MAKEFLAGS) lib/libgmock.la lib/libgmock_main.la
|
|
|
|
-# We would like to clean gmock when "make clean" is invoked. But we have to
|
|
-# be careful because clean-local is also invoked during "make distclean", but
|
|
-# "make distclean" already recurses into gmock because it's listed among the
|
|
-# DIST_SUBDIRS. distclean will delete gmock/Makefile, so if we then try to
|
|
-# cd to the directory again and "make clean" it will fail. So, check that the
|
|
-# Makefile exists before recursing.
|
|
clean-local:
|
|
- @if test -e third_party/googletest/Makefile; then \
|
|
- echo "Making clean in googletest"; \
|
|
- cd third_party/googletest && $(MAKE) $(AM_MAKEFLAGS) clean; \
|
|
- fi; \
|
|
- if test -e conformance/Makefile; then \
|
|
+ @if test -e conformance/Makefile; then \
|
|
echo "Making clean in conformance"; \
|
|
cd conformance && $(MAKE) $(AM_MAKEFLAGS) clean; \
|
|
fi; \
|
|
diff --git a/configure.ac b/configure.ac
|
|
index 02085ca..449fb3d 100644
|
|
--- a/configure.ac
|
|
+++ b/configure.ac
|
|
@@ -236,12 +236,5 @@ if test "x$ANDROID_TEST" = xyes; then
|
|
fi
|
|
AC_SUBST([LIBLOG_LIBS])
|
|
|
|
-# HACK: Make gmock's configure script pick up our copy of CFLAGS and CXXFLAGS,
|
|
-# since the flags added by ACX_CHECK_SUNCC must be used when compiling gmock
|
|
-# too.
|
|
-export CFLAGS
|
|
-export CXXFLAGS
|
|
-AC_CONFIG_SUBDIRS([third_party/googletest])
|
|
-
|
|
AC_CONFIG_FILES([Makefile src/Makefile benchmarks/Makefile conformance/Makefile protobuf.pc protobuf-lite.pc])
|
|
AC_OUTPUT
|
|
diff --git a/src/Makefile.am b/src/Makefile.am
|
|
index 7e86b62..47d759f 100644
|
|
--- a/src/Makefile.am
|
|
+++ b/src/Makefile.am
|
|
@@ -716,19 +716,11 @@ COMMON_TEST_SOURCES = \
|
|
google/protobuf/testing/googletest.cc \
|
|
google/protobuf/testing/googletest.h
|
|
|
|
-GOOGLETEST_BUILD_DIR=../third_party/googletest/googletest
|
|
-GOOGLEMOCK_BUILD_DIR=../third_party/googletest/googlemock
|
|
-GOOGLETEST_SRC_DIR=$(srcdir)/../third_party/googletest/googletest
|
|
-GOOGLEMOCK_SRC_DIR=$(srcdir)/../third_party/googletest/googlemock
|
|
check_PROGRAMS = protoc protobuf-test protobuf-lazy-descriptor-test \
|
|
protobuf-lite-test test_plugin protobuf-lite-arena-test \
|
|
$(GZCHECKPROGRAMS)
|
|
protobuf_test_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la \
|
|
- $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la \
|
|
- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock.la \
|
|
- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock_main.la
|
|
-protobuf_test_CPPFLAGS = -I$(GOOGLETEST_SRC_DIR)/include \
|
|
- -I$(GOOGLEMOCK_SRC_DIR)/include
|
|
+ -lgtest -lgmock -lgmock_main
|
|
# Disable optimization for tests unless the user explicitly asked for it,
|
|
# since test_util.cc takes forever to compile with optimization (with GCC).
|
|
# See configure.ac for more info.
|
|
@@ -820,12 +812,8 @@ $(am_protobuf_test_OBJECTS): unittest_proto_middleman
|
|
# Run cpp_unittest again with PROTOBUF_TEST_NO_DESCRIPTORS defined.
|
|
protobuf_lazy_descriptor_test_LDADD = $(PTHREAD_LIBS) libprotobuf.la \
|
|
libprotoc.la \
|
|
- $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la \
|
|
- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock.la \
|
|
- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock_main.la
|
|
-protobuf_lazy_descriptor_test_CPPFLAGS = -I$(GOOGLEMOCK_SRC_DIR)/include \
|
|
- -I$(GOOGLETEST_SRC_DIR)/include \
|
|
- -DPROTOBUF_TEST_NO_DESCRIPTORS
|
|
+ -lgtest -lgmock -lgmock_main
|
|
+protobuf_lazy_descriptor_test_CPPFLAGS = -DPROTOBUF_TEST_NO_DESCRIPTORS
|
|
protobuf_lazy_descriptor_test_CXXFLAGS = $(NO_OPT_CXXFLAGS)
|
|
protobuf_lazy_descriptor_test_SOURCES = \
|
|
google/protobuf/compiler/cpp/cpp_unittest.cc \
|
|
@@ -847,11 +835,7 @@ COMMON_LITE_TEST_SOURCES = \
|
|
# full runtime and we want to make sure this test builds without full
|
|
# runtime.
|
|
protobuf_lite_test_LDADD = $(PTHREAD_LIBS) libprotobuf-lite.la \
|
|
- $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la \
|
|
- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock.la \
|
|
- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock_main.la
|
|
-protobuf_lite_test_CPPFLAGS= -I$(GOOGLEMOCK_SRC_DIR)/include \
|
|
- -I$(GOOGLETEST_SRC_DIR)/include
|
|
+ -lgtest -lgmock -lgmock_main
|
|
protobuf_lite_test_CXXFLAGS = $(NO_OPT_CXXFLAGS)
|
|
protobuf_lite_test_SOURCES = \
|
|
google/protobuf/lite_unittest.cc \
|
|
@@ -863,11 +847,7 @@ $(am_protobuf_lite_test_OBJECTS): unittest_proto_middleman
|
|
# gtest when building the test internally our memory sanitizer doesn't detect
|
|
# memory leaks (don't know why).
|
|
protobuf_lite_arena_test_LDADD = $(PTHREAD_LIBS) libprotobuf-lite.la \
|
|
- $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la \
|
|
- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock.la \
|
|
- $(GOOGLEMOCK_BUILD_DIR)/lib/libgmock_main.la
|
|
-protobuf_lite_arena_test_CPPFLAGS = -I$(GOOGLEMOCK_SRC_DIR)/include \
|
|
- -I$(GOOGLETEST_SRC_DIR)/include
|
|
+ -lgtest -lgmock -lgmock_main
|
|
protobuf_lite_arena_test_CXXFLAGS = $(NO_OPT_CXXFLAGS)
|
|
protobuf_lite_arena_test_SOURCES = \
|
|
google/protobuf/lite_arena_unittest.cc \
|
|
@@ -877,8 +857,7 @@ $(am_protobuf_lite_arena_test_OBJECTS): unittest_proto_middleman
|
|
|
|
# Test plugin binary.
|
|
test_plugin_LDADD = $(PTHREAD_LIBS) libprotobuf.la libprotoc.la \
|
|
- $(GOOGLETEST_BUILD_DIR)/lib/libgtest.la
|
|
-test_plugin_CPPFLAGS = -I$(GOOGLETEST_SRC_DIR)/include
|
|
+ -lgtest
|
|
test_plugin_SOURCES = \
|
|
google/protobuf/compiler/mock_code_generator.cc \
|
|
google/protobuf/compiler/test_plugin.cc \
|
|
--
|
|
2.34.1
|
|
|