Fix the build to set the version in the CMakeLists correctly

- Update the libversion patch to use the version in CMakeLists
- Correctly install the CMake and pkgconfig files
- Fix the pkgconfig dependency information
- Add missing strong dependency on gtest by gmock
- Add patch to make tests work with Python 3
epel9
Neal Gompa 6 years ago
parent 24687ea437
commit 1ae9a2c1b8

@ -0,0 +1,34 @@
diff --git a/googlemock/cmake/gmock.pc.in b/googlemock/cmake/gmock.pc.in
index c441642..e80b506 100644
--- a/googlemock/cmake/gmock.pc.in
+++ b/googlemock/cmake/gmock.pc.in
@@ -5,5 +5,6 @@ Name: gmock
Description: GoogleMock (without main() function)
Version: @PROJECT_VERSION@
URL: https://github.com/google/googletest
+Requires: gtest = @PROJECT_VERSION@
Libs: -L${libdir} -lgmock @CMAKE_THREAD_LIBS_INIT@
Cflags: -I${includedir} @GTEST_HAS_PTHREAD_MACRO@ @CMAKE_THREAD_LIBS_INIT@
diff --git a/googlemock/cmake/gmock_main.pc.in b/googlemock/cmake/gmock_main.pc.in
index c377dba..752f14d 100644
--- a/googlemock/cmake/gmock_main.pc.in
+++ b/googlemock/cmake/gmock_main.pc.in
@@ -5,5 +5,6 @@ Name: gmock_main
Description: GoogleMock (with main() function)
Version: @PROJECT_VERSION@
URL: https://github.com/google/googletest
+Requires: gmock = @PROJECT_VERSION@
Libs: -L${libdir} -lgmock_main @CMAKE_THREAD_LIBS_INIT@
Cflags: -I${includedir} @GTEST_HAS_PTHREAD_MACRO@ @CMAKE_THREAD_LIBS_INIT@
diff --git a/googletest/cmake/gtest_main.pc.in b/googletest/cmake/gtest_main.pc.in
index fe25d9c..63b2b14 100644
--- a/googletest/cmake/gtest_main.pc.in
+++ b/googletest/cmake/gtest_main.pc.in
@@ -5,6 +5,6 @@ Name: gtest_main
Description: GoogleTest (with main() function)
Version: @PROJECT_VERSION@
URL: https://github.com/google/googletest
-Requires: gtest
+Requires: gtest = @PROJECT_VERSION@
Libs: -L${libdir} -lgtest_main @CMAKE_THREAD_LIBS_INIT@
Cflags: -I${includedir} @GTEST_HAS_PTHREAD_MACRO@ @CMAKE_THREAD_LIBS_INIT@

@ -1,29 +1,29 @@
diff --git a/googlemock/CMakeLists.txt b/googlemock/CMakeLists.txt diff --git a/googlemock/CMakeLists.txt b/googlemock/CMakeLists.txt
index 8a8de1f..3d86a59 100644 index 8a8de1f..d67c0f5 100644
--- a/googlemock/CMakeLists.txt --- a/googlemock/CMakeLists.txt
+++ b/googlemock/CMakeLists.txt +++ b/googlemock/CMakeLists.txt
@@ -109,8 +109,10 @@ if (MSVC) @@ -109,8 +109,10 @@ if (MSVC)
else() else()
cxx_library(gmock "${cxx_strict}" src/gmock-all.cc) cxx_library(gmock "${cxx_strict}" src/gmock-all.cc)
target_link_libraries(gmock PUBLIC gtest) target_link_libraries(gmock PUBLIC gtest)
+ set_target_properties(gmock PROPERTIES VERSION 1.8.1) + set_target_properties(gmock PROPERTIES VERSION ${GOOGLETEST_VERSION})
cxx_library(gmock_main "${cxx_strict}" src/gmock_main.cc) cxx_library(gmock_main "${cxx_strict}" src/gmock_main.cc)
target_link_libraries(gmock_main PUBLIC gmock) target_link_libraries(gmock_main PUBLIC gmock)
+ set_target_properties(gmock_main PROPERTIES VERSION 1.8.1) + set_target_properties(gmock_main PROPERTIES VERSION ${GOOGLETEST_VERSION})
endif() endif()
# If the CMake version supports it, attach header directory information # If the CMake version supports it, attach header directory information
# to the targets for when we are part of a parent build (ie being pulled # to the targets for when we are part of a parent build (ie being pulled
diff --git a/googletest/CMakeLists.txt b/googletest/CMakeLists.txt diff --git a/googletest/CMakeLists.txt b/googletest/CMakeLists.txt
index 9ee7940..8099130 100644 index 9ee7940..1f3de11 100644
--- a/googletest/CMakeLists.txt --- a/googletest/CMakeLists.txt
+++ b/googletest/CMakeLists.txt +++ b/googletest/CMakeLists.txt
@@ -131,7 +131,9 @@ endif() @@ -131,7 +131,9 @@ endif()
# are used for other targets, to ensure that gtest can be compiled by a user # are used for other targets, to ensure that gtest can be compiled by a user
# aggressive about warnings. # aggressive about warnings.
cxx_library(gtest "${cxx_strict}" src/gtest-all.cc) cxx_library(gtest "${cxx_strict}" src/gtest-all.cc)
+set_target_properties(gtest PROPERTIES VERSION 1.8.1) +set_target_properties(gtest PROPERTIES VERSION ${GOOGLETEST_VERSION})
cxx_library(gtest_main "${cxx_strict}" src/gtest_main.cc) cxx_library(gtest_main "${cxx_strict}" src/gtest_main.cc)
+set_target_properties(gtest_main PROPERTIES VERSION 1.8.1) +set_target_properties(gtest_main PROPERTIES VERSION ${GOOGLETEST_VERSION})
# If the CMake version supports it, attach header directory information # If the CMake version supports it, attach header directory information
# to the targets for when we are part of a parent build (ie being pulled # to the targets for when we are part of a parent build (ie being pulled
# in via add_subdirectory() rather than being a standalone build). # in via add_subdirectory() rather than being a standalone build).

