Subject: [bug#51885] [PATCH v3 1/3] gnu: Add argagg.

From: Raghav Gururajan <[email-masked]>
Date: Thu, 9 Dec 2021 08:16:46 -0500

* gnu/packages/cpp.scm (argagg): New variable.

Co-authored-by: jgart <[email-masked]>
Co-authored-by: Julien Lepiller <[email-masked]>
Co-authored-by: Disseminate Dissent <[email-masked]>
---
 gnu/packages/cpp.scm | 40 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 40 insertions(+)

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index bbcdcd6be9..0ce2b681c8 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -77,6 +77,46 @@ (define-module (gnu packages cpp)
   #:use-module (gnu packages web)
   #:use-module (gnu packages xml))
 
+(define-public argagg
+  (let ((commit "79e4adfa2c6e2bfbe63da05cc668eb9ad5596748")
+        (revision "0"))
+    (package
+      (name "argagg")
+      (version (git-version "0.4.6" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+          (git-reference
+           (url "https://github.com/vietjtnguyen/argagg")
+           (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1flkgh524lq3024p7ld5lg743s1v7qnbmgv77578rzmn2rjzr77n"))))
+      (build-system cmake-build-system)
+      (outputs '("out" "doc"))
+      (arguments
+       `(#:phases
+         (modify-phases %standard-phases
+           (add-after 'install 'move-doc
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((name ,(package-name argagg))
+                      (out (assoc-ref outputs "out"))
+                      (doc (assoc-ref outputs "doc")))
+                 (mkdir-p (string-append doc "/share/doc"))
+                 (rename-file
+                  (string-append out "/share/doc/" name)
+                  (string-append doc "/share/doc/" name))))))))
+      (native-inputs
+       `(("doxygen" ,doxygen)))
+      (home-page "https://github.com/vietjtnguyen/argagg")
+      (synopsis "C++11 command line argument parser")
+      (description "ArgAgg is yet another C++ command line argument/option parser.
+It was written as a simple and idiomatic alternative to other frameworks like
+getopt, Boost program options, TCLAP, and others.  The goal is to achieve the
+majority of argument parsing needs in a simple manner with an easy to use API.")
+      (license license:expat))))
+
 (define-public asmjit
   (let ((commit "4ec760a3d1f69e32ba460ecd2513f29b8428700b")
         (revision "0"))
-- 
2.34.0