summary refs log tree commit diff
path: root/gnu/packages/graphics.scm
diff options
context:
space:
mode:
authorMarius Bakke <mbakke@fastmail.com>2019-09-24 23:51:48 +0200
committerMarius Bakke <mbakke@fastmail.com>2019-09-24 23:51:48 +0200
commit84a0c6ff63afc296c1bc5873f783693dccc5ded2 (patch)
tree15e9cdbac1da2a1ea0ca8ca2d1dec7120c8662b7 /gnu/packages/graphics.scm
parent1cfe711ac0d777c958acc3cdfdbe779ce678ff0b (diff)
downloadguix-84a0c6ff63afc296c1bc5873f783693dccc5ded2.tar.gz
gnu: Move openmw-openscenegraph to graphics.scm.
Package inheritance across modules may cause unbound variable errors at
expansion time because of cyclic dependencies between the modules.

* gnu/packages/game-development.scm (openmw-openscenegraph): Move from here ...
* gnu/packages/graphics.scm (openmw-openscenegraph): ... to here.  Make the
variable public and "hide" the package.
Diffstat (limited to 'gnu/packages/graphics.scm')
-rw-r--r--gnu/packages/graphics.scm36
1 files changed, 36 insertions, 0 deletions
diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm
index 8d04e95937..6d6c8d1e1c 100644
--- a/gnu/packages/graphics.scm
+++ b/gnu/packages/graphics.scm
@@ -589,6 +589,42 @@ virtual reality, scientific visualization and modeling.")
      `(("libjpeg" ,libjpeg)
        ,@(package-inputs openscenegraph)))))
 
+
+(define-public openmw-openscenegraph
+  ;; OpenMW prefers its own fork of openscenegraph:
+  ;; https://wiki.openmw.org/index.php?title=Development_Environment_Setup#OpenSceneGraph.
+  (let ((commit "36a962845a2c87a6671fd822157e0729d164e940"))
+    (hidden-package
+     (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 povray
   (package
     (name "povray")