From 0b40b3dd15d81dd9ad99f2542ff2be5a8706a8cf Mon Sep 17 00:00:00 2001
From: Greg Hogan <code@greghogan.com>
Date: Fri, 8 Jan 2021 19:01:10 +0000
Subject: [PATCH] gnu: abseil-cpp: Update to 20200923.2.

* gnu/packages/cpp.scm (abseil-cpp): Update to 20200923.2.
[arguments]: Enable external googletest.
* gnu/packages/patches/abseil-cpp-fix.patch: New file.
* gnu/local.mk (dist_patch_DATA): Register it.
---
 gnu/local.mk                              |  1 +
 gnu/packages/cpp.scm                      |  9 ++++++---
 gnu/packages/patches/abseil-cpp-fix.patch | 16 ++++++++++++++++
 3 files changed, 23 insertions(+), 3 deletions(-)
 create mode 100644 gnu/packages/patches/abseil-cpp-fix.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index bcf7ee0245..b98fa1f106 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -780,6 +780,7 @@ dist_patch_DATA = \
   %D%/packages/patches/abcl-fix-build-xml.patch \
   %D%/packages/patches/ableton-link-system-libraries-debian.patch \
   %D%/packages/patches/abiword-explictly-cast-bools.patch \
+  %D%/packages/patches/abseil-cpp-fix.patch \
   %D%/packages/patches/adb-add-libraries.patch \
   %D%/packages/patches/aegis-constness-error.patch         \
   %D%/packages/patches/aegis-perl-tempdir1.patch           \
diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 45d3faeafb..115b8ca1e6 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -14,7 +14,7 @@
 ;;; Copyright © 2020 Marius Bakke <marius@gnu.org>
 ;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
 ;;; Copyright © 2020 Alexandros Theodotou <alex@zrythm.org>
-;;; Copyright © 2020 Greg Hogan <code@greghogan.com>
+;;; Copyright © 2020, 2021 Greg Hogan <code@greghogan.com>
 ;;; Copyright © 2020 Brett Gilio <brettg@gnu.org>
 ;;;
 ;;; This file is part of GNU Guix.
@@ -603,7 +603,7 @@ point and then, after each tween step, plugging back the result.")
 (define-public abseil-cpp
   (package
     (name "abseil-cpp")
-    (version "20200225.2")
+    (version "20200923.2")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -612,11 +612,14 @@ point and then, after each tween step, plugging back the result.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "0dwxg54pv6ihphbia0iw65r64whd7v8nm4wwhcz219642cgpv54y"))))
+                "0r98aplfmvvq40hskv2ly6jfkh9r958wk50hzyfdqgh85rl29v0v"))
+              ;; Remove after next googletest release and update.
+              (patches (search-patches "abseil-cpp-fix.patch"))))
     (build-system cmake-build-system)
     (arguments
      `(#:configure-flags (list "-DBUILD_SHARED_LIBS=ON"
                                "-DABSL_RUN_TESTS=ON"
+                               "-DABSL_USE_EXTERNAL_GOOGLETEST=ON"
                                ;; Needed, else we get errors like:
                                ;;
                                ;; ld: CMakeFiles/absl_periodic_sampler_test.dir/internal/periodic_sampler_test.cc.o:
diff --git a/gnu/packages/patches/abseil-cpp-fix.patch b/gnu/packages/patches/abseil-cpp-fix.patch
new file mode 100644
index 0000000000..86751c227b
--- /dev/null
+++ b/gnu/packages/patches/abseil-cpp-fix.patch
@@ -0,0 +1,16 @@
+The GTEST_ALLOW_UNINSTANTIATED_PARAMTERIZED_TEST macro was added to googletest
+in commit 0b024bd9 on master. It has been used in an abseil-cpp release before
+a googletest release.
+
+--- a/absl/container/internal/unordered_map_modifiers_test.h
++++ b/absl/container/internal/unordered_map_modifiers_test.h
+@@ -286,7 +286,9 @@ class UniquePtrModifiersTest : public ::testing::Test {
+   }
+ };
++#ifdef GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST
+ GTEST_ALLOW_UNINSTANTIATED_PARAMETERIZED_TEST(UniquePtrModifiersTest);
++#endif
+ TYPED_TEST_SUITE_P(UniquePtrModifiersTest);
-- 
2.23.3