nixpkgs/pkgs/development/libraries/phonon/default.nix

80 lines
2.4 KiB
Nix
Raw Normal View History

{ stdenv, lib, fetchurl, cmake, mesa, pkgconfig, libpulseaudio
, qt4 ? null, extra-cmake-modules ? null, qtbase ? null, qttools ? null
, withQt5 ? false
2016-04-20 17:15:10 +02:00
, debug ? false }:
with lib;
2016-04-20 17:15:10 +02:00
let
v = "4.9.1";
soname = if withQt5 then "phonon4qt5" else "phonon";
buildsystemdir = "share/cmake/${soname}";
2016-04-20 17:15:10 +02:00
in
assert withQt5 -> qtbase != null;
2016-04-20 17:15:10 +02:00
assert withQt5 -> qttools != null;
stdenv.mkDerivation rec {
name = "phonon-${if withQt5 then "qt5" else "qt4"}-${v}";
2016-04-20 17:15:10 +02:00
meta = {
homepage = https://phonon.kde.org/;
2016-04-20 17:15:10 +02:00
description = "Multimedia API for Qt";
license = stdenv.lib.licenses.lgpl2;
platforms = stdenv.lib.platforms.linux;
maintainers = with stdenv.lib.maintainers; [ ttuegel ];
};
src = fetchurl {
2016-04-23 16:54:51 +02:00
url = "mirror://kde/stable/phonon/${v}/phonon-${v}.tar.xz";
sha256 = "177647r2jqfm32hqcz2nqfqv6v48hn5ab2vc31svba2wz23fkgk7";
2016-04-20 17:15:10 +02:00
};
buildInputs =
[ mesa libpulseaudio ]
2016-05-11 03:09:15 +02:00
++ (if withQt5 then [ qtbase qttools ] else [ qt4 ]);
2016-04-20 17:15:10 +02:00
nativeBuildInputs =
[ cmake pkgconfig ]
++ optional withQt5 extra-cmake-modules;
2016-04-20 17:15:10 +02:00
outputs = [ "out" "dev" ];
2016-04-20 17:15:10 +02:00
NIX_CFLAGS_COMPILE = "-fPIC";
cmakeFlags =
[ "-DCMAKE_BUILD_TYPE=${if debug then "Debug" else "Release"}" ]
++ optional withQt5 "-DPHONON_BUILD_PHONON4QT5=ON";
preConfigure = ''
cmakeFlags+=" -DPHONON_QT_MKSPECS_INSTALL_DIR=''${!outputDev}/mkspecs"
cmakeFlags+=" -DPHONON_QT_IMPORTS_INSTALL_DIR=''${!outputBin}/$qtQmlPrefix"
cmakeFlags+=" -DPHONON_QT_PLUGIN_INSTALL_DIR=''${!outputBin}/$qtPluginPrefix/designer"
'';
2016-04-20 17:15:10 +02:00
postPatch = ''
sed -i PhononConfig.cmake.in \
-e "/get_filename_component(rootDir/ s/^.*$//" \
-e "/^set(PHONON_INCLUDE_DIR/ s|\''${rootDir}/||" \
-e "/^set(PHONON_LIBRARY_DIR/ s|\''${rootDir}/||" \
-e "/^set(PHONON_BUILDSYSTEM_DIR/ s|\''${rootDir}|''${!outputDev}|"
sed -i cmake/FindPhononInternal.cmake \
-e "/set(INCLUDE_INSTALL_DIR/ c set(INCLUDE_INSTALL_DIR \"''${!outputDev}/include\")"
${optionalString withQt5 ''
sed -i cmake/FindPhononInternal.cmake \
-e "/set(PLUGIN_INSTALL_DIR/ c set(PLUGIN_INSTALL_DIR \"$qtPluginPrefix/..\")"
''}
sed -i CMakeLists.txt \
-e "/set(BUILDSYSTEM_INSTALL_DIR/ c set(BUILDSYSTEM_INSTALL_DIR \"''${!outputDev}/${buildsystemdir}\")"
'';
postFixup = ''
sed -i "''${!outputDev}/lib/pkgconfig/${soname}.pc" \
-e "/^exec_prefix=/ c exec_prefix=''${!outputBin}/bin"
2016-04-20 17:15:10 +02:00
'';
}