Subject: [PATCH v4 6/7] gnu: Add qtwidgetanimationframework.

From: Sughosha <[email-masked]>
Date: Fri, 21 Feb 2025 14:31:59 +0530

* gnu/packages/qt.scm (qtwidgetanimationframework): New variable.

Change-Id: I0368d1b68d80b64b9d363b5e76c3133619b3ccaa
---
 gnu/packages/qt.scm | 61 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 61 insertions(+)

diff --git a/gnu/packages/qt.scm b/gnu/packages/qt.scm
index 5f52a2cc41..fd6a12e049 100644
--- a/gnu/packages/qt.scm
+++ b/gnu/packages/qt.scm
@@ -34,6 +34,7 @@
 ;;; Copyright © 2024 Foundation Devices, Inc. <[email-masked]>
 ;;; Copyright © 2024 Josep Bigorra <[email-masked]>
 ;;; Copyright © 2025 John Kehayias <[email-masked]>
+;;; Copyright © 2024 Sughosha <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -4988,6 +4989,66 @@ (define-public qtpromise
 programming paradigm..")
     (license license:expat)))
 
+(define-public qtwidgetanimationframework
+  (let ((commit "b07ab59cee7a21eb29d29cb67c160681f13ac5ae") ;no tags
+          (revision "0"))
+    (package
+      (name "qtwidgetanimationframework")
+      (version (git-version "0" revision commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri
+           (git-reference
+             (url "https://github.com/dimkanovikov/WidgetAnimationFramework")
+             (commit commit)))
+         (file-name (git-file-name name version))
+         (sha256
+          (base32 "1smbdrzk05vvbf6lpjdq82k4y2kc4yv1gk5388qbslbzlb6ihls6"))))
+      (build-system qt-build-system)
+      (arguments
+       (list #:qtbase qtbase
+             #:tests? #f ;no tests
+             #:phases
+             #~(modify-phases %standard-phases
+                 ;; This project does not have any build rule but its demo has
+                 ;; one.
+                 (add-after 'unpack 'pre-configure
+                   (lambda _
+                     (copy-file "demo/waf-demo.pro" "src/waf.pro")
+                     (substitute* "src/waf.pro"
+                       (("main.cpp ") "")
+                       (("app") "lib")
+                       (("waf-demo") "waf"))
+                     (chdir "src")))
+                 ;; No configure script exists.
+                 (replace 'configure
+                   (lambda _
+                     (invoke "qmake")))
+                 ;; No install rule exists.
+                 (replace 'install
+                   (lambda _
+                     ;; Install library files.
+                     (for-each
+                       (lambda (file)
+                         (install-file file
+                                       (string-append #$output "/lib/"
+                                                      (dirname file))))
+                       (find-files "." "\\.so"))
+                     ;; Install header files.
+                     (for-each
+                       (lambda (file)
+                         (install-file file
+                                       (string-append #$output "/include/WAF/"
+                                                      (dirname file))))
+                       (find-files "." "\\.h$")))))))
+      (home-page "https://github.com/dimkanovikov/WidgetAnimationFramework")
+      (synopsis "Extension for animating Qt widgets")
+      (description
+       "@acronym{WAF,Widget Animation Framework} is an extension for animating
+Qt widgets.")
+      (license license:lgpl3+))))
+
 (define-public qtcolorwidgets
   (package
     (name "qtcolorwidgets")
-- 
2.47.1