Subject: [PATCH v1 1/1] gnu: Add gemrb-0.9.3.

From: Ashvith Shetty <[email-masked]>
Date: Sun, 15 Sep 2024 13:23:44 +0530

* gnu/packages/games.scm (gemrb-0.9.3): New variable.

Change-Id: Ic05eacf362f9a4ebfe88b1e0967e72e824c4f404
---
 gnu/packages/games.scm                        | 41 +++++++++++++++++++
 ...rb-add-path-suffixes-for-vlc-headers.patch | 15 +++++++
 2 files changed, 56 insertions(+)
 create mode 100644 gnu/packages/patches/gemrb-add-path-suffixes-for-vlc-headers.patch

diff --git a/gnu/packages/games.scm b/gnu/packages/games.scm
index 26ddde50fe..6fe14a1b15 100644
--- a/gnu/packages/games.scm
+++ b/gnu/packages/games.scm
@@ -84,6 +84,7 @@
 ;;; Copyright © 2024 Sébastien Lerique <[email-masked]>
 ;;; Copyright © 2024 James Smith <[email-masked]>
 ;;; Copyright © 2024 Jan Wielkiewicz <[email-masked]>
+;;; Copyright © 2024 Ashvith Shetty <[email-masked]>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -11796,6 +11797,46 @@ (define-public steam-devices-udev-rules
 virtual reality devices.")
       (license license:expat))))
 
+(define-public gemrb
+  (package
+    (name "gemrb")
+    (version "0.9.3")
+    (source
+     (origin
+       (method git-fetch)
+       (uri (git-reference
+             (url "https://github.com/gemrb/gemrb")
+             (commit (string-append "v" version))))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "1wfmq4z2in18k4znshd7h1i496zlskbci49yp5d54mfxvyp534m5"))
+       ;; Remove the patch in the next version, as commit d339c0d fixes this
+       (patches (search-patches
+                 "gemrb-add-path-suffixes-for-vlc-headers.patch"))))
+    (build-system cmake-build-system)
+    (arguments
+     `(#:configure-flags `("-DUSE_TESTS=ON" "-DOPENGL_BACKEND=OpenGL")
+       #:tests? #t))
+    (native-inputs (list python-3.10 glibc-locales googletest))
+    (inputs (list freetype
+                  libiconv
+                  libpng
+                  libvorbis
+                  openal
+                  sdl2
+                  sdl2-mixer
+                  vlc
+                  zlib))
+    (home-page "https://gemrb.org/")
+    (synopsis
+     "GemRB is a portable open-source implementation of Bioware's Infinity Engine")
+    (description
+     "GemRB (Game Engine Made with preRendered Background) is a portable
+     open-source reimplementation of the Infinity Engine that underpinned
+     Baldur's Gate, Icewind Dale and Planescape: Torment. It sports a
+     cleaner design, greater extensibility and several innovations.")
+    (license (list license:gpl2))))
+
 ;;;
 ;;; Avoid adding new packages to the end of this file. To reduce the chances
 ;;; of a merge conflict, place them above by existing packages with similar
diff --git a/gnu/packages/patches/gemrb-add-path-suffixes-for-vlc-headers.patch b/gnu/packages/patches/gemrb-add-path-suffixes-for-vlc-headers.patch
new file mode 100644
index 0000000000..4e678f7fd4
--- /dev/null
+++ b/gnu/packages/patches/gemrb-add-path-suffixes-for-vlc-headers.patch
@@ -0,0 +1,15 @@
+Add PATH_SUFFIXES to look inside the sub-directory `vlc` - the original statement
+only check for `vlc.h` inside the directory `include`, `bin`, etc.
+In Guix, however, `vlc.h` lies inside `/gnu/store/<hash>-vlc-x.y.z/include/vlc/vlc.h`
+
+--- a/cmake/modules/FindLIBVLC.cmake
++++ b/cmake/modules/FindLIBVLC.cmake
+@@ -29,7 +29,7 @@ FIND_PATH(LIBVLC_INCLUDE_DIR vlc/vlc.h
+   c:/msys/local/include
+   NO_DEFAULT_PATH
+   )
+-FIND_PATH(LIBVLC_INCLUDE_DIR vlc.h)
++FIND_PATH(LIBVLC_INCLUDE_DIR vlc.h PATH_SUFFIXES vlc)
+ 
+ #Put here path to custom location
+ #example: /home/user/vlc/lib etc..
-- 
2.46.0