Subject: [PATCH] gnu: Add libswell
From: Sughosha <[email-masked]>
To: "[email-masked]" <[email-masked]>
Date: Mon, 19 Dec 2022 13:49:11 +0000
List-Id: <debbugs-submit.debbugs.gnu.org>

* gnu/packages/wdl.scm (libswell): New variable.
---
 gnu/packages/wdl.scm | 75 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 75 insertions(+)
 create mode 100644 gnu/packages/wdl.scm

diff --git a/gnu/packages/wdl.scm b/gnu/packages/wdl.scm
new file mode 100644
index 0000000000..e0a7ea8fac
--- /dev/null
+++ b/gnu/packages/wdl.scm
@@ -0,0 +1,75 @@
+;;; 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 gexp)
+  #:use-module (guix git-download)
+  #:use-module (guix build-system gnu)
+  #:use-module (gnu packages)
+  #: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.git")
+                          (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 gtk+))
+      (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