summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--pkgs/applications/audio/projectm/default.nix51
-rw-r--r--pkgs/top-level/all-packages.nix2
2 files changed, 53 insertions, 0 deletions
diff --git a/pkgs/applications/audio/projectm/default.nix b/pkgs/applications/audio/projectm/default.nix
new file mode 100644
index 00000000000..2dd251ddd5b
--- /dev/null
+++ b/pkgs/applications/audio/projectm/default.nix
@@ -0,0 +1,51 @@
+{ stdenv, fetchurl, pkgconfig, cmake
+, glew, ftgl, ttf_bitstream_vera
+, withQt ? true, qt4
+, withLibvisual ? false, libvisual, SDL
+, withJack ? false, jackaudio
+, withPulseAudio ? true, pulseaudio
+}:
+
+assert withJack       -> withQt;
+assert withPulseAudio -> withQt;
+
+stdenv.mkDerivation {
+  name = "projectm-2.1.0";
+
+  meta = {
+    description = "Music Visualizer";
+    homepage = "http://projectm.sourceforge.net/";
+    license = stdenv.lib.licenses.lgpl21Plus;
+    platforms = stdenv.lib.platforms.linux;
+  };
+
+  src = fetchurl {
+    url = "mirror://sourceforge/projectm/2.1.0/projectM-complete-2.1.0-Source.tar.gz";
+    sha256 = "1vh6jk68a0jdb6qwppb6f8cbgmhnv2ba3bcavzfd6sq06gq08cji";
+  };
+
+  patchPhase = ''
+    sed -i 's:''${LIBVISUAL_PLUGINSDIR}:''${CMAKE_INSTALL_PREFIX}/lib/libvisual-0.4:' \
+      src/projectM-libvisual/CMakeLists.txt
+  '';
+
+  nativeBuildInputs = [ pkgconfig cmake ];
+
+  cmakeFlags = ''
+    -DprojectM_FONT_MENU=${ttf_bitstream_vera}/share/fonts/truetype/VeraMono.ttf
+    -DprojectM_FONT_TITLE=${ttf_bitstream_vera}/share/fonts/truetype/Vera.ttf
+    -DINCLUDE-PROJECTM-TEST=OFF
+    -DINCLUDE-PROJECTM-QT=${if withQt then "ON" else "OFF"}
+    -DINCLUDE-PROJECTM-LIBVISUAL=${if withLibvisual then "ON" else "OFF"}
+    -DINCLUDE-PROJECTM-JACK=${if withJack then "ON" else "OFF"}
+    -DINCLUDE-PROJECTM-PULSEAUDIO=${if withPulseAudio then "ON" else "OFF"}
+  '';
+
+  buildInputs = with stdenv.lib;
+    [ glew ftgl ]
+    ++ optional withQt qt4
+    ++ optionals withLibvisual [ libvisual SDL ]
+    ++ optional withJack jackaudio
+    ++ optional withPulseAudio pulseaudio
+    ;
+}
diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix
index 1f280f94b6d..4ff1634c153 100644
--- a/pkgs/top-level/all-packages.nix
+++ b/pkgs/top-level/all-packages.nix
@@ -1670,6 +1670,8 @@ let
 
   prey-bash-client = callPackage ../tools/security/prey { };
 
+  projectm = callPackage ../applications/audio/projectm { };
+
   proxychains = callPackage ../tools/networking/proxychains { };
 
   proxytunnel = callPackage ../tools/misc/proxytunnel { };