Subject: [PATCH] gnu: Add gtkd.
From: guy fleury iteriteka <[email-masked]>
To: [email-masked]
Date: Wed, 15 Apr 2020 12:50:34 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

* gnu/packages/dlang.scm(gtkd): New variable.
---
 gnu/packages/dlang.scm | 51 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)

diff --git a/gnu/packages/dlang.scm b/gnu/packages/dlang.scm
index 3b0c799..c098b81 100644
--- a/gnu/packages/dlang.scm
+++ b/gnu/packages/dlang.scm
@@ -4,6 +4,7 @@
 ;;; Copyright © 2017 Frederick Muriithi <[email-masked]>
 ;;; Copyright © 2017 Ricardo Wurmus <[email-masked]>
 ;;; Copyright © 2017, 2019 Tobias Geerinckx-Rice <[email-masked]>
+;;; Copyright © 2020 Guy Fleury Iteriteka <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -35,6 +36,7 @@
   #:use-module (gnu packages gdb)
   #:use-module (gnu packages libedit)
   #:use-module (gnu packages llvm)
+  #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
   #:use-module (gnu packages python-xyz)
   #:use-module (gnu packages textutils))
@@ -348,3 +350,52 @@ The design emphasis is on maximum simplicity for simple projects,
 while providing the opportunity to customize things when
 needed.")
     (license license:expat)))
+
+(define-public gtkd
+  (package
+    (name "gtkd")
+    (version "3.9.0")
+    (source
+     (origin
+      (method url-fetch)
+      (uri (string-append "https://gtkd.org/Downloads/sources/GtkD-"
+                          version ".zip"))
+      (sha256
+       (base32 "0qv8qlpwwb1d078pnrf0a59vpbkziyf53cf9p6m8ms542wbcxllp"))))
+    (build-system gnu-build-system)
+    (native-inputs
+     `(("unzip" ,unzip)
+       ("ldc" ,ldc)
+       ("pkg-config" ,pkg-config)))
+    (arguments
+     `(#:make-flags '("DC=ldc2")
+       #:tests? #f
+       #:phases
+       (modify-phases %standard-phases
+         (delete 'configure)
+         (replace 'unpack
+           (lambda* (#:key source #:allow-other-keys)
+             (let ((dir (string-append ,name "-" ,version)))
+               (invoke "unzip" "-d" dir source)
+               (chdir dir)
+               #t)))
+         (add-before 'build 'patch-makefile
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bindir (string-append out "/lib")))
+               (substitute* "GNUmakefile"
+                 ;;remove test target due to path resolution in build env
+                 ;;when compile tests and test can't succed gui launch
+                 (("default-goal: libs test") "default-goal: libs")
+                 (("all: libs shared-libs test") "all: libs shared-libs")
+                 (("/usr/local") out)
+                 (("libdir\\?\\=.*") (string-append "libdir?=" bindir "\n"))
+                 (("\\$\\(prefix\\)\\/\\$\\(libdir\\)") "$(libdir)")))
+             #t)))))
+    (home-page "https://gtkd.org/")
+    (synopsis "D binding and OO wrapper of GTK+")
+    (description
+     "GTK+ is a highly usable, feature rich toolkit for creating graphical
+user interfaces which boasts cross platform compatibility and an easy to use
+API.")
+    (license license:lgpl2.1)))
-- 
2.25.1