Subject: [bug#39365] [PATCH 1/6] gnu: Add qrcodegen-cpp.

From: Leo Famulari <[email-masked]>
Date: Thu, 30 Jan 2020 22:06:22 -0500

* gnu/packages/aidc.scm (qrcodegen-cpp): New variable.
---
 gnu/packages/aidc.scm | 39 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 39 insertions(+)

diff --git a/gnu/packages/aidc.scm b/gnu/packages/aidc.scm
index 77db0ac9fc..b68f2137be 100644
--- a/gnu/packages/aidc.scm
+++ b/gnu/packages/aidc.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2017 Hartmut Goebel <[email-masked]>
 ;;; Copyright © 2018, 2019 Tobias Geerinckx-Rice <[email-masked]>
 ;;; Copyright © 2019 Guillaume Le Vaillant <[email-masked]>
+;;; Copyright © 2020 Leo Famulari <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -154,3 +155,41 @@ For application developers, language bindings are included for C, C++ and
 Python as well as GUI widgets for GTK and Qt.")
     (home-page "https://github.com/mchehab/zbar")
     (license license:lgpl2.1+)))
+
+(define-public qrcodegen-cpp
+  ;; Currently this project's installation mechanism only exists as a GitHub
+  ;; pull request, so we build from a recent commit that the proposed patch
+  ;; applies to.
+  (let ((commit "6ea933f1596d818bd21e9a6b8d2e851fb8b4bcf1")
+        (revision "0"))
+    (package
+      (name "qrcodegen-cpp")
+      (version (git-version "1.5.0" revision commit))
+      (source (origin
+                (method git-fetch)
+                (uri (git-reference
+                       (url "https://github.com/nayuki/QR-Code-generator.git")
+                       (commit commit)))
+                (file-name (git-file-name name version))
+                (patches (search-patches "qrcodegen-cpp-make-install.patch"))
+                (sha256
+                 (base32
+                  "19fcwqmfk2n9p2n01dv2j4x2y2mqip0j1wbmfbxjp34rqkjwcwxm"))))
+      (build-system gnu-build-system)
+      (arguments
+       `(#:tests? #f ; no test suite
+         #:make-flags
+         (list (string-append "PREFIX=" (assoc-ref %outputs "out")))
+         #:phases
+         (modify-phases %standard-phases
+           (delete 'configure) ; No ./configure script
+           ;; Only build the C++ variant.
+           (add-after 'unpack 'chdir
+             (lambda _
+               (chdir "cpp")
+               #t)))))
+      (synopsis "QR Code generator library")
+      (description "qrcodegen-cpp is a QR code generator library in C++.  The
+project also offers Java, Javascript, Python, C, and Rust implementations.")
+      (home-page "https://www.nayuki.io/page/qr-code-generator-library")
+      (license license:expat))))
-- 
2.25.0