@ -0,0 +1,149 @@
From 149c0d24148da9a339d6c9d03e638a39c59731f6 Mon Sep 17 00:00:00 2001
From: Peter Levine <plevine457@gmail.com>
Date: Fri, 14 Sep 2018 19:40:51 -0400
Subject: [PATCH] Fix Python3 support
---
googletest/test/googletest-env-var-test.py | 4 ++--
googletest/test/googletest-filter-unittest.py | 13 ++++++++-----
googletest/test/googletest-output-test.py | 2 +-
googletest/test/googletest-throw-on-failure-test.py | 2 +-
googletest/test/googletest-uninitialized-test.py | 4 ++--
googletest/test/gtest_xml_output_unittest.py | 3 ++-
googletest/test/gtest_xml_test_utils.py | 2 +-
7 files changed, 17 insertions(+), 13 deletions(-)
diff --git a/googletest/test/googletest-env-var-test.py b/googletest/test/googletest-env-var-test.py
index e1efeee1e..2f0e406af 100755
--- a/googletest/test/googletest-env-var-test.py
+++ b/googletest/test/googletest-env-var-test.py
@@ -45,8 +45,8 @@
def AssertEq(expected, actual):
if expected != actual:
- print 'Expected: %s' % (expected,)
- print ' Actual: %s' % (actual,)
+ print('Expected: %s' % (expected,))
+ print(' Actual: %s' % (actual,))
raise AssertionError
diff --git a/googletest/test/googletest-filter-unittest.py b/googletest/test/googletest-filter-unittest.py
index dc0b5bd9a..6b32f2d21 100755
--- a/googletest/test/googletest-filter-unittest.py
+++ b/googletest/test/googletest-filter-unittest.py
@@ -42,7 +42,10 @@
import os
import re
-import sets
+try:
+ from sets import Set as set # For Python 2.3 compatibility
+except ImportError:
+ pass
import sys
import gtest_test_utils
@@ -57,7 +60,7 @@
if sys.executable:
os.environ['EMPTY_VAR'] = ''
child = gtest_test_utils.Subprocess(
- [sys.executable, '-c', 'import os; print \'EMPTY_VAR\' in os.environ'])
+ [sys.executable, '-c', 'import os; print(\'EMPTY_VAR\' in os.environ)'])
CAN_PASS_EMPTY_ENV = eval(child.output)
@@ -72,7 +75,7 @@
os.environ['UNSET_VAR'] = 'X'
del os.environ['UNSET_VAR']
child = gtest_test_utils.Subprocess(
- [sys.executable, '-c', 'import os; print \'UNSET_VAR\' not in os.environ'
+ [sys.executable, '-c', 'import os; print(\'UNSET_VAR\' not in os.environ)'
])
CAN_UNSET_ENV = eval(child.output)
@@ -245,14 +248,14 @@ def AssertPartitionIsValid(self, set_var, list_of_sets):
for slice_var in list_of_sets:
full_partition.extend(slice_var)
self.assertEqual(len(set_var), len(full_partition))
- self.assertEqual(sets.Set(set_var), sets.Set(full_partition))
+ self.assertEqual(set(set_var), set(full_partition))
def AdjustForParameterizedTests(self, tests_to_run):
"""Adjust tests_to_run in case value parameterized tests are disabled."""
global param_tests_present
if not param_tests_present:
- return list(sets.Set(tests_to_run) - sets.Set(PARAM_TESTS))
+ return list(set(tests_to_run) - set(PARAM_TESTS))
else:
return tests_to_run
diff --git a/googletest/test/googletest-output-test.py b/googletest/test/googletest-output-test.py
index 2d69e353a..1a9ee6e3b 100755
--- a/googletest/test/googletest-output-test.py
+++ b/googletest/test/googletest-output-test.py
@@ -287,7 +287,7 @@ def testOutput(self):
# sequences when we read the golden file irrespective of an operating
# system used. Therefore, we need to strip those \r's from newlines
# unconditionally.
- golden = ToUnixLineEnding(golden_file.read())
+ golden = ToUnixLineEnding(golden_file.read().decode())
golden_file.close()
# We want the test to pass regardless of certain features being
diff --git a/googletest/test/googletest-throw-on-failure-test.py b/googletest/test/googletest-throw-on-failure-test.py
index 46cb9f6da..204e43e79 100755
--- a/googletest/test/googletest-throw-on-failure-test.py
+++ b/googletest/test/googletest-throw-on-failure-test.py
@@ -68,7 +68,7 @@ def SetEnvVar(env_var, value):
def Run(command):
"""Runs a command; returns True/False if its exit code is/isn't 0."""
- print 'Running "%s". . .' % ' '.join(command)
+ print('Running "%s". . .' % ' '.join(command))
p = gtest_test_utils.Subprocess(command)
return p.exited and p.exit_code == 0
diff --git a/googletest/test/googletest-uninitialized-test.py b/googletest/test/googletest-uninitialized-test.py
index 5b7d1e74f..69595a0dd 100755
--- a/googletest/test/googletest-uninitialized-test.py
+++ b/googletest/test/googletest-uninitialized-test.py
@@ -43,8 +43,8 @@ def Assert(condition):
def AssertEq(expected, actual):
if expected != actual:
- print 'Expected: %s' % (expected,)
- print ' Actual: %s' % (actual,)
+ print('Expected: %s' % (expected,))
+ print(' Actual: %s' % (actual,))
raise AssertionError
diff --git a/googletest/test/gtest_xml_output_unittest.py b/googletest/test/gtest_xml_output_unittest.py
index faedd4e6c..8669f19e5 100755
--- a/googletest/test/gtest_xml_output_unittest.py
+++ b/googletest/test/gtest_xml_output_unittest.py
@@ -266,7 +266,8 @@ def testDefaultOutputFile(self):
'gtest_no_test_unittest')
try:
os.remove(output_file)
- except OSError, e:
+ except OSError:
+ e = sys.exc_info()[1]
if e.errno != errno.ENOENT:
raise
diff --git a/googletest/test/gtest_xml_test_utils.py b/googletest/test/gtest_xml_test_utils.py
index 1e0358592..afcf55e0d 100755
--- a/googletest/test/gtest_xml_test_utils.py
+++ b/googletest/test/gtest_xml_test_utils.py
@@ -94,7 +94,7 @@ def AssertEquivalentNodes(self, expected_node, actual_node):
self.assertEquals(
len(expected_children), len(actual_children),
'number of child elements differ in element ' + actual_node.tagName)
- for child_id, child in expected_children.iteritems():
+ for child_id, child in expected_children.items():
self.assert_(child_id in actual_children,
'<%s> is not in <%s> (in element %s)' %
(child_id, actual_children, actual_node.tagName))

