Subject: [bug#56576] [PATCH 2/2] gnu: Add nuklear.

From: Antero Mejr <[email-masked]>
Date: Sat, 6 Aug 2022 18:57:43 -0400

* gnu/packages/toolkits.scm (nuklear): New variable.
---
Package moved to toolkits.scm, updated to 4.10.1, installs HTML doc generated
using stddoc.

 gnu/packages/toolkits.scm | 49 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 49 insertions(+)

diff --git a/gnu/packages/toolkits.scm b/gnu/packages/toolkits.scm
index 3030e3aa49..79ea8068f1 100644
--- a/gnu/packages/toolkits.scm
+++ b/gnu/packages/toolkits.scm
@@ -19,6 +19,7 @@
 ;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
 
 (define-module (gnu packages toolkits)
+  #:use-module (gnu packages documentation)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages gl)
   #:use-module (gnu packages sdl)
@@ -27,6 +28,7 @@ (define-module (gnu packages toolkits)
   #:use-module (guix packages)
   #:use-module (guix utils)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system python)
   #:use-module (guix git-download))
 
 (define-public imgui
@@ -141,3 +143,50 @@ (define-public imgui-1.86
               (sha256
                (base32
                 "02a7b05zrka20jhzag2jb4jl624i1m456bsv69jb9zgys2p9dv1n"))))))
+
+(define-public nuklear
+  (package
+    (name "nuklear")
+    (version "4.10.1")
+    (home-page "https://github.com/Immediate-Mode-UI/Nuklear")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url home-page)
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "0qmaza0iiq3da3qya23znnajmv9prm6rv0nbqg58qdrl23207kar"))
+              (snippet #~(begin (delete-file "nuklear.h")
+                                (delete-file "doc/index.html")))))
+    (build-system python-build-system)
+    (arguments
+     (list #:tests? #f ;no tests
+           #:phases #~(modify-phases %standard-phases
+                        (delete 'configure)
+                        (replace 'build
+                          (lambda _
+                            (with-directory-excursion "src"
+                              (invoke "./paq.sh"))
+                            (with-directory-excursion "doc"
+                              (with-input-from-file "../nuklear.h"
+                                (lambda _
+                                  (with-output-to-file "index.html"
+                                    (lambda _
+                                      (invoke "stddoc"))))))))
+                        (replace 'install
+                          (lambda* (#:key outputs #:allow-other-keys)
+                            (install-file "nuklear.h"
+                                          (string-append #$output "/include"))
+                            (install-file "doc/index.html"
+                                          (string-append #$output
+                                                         "/share/doc")))))))
+    (native-inputs (list stddoc))
+    (synopsis "Graphical user interface toolkit written in ANSI C")
+    (description "This package provides an immediate-mode graphical user
+interface toolkit.  It was designed as an embeddable user interface
+for applications and does not have any dependencies, a default render backend
+or OS window/input handling.  The library is self contained in one single header
+file and can be used either in header only mode or in implementation mode.")
+    (license (list license:unlicense license:expat))))
-- 
2.37.1