Subject: [bug#30084] [PATCH] gnu: Add urho3d.

From: Oleg Pykhalov <[email-masked]>
Date: Thu, 11 Jan 2018 01:24:16 +0300

Hello Guix,

This patch adds a 3D game engine.

From 186090075a1ae515bb4893763e7c528568e15939 Mon Sep 17 00:00:00 2001
From: Oleg Pykhalov <[email-masked]>
Date: Thu, 11 Jan 2018 01:14:41 +0300
Subject: [PATCH] gnu: Add urho3d.

* gnu/packages/game-development.scm (urho3d): New public variable.
---
 gnu/packages/game-development.scm | 51 +++++++++++++++++++++++++++++++++++++++
 1 file changed, 51 insertions(+)

diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index 363d9a253..69045cf9c 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -1150,3 +1150,54 @@ features design tools such as a visual editor, can import 3D models and
 provide high-quality 3D rendering, it contains an animation editor, and can be
 scripted in a Python-like language.")
     (license license:expat)))
+
+(define-public urho3d
+  (package
+    (name "urho3d")
+    (version "1.7")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "https://github.com/urho3d/Urho3D"
+                                  "/archive/" version ".tar.gz"))
+              (file-name (string-append name "-" version ".tar.gz"))
+              (sha256
+               (base32
+                "1im63n9rx8qq1ks6aq6jrl5ikxg87hqhsy06miqc317hpm1iyav5"))))
+    (build-system cmake-build-system)
+    (inputs `(("libx11" ,libx11)
+              ("libxcursor" ,libxcursor)
+              ("libxext" ,libxext)
+              ("libxi" ,libxi)
+              ("libxinerama" ,libxinerama)
+              ("libxrandr" ,libxrandr)
+              ("libxrender" ,libxrender)
+              ("libxscrnsaver" ,libxscrnsaver)
+              ("mesa" ,mesa)
+              ("alsa-lib" ,alsa-lib)
+              ("pulseaudio" ,pulseaudio)))
+    (arguments
+     '(#:tests?
+       #f ; There are no tests
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'configure 'use-full-library-paths
+           (lambda* (#:key inputs #:allow-other-keys)
+             (substitute* (string-append "../build/Source/ThirdParty"
+                                         "/SDL/include/generated/SDL_config.h")
+               (("#define SDL_AUDIO_DRIVER_ALSA_DYNAMIC \"libasound\\.so\\.2\"")
+                (string-append "#define SDL_AUDIO_DRIVER_ALSA_DYNAMIC \""
+                               (assoc-ref inputs "alsa-lib")
+                               "/lib/libasound.so.2"
+                               "\""))
+               (((string-append "#define SDL_AUDIO_DRIVER_PULSEAUDIO_DYNAMIC"
+                                " \"libpulse-simple\\.so\\.0\""))
+                (string-append "#define SDL_AUDIO_DRIVER_PULSEAUDIO_DYNAMIC \""
+                               (assoc-ref inputs "pulseaudio")
+                               "/lib/libpulse-simple.so.0"
+                               "\"")))
+             #t)))))
+    (home-page "https://urho3d.github.io/")
+    (synopsis "Cross-platform 2D and 3D game engine")
+    (description "Lightweight, cross-platform 2D and 3D game engine
+implemented in C++.  Inspired by OGRE and Horde3D.")
+    (license license:expat)))
-- 
2.15.1

Also the latest version of engine could be build with:

--8<---------------cut here---------------start------------->8---
(define-public urho3d-checkout
  (let ((commit "4af4148048a6443154c6f0498d32626d10f1e86b")
        (revision "1"))
    (package
      (inherit urho3d)
      (name "urho3d-checkout")
      (version (string-append (package-version urho3d) "-" revision "."
                              (string-take commit 7)))
      (source (origin
                (method git-fetch)
                (uri (git-reference
                      (url "https://github.com/urho3d/Urho3D")
                      (commit commit)))
                (file-name (string-append name "-" version "-checkout"))
                (sha256
                 (base32
                  "1nchxswrkfgzsxghi6c55b27zy9127ni7yvnb4xw2xdddyfm1wl0")))))))--8<---------------cut here---------------end--------------->8---

Thanks,
Oleg.