about summary refs log tree commit diff
path: root/nixpkgs/pkgs/games/zandronum/fmod.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/games/zandronum/fmod.nix')
-rw-r--r--nixpkgs/pkgs/games/zandronum/fmod.nix45
1 files changed, 45 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/games/zandronum/fmod.nix b/nixpkgs/pkgs/games/zandronum/fmod.nix
new file mode 100644
index 000000000000..a5d9098242bd
--- /dev/null
+++ b/nixpkgs/pkgs/games/zandronum/fmod.nix
@@ -0,0 +1,45 @@
+{ stdenv, lib, fetchurl, alsaLib, libpulseaudio, undmg }:
+
+let
+  bits = stdenv.lib.optionalString (stdenv.hostPlatform.system == "x86_64-linux") "64";
+  libPath = lib.makeLibraryPath [ stdenv.cc.cc alsaLib libpulseaudio ];
+
+in
+stdenv.mkDerivation rec {
+  name = "fmod-${version}";
+  version = "4.44.64";
+  shortVersion = builtins.replaceStrings [ "." ] [ "" ] version;
+
+  src = fetchurl (if stdenv.isLinux then {
+    url = "https://zdoom.org/files/fmod/fmodapi${shortVersion}linux.tar.gz";
+    sha256 = "047hk92xapwwqj281f4zwl0ih821rrliya70gfj82sdfjh9lz8i1";
+  } else {
+    url = "https://zdoom.org/files/fmod/fmodapi${shortVersion}mac-installer.dmg";
+    sha256 = "1m1y4cpcwpkl8x31d3s68xzp107f343ma09w2437i2adn5y7m8ii";
+  });
+
+  nativeBuildInputs = [ undmg ];
+
+  dontStrip = true;
+  dontPatchELF = true;
+  dontBuild = true;
+
+  installPhase = lib.optionalString stdenv.isLinux ''
+    install -Dm755 api/lib/libfmodex${bits}-${version}.so $out/lib/libfmodex-${version}.so
+    ln -s libfmodex-${version}.so $out/lib/libfmodex.so
+    patchelf --set-rpath ${libPath} $out/lib/libfmodex.so
+  '' + lib.optionalString stdenv.isDarwin ''
+    install -D api/lib/libfmodex.dylib $out/lib/libfmodex.dylib
+    install -D api/lib/libfmodexL.dylib $out/lib/libfmodexL.dylib
+  '' + ''
+    cp -r api/inc $out/include
+  '';
+
+  meta = with stdenv.lib; {
+    description = "Programming library and toolkit for the creation and playback of interactive audio";
+    homepage    = http://www.fmod.org/;
+    license     = licenses.unfreeRedistributable;
+    platforms   = [ "x86_64-linux" "i686-linux" "x86_64-darwin" ];
+    maintainers = [ maintainers.lassulus ];
+  };
+}