Subject: [PATCH 2/2] gnu: Add openage.

From: Arun Isaac <[email-masked]>
Date: Sat, 24 Apr 2021 22:09:26 +0530

* gnu/packages/games.scm (openage): New variable.
---
 gnu/packages/games.scm | 73 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 73 insertions(+)

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 4d565395ee..9f4ac40507 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -12450,3 +12450,76 @@ available.")
 objects with key-value pairs in a database with the key idea that changes in a
 parent affect all children.  The main focus is readability and moddability.")
     (license license:lgpl3+)))
+
+(define-public openage
+  (package
+    (name "openage")
+    (version "0.4.1")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/SFTtech/openage")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32
+         "051hy0s0crdavaghwzv9airq5yrhmk2a6b3ckc7dhr1851yanynp"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags
+       (list (string-append "-DCMAKE_PY_INSTALL_PREFIX="
+                            %output "/lib/python"
+                            ,(version-major+minor (package-version python))
+                            "/site-packages")
+             (string-append "-DGLOBAL_CONFIG_DIR=" %output "/etc/openage"))
+       #:modules ((guix build cmake-build-system)
+                  ((guix build python-build-system) #:prefix python:)
+                  (guix build utils))
+       #:imported-modules (,@%cmake-build-system-modules
+                           (guix build python-build-system))
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'install 'wrap-python
+           (assoc-ref python:%standard-phases 'wrap))
+         (add-after 'wrap-python 'wrap-qt
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (wrap-program (string-append (assoc-ref outputs "out") "/bin/openage")
+               `("QML2_IMPORT_PATH" ":" prefix
+                 ,(map (lambda (name)
+                         (string-append (assoc-ref inputs name)
+                                        "/lib/qt5/qml"))
+                       (list "qtdeclarative" "qtquickcontrols")))))))))
+    (inputs
+     `(("eigen" ,eigen)
+       ("fontconfig" ,fontconfig)
+       ("freetype" ,freetype)
+       ("harfbuzz" ,harfbuzz)
+       ("libepoxy" ,libepoxy)
+       ("nyan" ,nyan)
+       ("opusfile" ,opusfile)
+       ("python" ,python)
+       ("python-jinja2" ,python-jinja2)
+       ("python-numpy" ,python-numpy)
+       ("python-pillow" ,python-pillow)
+       ("qtbase" ,qtbase)
+       ("qtdeclarative" ,qtdeclarative)
+       ("qtquickcontrols" ,qtquickcontrols)
+       ("sdl" ,(sdl-union (list sdl2 sdl2-image)))))
+    (native-inputs
+     `(("python-cython" ,python-cython)
+       ("python-pygments" ,python-pygments)))
+    (home-page "https://openage.sft.mx/")
+    (synopsis "Clone of the Age of Empires II engine")
+    (description "openage is a cross-platform real-time strategy game engine
+that provides the mechanics of Age of Empires.  It aims to be a platform for
+the original Age of Empires games providing the same look and feel, but with
+more features for modding and multiplayer.")
+    (license (list license:gpl3+
+                   ;; buildsystem/modules/FindSDL2.cmake,
+                   ;; buildsystem/modules/FindGPerfTools.cmake,
+                   ;; buildsystem/modules/FindOpusfile.cmake
+                   license:bsd-3
+                   ;; libopenage/util/compress/lzxd.cpp,
+                   ;; doc/code/lzx_compression_info
+                   license:lgpl2.0))))
-- 
2.31.0