Subject: [PATCH v7] gnu: Add libswell.

From: Sughosha <[email-masked]>
Date: Fri, 30 Dec 2022 18:16:07 +0000

* gnu/packages/wdl.scm: New file.
(libswell): New public variable.
* gnu/local.mk (GNU_SYSTEM_MODULES): Add the new file.
---
 gnu/local.mk         |  1 +
 gnu/packages/wdl.scm | 85 ++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 86 insertions(+)
 create mode 100644 gnu/packages/wdl.scm

diff --git a/gnu/local.mk b/gnu/local.mk
index 0d4028a161..823818accc 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -623,6 +623,7 @@ GNU_SYSTEM_MODULES =				\
   %D%/packages/vulkan.scm			\
   %D%/packages/w3m.scm				\
   %D%/packages/wdiff.scm			\
+  %D%/packages/wdl.scm				\
   %D%/packages/weather.scm			\
   %D%/packages/web.scm				\
   %D%/packages/web-browsers.scm			\
diff --git a/gnu/packages/wdl.scm b/gnu/packages/wdl.scm
new file mode 100644
index 0000000000..afb8000e78
--- /dev/null
+++ b/gnu/packages/wdl.scm
@@ -0,0 +1,85 @@
+;;; GNU Guix --- Functional package management for GNU
+;;; Copyright © 2022 Sughosha <[email-masked]>
+;;;
+;;; This file is part of GNU Guix.
+;;;
+;;; GNU Guix is free software; you can redistribute it and/or modify it
+;;; under the terms of the GNU General Public License as published by
+;;; the Free Software Foundation; either version 3 of the License, or (at
+;;; your option) any later version.
+;;;
+;;; GNU Guix is distributed in the hope that it will be useful, but
+;;; WITHOUT ANY WARRANTY; without even the implied warranty of
+;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+;;; GNU General Public License for more details.
+;;;
+;;; You should have received a copy of the GNU General Public License
+;;; along with GNU Guix.  If not, see <http://www.gnu.org/licenses/>.
+
+(define-module (gnu packages wdl)
+  #:use-module ((guix licenses) #:prefix license:)
+  #:use-module (guix packages)
+  #:use-module (guix git-download)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages)
+  #:use-module (gnu packages fontutils)
+  #:use-module (gnu packages gl)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gtk)
+  #:use-module (gnu packages pkg-config))
+
+(define %wdl-commit "60ef0b41d520813c63303046531c78ec95e64d5c")
+
+(define %wdl-origin
+  (origin
+    (method git-fetch)
+      (uri (git-reference (url "https://github.com/justinfrankel/WDL")
+                          (commit %wdl-commit)))
+      (sha256 (base32 "0br0b4d230vhib5qm39ggf6m5pfipkjs4xqxkjxjnba7g0bdz7iv"))
+      (modules '((guix build utils)))
+      ;; Unbundle third party libraries which are not needed.
+      (snippet '(for-each (lambda (dir) (delete-file-recursively
+                                         (string-append "WDL/" dir)))
+                          (list "jnetlib"
+                                "libpng"
+                                "giflib"
+                                "jpeglib"
+                                "zlib")))))
+
+(define-public libswell
+  (package
+    (name "libswell")
+    (version (git-version "0" "0" %wdl-commit))
+    (source %wdl-origin)
+    (build-system gnu-build-system)
+    (arguments
+     `(#:tests? #f
+       #:phases (modify-phases %standard-phases
+                  (delete 'configure) ;no configure script
+                  (replace 'build
+                    (lambda _
+                      (chdir "WDL")
+                      (invoke "make" "-Cswell")))
+                  (replace 'install
+                    (lambda* (#:key outputs #:allow-other-keys)
+                      (install-file "swell/libSwell.so"
+                                    (string-append (assoc-ref outputs
+                                                              "out")
+                                                   "/lib")))))))
+    (native-inputs (list pkg-config))
+    (inputs (list cairo
+                  fontconfig
+                  freetype
+                  gdk-pixbuf
+                  glib
+                  gobject-introspection
+                  gtk+
+                  mesa
+                  pango))
+    (home-page "http://www.cockos.com/wdl")
+    (synopsis "Reasonable subset of the win32 API")
+    (description
+     "SWELL is Simple Windows Emulation Layer with support for automatic
+(PHP-based) dialog and menu resource conversion and SWELL-specific win32-style
+extensions.")
+    (license license:zlib)))
-- 
2.38.1