@ -1,21 +1,24 @@
Summary: Google C++ testing framework Summary: Google C++ testing framework
Name: gtest Name: gtest
Version: 1.8.1 Version: 1.8.1
Release: 1%{?dist} Release: 2%{?dist}
# scripts/generator/* are ASL 2.0 # scripts/generator/* are ASL 2.0
License: BSD and ASL 2.0 License: BSD and ASL 2.0
URL: https://github.com/google/googletest URL: https://github.com/google/googletest
Source0: https://github.com/google/googletest/archive/release-%{version}.tar.gz Source0: https://github.com/google/googletest/archive/release-%{version}.tar.gz
# https://github.com/google/googletest/pull/967 # https://github.com/google/googletest/pull/967
Patch0: gtest-1.8.1-null-pointer.patch Patch0: gtest-1.8.1-null-pointer.patch
# https://github.com/google/googletest/pull/1839
Patch1: gtest-PR1839-Fix-Python3-support.patch
# Fedora-specific patches # Fedora-specific patches
## Set libversion for libraries to version of gtest ## Set libversion for libraries to version of gtest
## WARNING: must be rediffed for each version bump
Patch100: gtest-1.8.1-libversion.patch Patch100: gtest-1.8.1-libversion.patch
## Add missing pkgconfig requires information to reflect reality
Patch101: gtest-1.8.1-add-missing-pkgconfig-requires.patch
BuildRequires: gcc BuildRequires: gcc
BuildRequires: gcc-c++ BuildRequires: gcc-c++
BuildRequires: cmake BuildRequires: cmake
BuildRequires: python2-devel BuildRequires: python3-devel
%description %description
Framework for writing C++ tests on a variety of platforms (GNU/Linux, Framework for writing C++ tests on a variety of platforms (GNU/Linux,
Mac OS X, Windows, Windows CE, and Symbian). Based on the xUnit Mac OS X, Windows, Windows CE, and Symbian). Based on the xUnit
@ -32,6 +35,7 @@ This package contains development files for %{name}.
%package -n gmock %package -n gmock
Summary: Google C++ Mocking Framework Summary: Google C++ Mocking Framework
Requires: %{name} = %{version}-%{release}
%description -n gmock %description -n gmock
Inspired by jMock, EasyMock, and Hamcrest, and designed with C++s Inspired by jMock, EasyMock, and Hamcrest, and designed with C++s
specifics in mind, Google C++ Mocking Framework (or Google Mock for specifics in mind, Google C++ Mocking Framework (or Google Mock for
@ -56,12 +60,16 @@ This package contains development files for gmock.
%prep %prep
%autosetup -p1 -n googletest-release-%{version} %autosetup -p1 -n googletest-release-%{version}
# Set the version correctly
sed -e "s/set(GOOGLETEST_VERSION .*)/set(GOOGLETEST_VERSION %{version})/" -i CMakeLists.txt
%build %build
mkdir build && cd build mkdir build && cd build
%cmake -DBUILD_SHARED_LIBS=ON \ %cmake -DBUILD_SHARED_LIBS=ON \
-DPYTHON_EXECUTABLE=%{__python2} \ -DPYTHON_EXECUTABLE=%{__python3} \
-Dgtest_build_tests=ON .. -Dgtest_build_tests=ON ..
make %{?_smp_mflags} %make_build
%install %install
cd build cd build
@ -83,6 +91,9 @@ make test
%{_includedir}/gtest/ %{_includedir}/gtest/
%{_libdir}/libgtest.so %{_libdir}/libgtest.so
%{_libdir}/libgtest_main.so %{_libdir}/libgtest_main.so
%{_libdir}/cmake/GTest/
%{_libdir}/pkgconfig/gtest.pc
%{_libdir}/pkgconfig/gtest_main.pc
%files -n gmock %files -n gmock
%license googlemock/LICENSE %license googlemock/LICENSE
@ -95,17 +106,18 @@ make test
%{_includedir}/gmock/ %{_includedir}/gmock/
%{_libdir}/libgmock.so %{_libdir}/libgmock.so
%{_libdir}/libgmock_main.so %{_libdir}/libgmock_main.so
%dir %{_libdir}/cmake/GTest/
%{_libdir}/cmake/GTest/GTestConfig.cmake
%{_libdir}/cmake/GTest/GTestConfigVersion.cmake
%{_libdir}/cmake/GTest/GTestTargets-noconfig.cmake
%{_libdir}/cmake/GTest/GTestTargets.cmake
%{_libdir}/pkgconfig/gmock.pc %{_libdir}/pkgconfig/gmock.pc
%{_libdir}/pkgconfig/gmock_main.pc %{_libdir}/pkgconfig/gmock_main.pc
%{_libdir}/pkgconfig/gtest.pc
%{_libdir}/pkgconfig/gtest_main.pc
%changelog %changelog
* Thu Sep 27 2018 Neal Gompa <ngompa13@gmail.com> - 1.8.1-2
- Fix the build to set the version in the CMakeLists correctly
- Update the libversion patch to use the version in CMakeLists
- Correctly install the CMake and pkgconfig files
- Fix the pkgconfig dependency information
- Add missing strong dependency on gtest by gmock
- Add patch to make tests work with Python 3
* Mon Sep 10 2018 Terje Rosten <terje.rosten@ntnu.no> - 1.8.1-1 * Mon Sep 10 2018 Terje Rosten <terje.rosten@ntnu.no> - 1.8.1-1
- Fix license (rhbz#1603577) - Fix license (rhbz#1603577)
- 1.8.1 - 1.8.1

Loading…
Cancel
Save