Subject: [PATCH 04/11] gnu: Add tinydir.

From: David Elsing <[email-masked]>
Date: Mon, 3 Oct 2022 00:19:49 +0000

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

diff --git a/gnu/packages/cpp.scm b/gnu/packages/cpp.scm
index 7bfa3d6cdf..4819f36052 100644
--- a/gnu/packages/cpp.scm
+++ b/gnu/packages/cpp.scm
@@ -2020,3 +2020,41 @@ (define-public sajson
       (description "sajson is a high-performance, in-place JSON parser
 header-only library.")
       (license license:expat))))
+
+(define-public tinydir
+  (package
+    (name "tinydir")
+    (version "1.2.5")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/cxong/tinydir")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "1nprgdfx4i8wzc1idw6chan4fjfa75b5ll8kghdc0q2278pny259"))
+              (modules '((guix build utils)))
+              (snippet '(delete-file-recursively "tests/cbehave"))))
+    (build-system cmake-build-system)
+    (arguments
+     (list
+      ;; Tests require cbehave and rlutil
+      #:tests? #f
+      #:phases
+      ;; Build samples instead of tests
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'chdir
+            (lambda _ (chdir "samples") #t))
+          (add-after 'build 'chdir-back
+            (lambda _ (chdir "..") #t))
+          (replace 'install
+            (lambda _
+              (install-file "tinydir.h" (string-append #$output "/include"))
+              #t)))))
+    (home-page "https://github.com/cxong/tinydir")
+    (synopsis "Lightweight, portable and easy to integrate C directory and
+file reader")
+    (description "tinydir is a header-only C library to portably read files
+and directories.")
+    (license license:bsd-2)))
-- 
2.37.0