3
0
Fork 0
forked from mirrors/nixpkgs
nixpkgs/pkgs/development/libraries/portmidi/default.nix
aszlig 46b2bd427c
portmidi: New package in version 217.
This uses a patch from Gentoo to disable Java support for now, as it is
not needed for supporting Mixxx (which is the package I'm preparing).
Hopefully, the patch will be applied upstream so we can safely drop it
here.

Signed-off-by: aszlig <aszlig@redmoonstudios.org>
2013-10-28 20:48:48 +01:00

55 lines
1.7 KiB
Nix

{ stdenv, fetchurl, unzip, cmake, /*openjdk,*/ alsaLib }:
stdenv.mkDerivation rec {
name = "portmidi-${version}";
version = "217";
src = fetchurl {
url = "mirror://sourceforge/portmedia/portmidi-src-${version}.zip";
sha256 = "03rfsk7z6rdahq2ihy5k13qjzgx757f75yqka88v3gc0pn9ais88";
};
cmakeFlags = let
#base = "${openjdk}/jre/lib/${openjdk.architecture}";
in [
"-DPORTMIDI_ENABLE_JAVA=0"
/* TODO: Fix Java support.
"-DJAVA_AWT_LIBRARY=${base}/libawt.so"
"-DJAVA_JVM_LIBRARY=${base}/server/libjvm.so"
*/
"-DCMAKE_ARCHIVE_OUTPUT_DIRECTORY=Release"
"-DCMAKE_LIBRARY_OUTPUT_DIRECTORY=Release"
"-DCMAKE_RUNTIME_OUTPUT_DIRECTORY=Release"
];
# XXX: This is to deactivate Java support.
patches = stdenv.lib.singleton (fetchurl rec {
url = "https://raw.github.com/Rogentos/argent-gentoo/master/media-libs/"
+ "portmidi/files/portmidi-217-cmake-libdir-java-opts.patch";
sha256 = "1jbjwan61iqq9fqfpq2a4fd30k3clg7a6j0gfgsw87r8c76kqf6h";
});
postPatch = ''
sed -i -e 's|/usr/local/|'"$out"'|' -e 's|/usr/share/|'"$out"'/share/|' \
pm_common/CMakeLists.txt pm_dylib/CMakeLists.txt pm_java/CMakeLists.txt
sed -i \
-e 's|-classpath .|-classpath '"$(pwd)"'/pm_java|' \
-e 's|pmdefaults/|'"$(pwd)"'/pm_java/&|g' \
-e 's|jportmidi/|'"$(pwd)"'/pm_java/&|g' \
-e 's/WORKING_DIRECTORY pm_java//' \
pm_java/CMakeLists.txt
'';
postInstall = ''
ln -s libportmidi.so "$out/lib/libporttime.so"
'';
buildInputs = [ unzip cmake /*openjdk*/ alsaLib ];
meta = {
homepage = "http://portmedia.sourceforge.net/portmidi/";
description = "Platform independent library for MIDI I/O";
license = stdenv.lib.licenses.mit;
};
}