Subject: [PATCH 1/5] gnu: Add iodash.

From: Alexandr Vityazev <[email-masked]>
Date: Mon, 27 Sep 2021 13:54:33 +0000

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

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 4af71ba93a..e3b73b1612 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -18,6 +18,7 @@
 ;;; Copyright © 2020 Brett Gilio <[email-masked]>
 ;;; Copyright © 2020 Milkey Mouse <[email-masked]>
 ;;; Copyright © 2021 Raghav Gururajan <[email-masked]>
+;;; Copyright © 2021 Alexandr Vityazev <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -956,6 +957,49 @@ provides a number of utilities to make coding with expected cleaner.")
     (home-page "https://tl.tartanllama.xyz/")
     (license license:cc0)))
 
+(define-public iodash
+  ;; there is no cpp_modules in the release version
+  (let ((commit "acefbb532c48108a29beb3633d4ea0c0dffb0a7b")
+        (revision "0")
+        ;; ydotool requires this version
+        (version "0.1.0"))
+    (package
+      (name "iodash")
+      (version (git-version version revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/YukiWorkshop/IODash")
+               (commit commit)
+               (recursive? #t)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32
+           "1syfzi4g79pxj6zxajh800j8zsi3nqj5q49swykc6mn2143nkh05"))))
+      (build-system cmake-build-system)
+      (arguments
+       ;; No tests
+       `(#:tests? #f
+         #:phases
+         (modify-phases %standard-phases
+           (replace 'install
+             (lambda* (#:key outputs #:allow-other-keys)
+               (let* ((out (assoc-ref outputs "out"))
+                      (inc (string-append out "/include"))
+                      (lib (string-append out "/lib")))
+                 (install-file "libIODash.a" lib)
+                 (with-directory-excursion "../source"
+                   (install-file "IODash.hpp" inc)
+                   (install-file
+                    "cpp_modules/portable-endian/portable-endian.h" inc)
+                   (copy-recursively "IODash"
+                                     (string-append inc "/IODash")))))))))
+      (home-page "https://github.com/YukiWorkshop/IODash")
+      (synopsis "Lightweight C++ I/O library for POSIX operation systems")
+      (description "@code{IODash} is a C++ library for POSIX operation systems.")
+      (license license:expat))))
+
 (define-public magic-enum
   (package
     (name "magic-enum")
-- 
2.33.0

-- 

Alexandr Vityazev