about summary refs log tree commit diff
path: root/pkgs/by-name/mu/musikcube/package.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/by-name/mu/musikcube/package.nix')
-rw-r--r--pkgs/by-name/mu/musikcube/package.nix108
1 files changed, 108 insertions, 0 deletions
diff --git a/pkgs/by-name/mu/musikcube/package.nix b/pkgs/by-name/mu/musikcube/package.nix
new file mode 100644
index 0000000000000..8eb5536f39ba2
--- /dev/null
+++ b/pkgs/by-name/mu/musikcube/package.nix
@@ -0,0 +1,108 @@
+{
+  asio,
+  cmake,
+  curl,
+  fetchFromGitHub,
+  ffmpeg-headless,
+  gnutls,
+  lame,
+  lib,
+  libev,
+  game-music-emu,
+  libmicrohttpd,
+  libopenmpt,
+  mpg123,
+  ncurses,
+  pkg-config,
+  portaudio,
+  stdenv,
+  taglib,
+  # Linux Dependencies
+  alsa-lib,
+  pipewireSupport ? !stdenv.hostPlatform.isDarwin,
+  pipewire,
+  pulseaudio,
+  sndioSupport ? true,
+  sndio,
+  systemd,
+  systemdSupport ? lib.meta.availableOn stdenv.hostPlatform systemd,
+  # Darwin Dependencies
+  darwin,
+  coreaudioSupport ? stdenv.hostPlatform.isDarwin,
+}:
+
+let
+  ffmpeg = ffmpeg-headless;
+in
+stdenv.mkDerivation (finalAttrs: {
+  pname = "musikcube";
+  version = "3.0.4";
+
+  src = fetchFromGitHub {
+    owner = "clangen";
+    repo = "musikcube";
+    rev = finalAttrs.version;
+    hash = "sha512-ibpSrzbn2yGNgWnjAh4sG9ZRFImxjE2sq6tu9k0w1QAAr/OWSTwtaIuK71ClT6yt4HKyRk1KSaXa+/IzOHI6Kg==";
+  };
+
+  outputs = [
+    "out"
+    "dev"
+  ];
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  buildInputs =
+    [
+      asio
+      curl
+      ffmpeg
+      gnutls
+      lame
+      libev
+      game-music-emu
+      libmicrohttpd
+      libopenmpt
+      mpg123
+      ncurses
+      portaudio
+      taglib
+    ]
+    ++ lib.optionals systemdSupport [ systemd ]
+    ++ lib.optionals stdenv.isLinux [
+      alsa-lib
+      pulseaudio
+    ]
+    ++ lib.optionals stdenv.isDarwin (
+      with darwin.apple_sdk.frameworks;
+      [
+        Cocoa
+        SystemConfiguration
+      ]
+    )
+    ++ lib.optionals coreaudioSupport (with darwin.apple_sdk.frameworks; [ CoreAudio ])
+    ++ lib.optionals sndioSupport [ sndio ]
+    ++ lib.optionals pipewireSupport [ pipewire ];
+
+  cmakeFlags = [ "-DDISABLE_STRIP=true" ];
+
+  postFixup = lib.optionalString stdenv.isDarwin ''
+    install_name_tool -add_rpath $out/share/musikcube $out/share/musikcube/musikcube
+    install_name_tool -add_rpath $out/share/musikcube $out/share/musikcube/musikcubed
+  '';
+
+  meta = {
+    description = "Terminal-based music player, library, and streaming audio server";
+    homepage = "https://musikcube.com/";
+    maintainers = with lib.maintainers; [
+      aanderse
+      afh
+    ];
+    mainProgram = "musikcube";
+    license = lib.licenses.bsd3;
+    platforms = lib.platforms.all;
+  };
+})