Subject: [bug#44896] Help with Bear

From: Brett Gilio <[email-masked]>
Date: Thu, 26 Nov 2020 17:27:21 -0600

>From ad64b3febdcd3c98796bb8c5d2ab99add30b9198 Mon Sep 17 00:00:00 2001
From: Brett Gilio <[email-masked]>
Date: Thu, 26 Nov 2020 17:12:10 -0600
Subject: [PATCH 1/1] gnu: bear: Update to 3.0.3.

* gnu/packages/build-tools.scm (bear): Update to 3.0.3.

INCOMPLETE
---
 gnu/packages/build-tools.scm | 51 +++++++++++++++++++++++++++++++-----
 1 file changed, 45 insertions(+), 6 deletions(-)

diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm
index 3f140efdb3..316e992f70 100644
--- a/gnu/packages/build-tools.scm
+++ b/gnu/packages/build-tools.scm
@@ -38,16 +38,23 @@
   #:use-module (gnu packages)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages cpp)
+  #:use-module (gnu packages gcc)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages logging)
   #:use-module (gnu packages lua)
   #:use-module (gnu packages package-management)
   #:use-module (gnu packages pcre)
   #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages pretty-print)
+  #:use-module (gnu packages protobuf)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-crypto)
   #:use-module (gnu packages python-web)
   #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages rpc)
   #:use-module (gnu packages sqlite)
+  #:use-module (gnu packages tls)
   #:use-module (gnu packages ninja)
   #:use-module (guix build-system gnu)
   #:use-module (guix build-system python))
@@ -90,7 +97,7 @@ makes a few sacrifices to acquire fast full and incremental build times.")
 (define-public bear
   (package
     (name "bear")
-    (version "2.4.4")
+    (version "3.0.3")
     (source (origin
               (method git-fetch)
               (uri (git-reference
@@ -99,16 +106,48 @@ makes a few sacrifices to acquire fast full and incremental build times.")
               (file-name (git-file-name name version))
               (sha256
                (base32
-                "184dqjcpxiwcfziyi67zzran2c4fal1r3j8nhjdjadcmfxf4389d"))))
+                "1abx5h6xy0h3mz29ial5si8smkmjzla050d130pcc6dzr4ic642w"))))
     (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags
+       (list "-DCMAKE_CXX_FLAGS=-lspdlog -lstdc++fs"
+             "-DCMAKE_CXX_STANDARD=17")
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'unpack 'patch-headers
+           (lambda _
+             (substitute*
+                 (list "source/libsys/include/libsys/Os.h"
+                       "source/libsys/include/libsys/Path.h"
+                       "source/libsys/include/libsys/Process.h"
+                       "source/intercept/include/intercept/output/Report.h"
+                       "source/libsys/source/Process.cc"
+                       "source/citnames/source/Configuration.h"
+                       "source/citnames/source/Output.h"
+                       "source/citnames/source/semantic/Semantic.h"
+                       "source/citnames/source/semantic/Tool.h"
+                       "source/bear/main.cc"
+                       "source/citnames/source/Application.cc"
+                       "source/citnames/source/semantic/Tool.cc")
+               (("<filesystem>") "<experimental/filesystem>")
+               (("std::filesystem") "std::experimental::filesystem"))
+             #t)))))
     (inputs
-     `(("python" ,python-wrapper)))
+     `(("fmt" ,fmt)
+       ("grpc" ,grpc)
+       ("json-modern-cxx" ,json-modern-cxx)
+       ("protobuf" ,protobuf)
+       ("spdlog" ,spdlog)))
+    (native-inputs
+     `(("googletest" ,googletest)
+       ("openssl" ,openssl)
+       ("pkg-config" ,pkg-config)))
     (home-page "https://github.com/rizsotto/Bear")
     (synopsis "Tool for generating a compilation database")
     (description "A JSON compilation database is used in the Clang project to
-provide information on how a given compilation unit is processed.  With this,
-it is easy to re-run the compilation with alternate programs.  Bear is used to
-generate such a compilation database.")
+provide information on how a given compilation unit is processed . With this,
+it is easy to re-run the compilation with alternate programs     . Bear is used to
+generate such a compilation database                             . ")
     (license license:gpl3+)))
 
 (define-public gn
-- 
2.29.2