summary refs log tree commit diff
path: root/gnu/packages/game-development.scm
diff options
context:
space:
mode:
authorPierre Neidhardt <mail@ambrevar.xyz>2019-09-24 19:21:59 +0200
committerPierre Neidhardt <mail@ambrevar.xyz>2019-09-24 19:21:59 +0200
commitf95ec65be394538c9ec848e502a37f1c3ec21157 (patch)
treedbbb419802819b4a1d5f87966fec63e74e7f2a54 /gnu/packages/game-development.scm
parent24f7bac02a70257a7cd1bb2e1ec35d7cc753057e (diff)
downloadguix-f95ec65be394538c9ec848e502a37f1c3ec21157.tar.gz
gnu: openmw: Use OpenMW's fork of openscenegraph.
* gnu/packages/game-development.scm (openmw)[inputs]: Replace openscenegraph
  with openmw-openscenegraph.
Diffstat (limited to 'gnu/packages/game-development.scm')
-rw-r--r--gnu/packages/game-development.scm36
1 files changed, 35 insertions, 1 deletions
diff --git a/gnu/packages/game-development.scm b/gnu/packages/game-development.scm
index bb4c1d26bb..ee9e63ea29 100644
--- a/gnu/packages/game-development.scm
+++ b/gnu/packages/game-development.scm
@@ -1109,6 +1109,40 @@ of use.")
                '("ogre"))))
     (synopsis "Fast, flexible and simple GUI (OpenGL backend)")))
 
+(define openmw-openscenegraph
+  ;; OpenMW prefers its own fork of openscenegraph:
+  ;; https://wiki.openmw.org/index.php?title=Development_Environment_Setup#OpenSceneGraph.
+  (let ((commit "36a962845a2c87a6671fd822157e0729d164e940"))
+    (package
+      (inherit openscenegraph)
+      (version (git-version "3.6" "1" commit))
+      (source
+       (origin
+         (method git-fetch)
+         (uri (git-reference
+               (url "https://github.com/OpenMW/osg/")
+               (commit commit)))
+         (file-name (git-file-name (package-name openscenegraph) version))
+         (sha256
+          (base32
+           "05yhgq3qm5q277y32n5sf36vx5nv5qd3zlhz4csgd3a6190jrnia"))))
+      (arguments
+       (substitute-keyword-arguments (package-arguments openscenegraph)
+         ((#:configure-flags flags)
+          ;; As per the above wiki link, the following plugins are enough:
+          `(append
+            '("-DBUILD_OSG_PLUGINS_BY_DEFAULT=0"
+              "-DBUILD_OSG_PLUGIN_OSG=1"
+              "-DBUILD_OSG_PLUGIN_DDS=1"
+              "-DBUILD_OSG_PLUGIN_TGA=1"
+              "-DBUILD_OSG_PLUGIN_BMP=1"
+              "-DBUILD_OSG_PLUGIN_JPEG=1"
+              "-DBUILD_OSG_PLUGIN_PNG=1"
+              "-DBUILD_OSG_DEPRECATED_SERIALIZERS=0"
+              ;; The jpeg plugin requires conversion between integers and booleans
+              "-DCMAKE_CXX_FLAGS=-fpermissive")
+            ,flags)))))))
+
 (define-public openmw
   (package
     (name "openmw")
@@ -1137,7 +1171,7 @@ of use.")
        ("libxt" ,libxt)
        ("mygui" ,mygui-gl)              ; OpenMW does not need Ogre.
        ("openal" ,openal)
-       ("openscenegraph" ,openscenegraph)
+       ("openscenegraph" ,openmw-openscenegraph)
        ("qtbase" ,qtbase)
        ("sdl" ,sdl2)
        ("unshield" ,unshield)))