Subject: [bug#70319] [PATCH 1/2] gnu: Add tinygltf.

From: Vinicius Monego <[email-masked]>
Date: Wed, 10 Apr 2024 00:12:02 +0000

* gnu/packages/graphics.scm (tinygltf): New variable.

Change-Id: I749ced85142b8dd2ebbe916533f27bf6d167bbff
---
 gnu/packages/graphics.scm | 45 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)

diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index a63629823a..d04fcbfd6d 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -2367,6 +2367,51 @@ (define-public openxr
     ;; Dual licensed.  Either license applies.
     (license (list license:asl2.0 license:expat))))
 
+(define-public tinygltf
+  (package
+    (name "tinygltf")
+    (version "2.8.21")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/syoyo/tinygltf")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "14712lndwlk4y001jxf2rxhwrw0w5gbc2hyh9kpik1galdzg41ii"))))
+    (build-system cmake-build-system)
+    (arguments
+     (list
+      #:tests? #f ; tests are not managed by CMake
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'use-our-packages
+            ;; tinygltf ships json.hpp, stb_image.h and stb_image_write.h
+            ;; into the repo as common files.  Delete those, and use the
+            ;; files from our packages instead.
+            (lambda* (#:key inputs #:allow-other-keys)
+              (for-each delete-file
+                        (list "json.hpp"
+                              "stb_image.h"
+                              "stb_image_write.h"))
+              (symlink (search-input-file inputs "json.hpp")
+                       "json.hpp")
+              (symlink (search-input-file inputs "stb_image.h")
+                       "stb_image.h")
+              (symlink (search-input-file inputs "stb_image_write.h")
+                       "stb_image_write.h")))
+          (add-after 'install 'delete-static-lib
+            (lambda _
+              (delete-file (string-append #$output
+                                          "/lib/libtinygltf.a")))))))
+    (inputs (list nlohmann-json stb-image stb-image-write))
+    (home-page "https://github.com/syoyo/tinygltf")
+    (synopsis "Header only C++11 tiny glTF 2.0 library")
+    (description "TinyGLTF is a header only C++11 tiny
+@url{https://github.com/KhronosGroup/glTF, glTF} 2.0 library.")
+    (license license:expat)))
+
 (define-public monado
   (package
     (name "monado")
-- 
2.39.2