From 6560c4976f775db5b494356df2beaa0fcec6f9c0 Mon Sep 17 00:00:00 2001 From: Yuval Kogman Date: Thu, 28 May 2020 20:28:49 -0400 Subject: [PATCH] gnu: Add compiledb. * gnu/packages/build-tools.scm (compiledb): New variable. Signed-off-by: Leo Famulari --- gnu/packages/build-tools.scm | 38 ++++++++++++++++++++++++++++++++++++ 1 file changed, 38 insertions(+) diff --git a/gnu/packages/build-tools.scm b/gnu/packages/build-tools.scm index a8ffa56bc6..9ff32b22f9 100644 --- a/gnu/packages/build-tools.scm +++ b/gnu/packages/build-tools.scm @@ -9,6 +9,7 @@ ;;; Copyright © 2019 Brett Gilio ;;; Copyright © 2019 Jonathan Brielmaier ;;; Copyright © 2020 Leo Prikler +;;; Copyright © 2020 Yuval Kogman ;;; ;;; This file is part of GNU Guix. ;;; @@ -33,12 +34,14 @@ (define-module (gnu packages build-tools) #:use-module (guix git-download) #:use-module (guix build-system cmake) #:use-module (gnu packages) + #:use-module (gnu packages check) #:use-module (gnu packages compression) #:use-module (gnu packages lua) #:use-module (gnu packages package-management) #: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 ninja) #:use-module (guix build-system gnu) #:use-module (guix build-system python)) @@ -310,3 +313,38 @@ (define-public osc majority of the OBS functionality is available via commands and the rest can be reached via direct API calls.") (license license:gpl2+))) + +(define-public compiledb + (package + (name "compiledb") + (version "0.10.1") + (source + (origin + (method url-fetch) + (uri (pypi-uri "compiledb" version)) + (sha256 + (base32 "0vlngsdxfakyl8b7rnvn8h3l216lhbrrydr04yhy6kd03zflgfq6")))) + (build-system python-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'no-compat-shim-dependency + ;; shutilwhich is only needed for python 3.3 and earlier + (lambda _ + (substitute* "setup.py" (("^ *'shutilwhich'\n") "")) + (substitute* "compiledb/compiler.py" (("shutilwhich") "shutil"))))))) + (propagated-inputs + `(("python-bashlex" ,python-bashlex) + ("python-click" ,python-click))) + (native-inputs + `(("python-pytest" ,python-pytest))) + (home-page + "https://github.com/nickdiego/compiledb") + (synopsis + "Generate Clang JSON Compilation Database files for make-based build systems") + (description + "@code{compiledb} provides a @code{make} python wrapper script which, +besides executing the make build command, updates the JSON compilation +database file corresponding to that build, resulting in a command-line +interface similar to Bear.") + (license license:gpl3)))