about summary refs log tree commit diff
path: root/pkgs/games/openmw
diff options
context:
space:
mode:
authormarius david <mariusdavid@laposte.net>2021-11-09 20:56:25 +0100
committermarius david <mariusdavid@laposte.net>2021-11-11 15:23:15 +0100
commit36e16d6979bec9ab3458b88a1a8804a975dadc8d (patch)
tree1f0321011b51f25f20dd71e6eb95c1c29430cc09 /pkgs/games/openmw
parent84dbadf81a0ab6291c978452d2479f5014cfd08d (diff)
downloadnixlib-36e16d6979bec9ab3458b88a1a8804a975dadc8d.tar
nixlib-36e16d6979bec9ab3458b88a1a8804a975dadc8d.tar.gz
nixlib-36e16d6979bec9ab3458b88a1a8804a975dadc8d.tar.bz2
nixlib-36e16d6979bec9ab3458b88a1a8804a975dadc8d.tar.lz
nixlib-36e16d6979bec9ab3458b88a1a8804a975dadc8d.tar.xz
nixlib-36e16d6979bec9ab3458b88a1a8804a975dadc8d.tar.zst
nixlib-36e16d6979bec9ab3458b88a1a8804a975dadc8d.zip
openmw: 0.46 -> 0.47
Diffstat (limited to 'pkgs/games/openmw')
-rw-r--r--pkgs/games/openmw/default.nix45
-rw-r--r--pkgs/games/openmw/tes3mp.nix9
2 files changed, 40 insertions, 14 deletions
diff --git a/pkgs/games/openmw/default.nix b/pkgs/games/openmw/default.nix
index cfde63ac7264..edc8147a2b77 100644
--- a/pkgs/games/openmw/default.nix
+++ b/pkgs/games/openmw/default.nix
@@ -13,29 +13,46 @@
 , unshield
 , openal
 , libXt
+, lz4
+, recastnavigation
 }:
 
 let
-  openscenegraph_ = openscenegraph.overrideDerivation (self: {
+  openscenegraph_openmw = (openscenegraph.override { colladaSupport = true; })
+    .overrideDerivation (self: {
+      src = fetchFromGitHub {
+        owner = "OpenMW";
+        repo = "osg";
+        rev = "bbe61c3bc510a4f5bb4aea21cce506519c2d24e6";
+        sha256 = "sha256-t3smLqstp7wWfi9HXJoBCek+3acqt/ySBYF8RJOG6Mo=";
+      };
+    });
+
+  bullet_openmw = bullet.overrideDerivation (old: rec {
+    version = "3.17";
     src = fetchFromGitHub {
-      owner = "OpenMW";
-      repo = "osg";
-      # commit does not exist on any branch on the target repository
-      rev = "1556cd7966ebc1c80b6626988d2b25fb43a744cf";
-      sha256 = "0d74hijzmj82nx3jkv5qmr3pkgvplra0b8fbjx1y3vmzxamb0axd";
+      owner = "bulletphysics";
+      repo = "bullet3";
+      rev = version;
+      sha256 = "sha256-uQ4X8F8nmagbcFh0KexrmnhHIXFSB3A1CCnjPVeHL3Q=";
     };
+    patches = [];
+    cmakeFlags = (old.cmakeFlags or []) ++ [
+      "-DUSE_DOUBLE_PRECISION=ON"
+      "-DBULLET2_MULTITHREADING=ON"
+    ];
   });
 
 in
 mkDerivation rec {
-  version = "0.46.0";
   pname = "openmw";
+  version = "0.47.0";
 
   src = fetchFromGitHub {
     owner = "OpenMW";
     repo = "openmw";
     rev = "${pname}-${version}";
-    sha256 = "0rm32zsmxvr6b0jjihfj543skhicbw5kg6shjx312clhlm035w2x";
+    sha256 = "sha256-Xq9hDUTCQr79Zzjk0CsiXclVTHK6nrSowukIQqVdrKY=";
   };
 
   nativeBuildInputs = [ cmake pkg-config wrapQtAppsHook ];
@@ -43,26 +60,28 @@ mkDerivation rec {
   buildInputs = [
     SDL2
     boost
-    bullet
+    bullet_openmw
     ffmpeg
     libXt
     mygui
     openal
-    openscenegraph_
+    openscenegraph_openmw
     unshield
+    lz4
+    recastnavigation
   ];
 
   cmakeFlags = [
-    "-DDESIRED_QT_VERSION:INT=5"
     # as of 0.46, openmw is broken with GLVND
     "-DOpenGL_GL_PREFERENCE=LEGACY"
+    "-DOPENMW_USE_SYSTEM_RECASTNAVIGATION=1"
   ];
 
   meta = with lib; {
     description = "An unofficial open source engine reimplementation of the game Morrowind";
-    homepage = "http://openmw.org";
+    homepage = "https://openmw.org";
     license = licenses.gpl3Plus;
-    maintainers = with maintainers; [ abbradar ];
+    maintainers = with maintainers; [ abbradar marius851000 ];
     platforms = platforms.linux;
   };
 }
diff --git a/pkgs/games/openmw/tes3mp.nix b/pkgs/games/openmw/tes3mp.nix
index 72b698ceb730..37ad603d7cf5 100644
--- a/pkgs/games/openmw/tes3mp.nix
+++ b/pkgs/games/openmw/tes3mp.nix
@@ -9,6 +9,7 @@
 , symlinkJoin
 , mygui
 , crudini
+, bullet
 }:
 
 # revisions are taken from https://github.com/GrimKriegor/TES3MP-deploy
@@ -70,7 +71,8 @@ let
 
     nativeBuildInputs = oldAttrs.nativeBuildInputs ++ [ makeWrapper ];
 
-    buildInputs = oldAttrs.buildInputs ++ [ luajit ];
+    buildInputs = (builtins.map (x: if x.pname or "" == "bullet" then bullet else x) oldAttrs.buildInputs)
+      ++ [ luajit ];
 
     cmakeFlags = oldAttrs.cmakeFlags ++ [
       "-DBUILD_OPENCS=OFF"
@@ -79,6 +81,11 @@ let
       "-DRakNet_LIBRARY_DEBUG=${raknet}/lib/libRakNetLibStatic.a"
     ];
 
+    prePatch = ''
+      substituteInPlace components/process/processinvoker.cpp \
+        --replace "\"./\"" "\"$out/bin/\""
+    '';
+
     # https://github.com/TES3MP/openmw-tes3mp/issues/552
     patches = [ ./tes3mp.patch ];