2013-05-09 18:40:29 +00:00
|
|
|
{ stdenv, kde4, shared_mime_info, extraLibs ? [] }:
|
|
|
|
|
|
|
|
/* Supply a KDE program, and it will have the necessary KDE vars to
|
|
|
|
get icons, mime types, etc. working.
|
|
|
|
For example:
|
|
|
|
|
|
|
|
packageOverrides = pkgs : {
|
|
|
|
kdenliveWrapped = kde4.wrapper kde4.kdenlive;
|
|
|
|
};
|
|
|
|
*/
|
|
|
|
program:
|
|
|
|
|
|
|
|
let
|
2013-05-09 18:44:27 +00:00
|
|
|
libs = with kde4; [ kdelibs kde_runtime oxygen_icons shared_mime_info ]
|
|
|
|
++ extraLibs;
|
2013-05-09 18:40:29 +00:00
|
|
|
in
|
|
|
|
stdenv.mkDerivation {
|
|
|
|
name = program.name + "-wrapped";
|
|
|
|
|
|
|
|
inherit libs;
|
|
|
|
|
|
|
|
buildCommand = ''
|
|
|
|
ensureDir $out/bin
|
|
|
|
|
|
|
|
KDEDIRS=
|
|
|
|
QT_PLUGIN_PATH=
|
|
|
|
for a in $libs; do
|
|
|
|
KDEDIRS=$a''${KDEDIRS:+:}$KDEDIRS
|
2013-05-09 18:44:27 +00:00
|
|
|
QT_PLUGIN_PATH=$a/lib/qt4/plugins:$a/lib/kde4/plugins''${QT_PLUGIN_PATH:+:}$QT_PLUGIN_PATH
|
2013-05-09 18:40:29 +00:00
|
|
|
done
|
|
|
|
for a in ${program}/bin/*; do
|
|
|
|
PROG=$out/bin/`basename $a`
|
|
|
|
cat > $PROG << END
|
2013-05-09 18:44:27 +00:00
|
|
|
export KDEDIRS=$KDEDIRS\''${KDEDIRS:+:}\$KDEDIRS
|
|
|
|
export QT_PLUGIN_PATH=$QT_PLUGIN_PATH\''${QT_PLUGIN_PATH:+:}\$QT_PLUGIN_PATH
|
2013-05-09 18:40:29 +00:00
|
|
|
exec $a "\$@"
|
|
|
|
END
|
|
|
|
chmod +x $PROG
|
|
|
|
done
|
|
|
|
'';
|
|
|
|
}
|