3
0
Fork 0
forked from mirrors/nixpkgs

separate makeQtWrapper from qtbase setup-hook

This commit is contained in:
Thomas Tuegel 2015-10-14 09:44:10 -05:00
parent 895100ef91
commit d57e50d840
8 changed files with 70 additions and 41 deletions

View file

@ -1,6 +1,6 @@
{ stdenv, fetchurl, cmake
, withQt4 ? false, qt4
, withQt5 ? true, qtbase, qtsvg, qttools
, withQt5 ? true, qtbase, qtsvg, qttools, makeQtWrapper
# I'm unable to make KDE work here, crashes at runtime so I simply
# make Qt4 the default until someone who wants KDE can figure it out.
@ -68,6 +68,8 @@ stdenv.mkDerivation rec {
++ stdenv.lib.optional withMusicbrainz libmusicbrainz5
++ stdenv.lib.optional (withTaglib && !withKDE4 && withDevices) udisks2;
nativeBuildInputs = stdenv.lib.optional withQt5 makeQtWrapper;
unpackPhase = "tar -xvf $src";
sourceRoot = "${name}";
@ -91,7 +93,7 @@ stdenv.mkDerivation rec {
"-DENABLE_UDISKS2=ON"
];
postInstall = ''
postInstall = stdenv.lib.optionalString withQt5 ''
wrapQtProgram "$out/bin/cantata"
'';

View file

@ -1,4 +1,4 @@
{ stdenv, fetchFromGitHub, fftw, libsndfile, qtbase, qtmultimedia }:
{ stdenv, fetchFromGitHub, fftw, libsndfile, qtbase, qtmultimedia, makeQtWrapper }:
let
@ -41,6 +41,8 @@ in stdenv.mkDerivation {
buildInputs = [ fftw libsndfile qtbase qtmultimedia ];
nativeBuildInputs = [ makeQtWrapper ];
postPatch = ''
substituteInPlace dfasma.pro --replace '$$DFASMAVERSIONGITPRO' '${version}'
cp -Rv "${reaperFork.src}"/* external/REAPER

View file

@ -2,7 +2,7 @@
{ stdenv, fetchurl, alsaLib, bzip2, fftw, libjack2, libX11, liblo
, libmad, libogg, librdf, librdf_raptor, librdf_rasqal, libsamplerate
, libsndfile, pkgconfig, libpulseaudio, qtbase, redland
, libsndfile, pkgconfig, libpulseaudio, makeQtWrapper, qtbase, redland
, rubberband, serd, sord, vampSDK, fftwFloat
}:
@ -32,6 +32,8 @@ stdenv.mkDerivation rec {
libX11
];
nativeBuildInputs = [ makeQtWrapper ];
buildPhase = ''
for i in sonic-visualiser svapp svcore svgui;
do cd $i && qmake -makefile PREFIX=$out && cd ..;

View file

@ -1,4 +1,4 @@
{ stdenv, fetchpatch, makeWrapper, fetchFromGitHub, cmake, pkgconfig, libxcb, libpthreadstubs
{ stdenv, fetchpatch, makeQtWrapper, fetchFromGitHub, cmake, pkgconfig, libxcb, libpthreadstubs
, libXdmcp, libXau, qtbase, qtdeclarative, qttools, pam, systemd }:
let
@ -16,7 +16,7 @@ stdenv.mkDerivation rec {
patches = [ ./sddm-ignore-config-mtime.patch ];
nativeBuildInputs = [ cmake pkgconfig qttools ];
nativeBuildInputs = [ cmake makeQtWrapper pkgconfig qttools ];
buildInputs = [ libxcb libpthreadstubs libXdmcp libXau qtbase qtdeclarative pam systemd ];

View file

@ -1,4 +1,4 @@
{ stdenv, fetchgit, makeWrapper, qtbase, qtquick1, qmltermwidget }:
{ stdenv, fetchgit, makeQtWrapper, qtbase, qtquick1, qmltermwidget }:
stdenv.mkDerivation rec {
version = "1.0.0";
@ -15,7 +15,8 @@ stdenv.mkDerivation rec {
sed -i -e '/qmltermwidget/d' cool-retro-term.pro
'';
buildInputs = [ makeWrapper qtbase qtquick1 qmltermwidget ];
buildInputs = [ qtbase qtquick1 qmltermwidget ];
nativeBuildInputs = [ makeQtWrapper ];
configurePhase = "qmake PREFIX=$out";

View file

@ -18,7 +18,7 @@
, decryptSslTraffic ? false
}:
let inherit (pkgs) stdenv; in
let inherit (pkgs) makeSetupHook makeWrapper stdenv; in
with stdenv.lib;
@ -101,6 +101,8 @@ let
qtx11extras = callPackage ./qtx11extras.nix {};
qtxmlpatterns = callPackage ./qtxmlpatterns.nix {};
makeQtWrapper = makeSetupHook { deps = [ makeWrapper ]; } ./make-qt-wrapper.sh;
};
in makeScope pkgs.newScope addPackages

View file

@ -0,0 +1,52 @@
addQtDependency() {
addToSearchPath QT_PLUGIN_PATH "$1/lib/qt5/plugins"
addToSearchPath QML_IMPORT_PATH "$1/lib/qt5/imports"
addToSearchPath QML2_IMPORT_PATH "$1/lib/qt5/qml"
addToSearchPath XDG_DATA_DIRS "$1/share"
}
wrapQtProgram() {
local prog="$1"
shift
if [[ -n "$QT_WRAPPER_IMPURE" ]]; then
wrapProgram "$prog" \
--prefix QT_PLUGIN_PATH : "$QT_PLUGIN_PATH" \
--prefix QML_IMPORT_PATH : "$QML_IMPORT_PATH" \
--prefix QML2_IMPORT_PATH : "$QML2_IMPORT_PATH" \
"$@"
else
wrapProgram "$prog" \
--set QT_PLUGIN_PATH "$QT_PLUGIN_PATH" \
--set QML_IMPORT_PATH "$QML_IMPORT_PATH" \
--set QML2_IMPORT_PATH "$QML2_IMPORT_PATH" \
"$@"
fi
}
makeQtWrapper() {
local old="$1"
local new="$2"
shift
shift
if [[ -n "$QT_WRAPPER_IMPURE" ]]; then
makeWrapper "$old" "$new" \
--prefix QT_PLUGIN_PATH : "$QT_PLUGIN_PATH" \
--prefix QML_IMPORT_PATH : "$QML_IMPORT_PATH" \
--prefix QML2_IMPORT_PATH : "$QML2_IMPORT_PATH" \
"$@"
else
makeWrapper "$old" "$new" \
--set QT_PLUGIN_PATH "$QT_PLUGIN_PATH" \
--set QML_IMPORT_PATH "$QML_IMPORT_PATH" \
--set QML2_IMPORT_PATH "$QML2_IMPORT_PATH" \
"$@"
fi
}
# cannot use addToSearchPath because these directories may not exist yet
export QT_PLUGIN_PATH="$QT_PLUGIN_PATH${QT_PLUGIN_PATH:+:}$out/lib/qt5/plugins"
export QML_IMPORT_PATH="$QML_IMPORT_PATH${QML_IMPORT_PATH:+:}$out/lib/qt5/imports"
export QML2_IMPORT_PATH="$QML2_IMPORT_PATH${QML2_IMPORT_PATH:+:}$out/lib/qt5/qml"
export XDG_DATA_DIRS="$XDG_DATA_DIRS${XDG_DATA_DIRS:+:}$out/share"
envHooks+=(addQtDependency)

View file

@ -18,11 +18,6 @@ addQtModule() {
fi
done
fi
addToSearchPath QT_PLUGIN_PATH "$1/lib/qt5/plugins"
addToSearchPath QML_IMPORT_PATH "$1/lib/qt5/imports"
addToSearchPath QML2_IMPORT_PATH "$1/lib/qt5/qml"
addToSearchPath XDG_DATA_DIRS "$1/share"
}
rmQtModules() {
@ -49,28 +44,6 @@ setQMakePath() {
export PATH="$qtOut/bin${PATH:+:}$PATH"
}
wrapQtProgram() {
local prog="$1"
shift
wrapProgram "$prog" \
--set QT_PLUGIN_PATH "$QT_PLUGIN_PATH" \
--set QML_IMPORT_PATH "$QML_IMPORT_PATH" \
--set QML2_IMPORT_PATH "$QML2_IMPORT_PATH" \
"$@"
}
makeQtWrapper() {
local old="$1"
local new="$2"
shift
shift
makeWrapper "$old" "$new" \
--set QT_PLUGIN_PATH "$QT_PLUGIN_PATH" \
--set QML_IMPORT_PATH "$QML_IMPORT_PATH" \
--set QML2_IMPORT_PATH "$QML2_IMPORT_PATH" \
"$@"
}
qtOut=""
if [[ -z "$NIX_QT_SUBMODULE" ]]; then
qtOut="$PWD/qmake-$name"
@ -91,11 +64,6 @@ Documentation = share/doc/qt5
EOF
export QMAKE="$qtOut/bin/qmake"
# cannot use addToSearchPath because these directories may not exist yet
export QT_PLUGIN_PATH="$QT_PLUGIN_PATH${QT_PLUGIN_PATH:+:}$out/lib/qt5/plugins"
export QML_IMPORT_PATH="$QML_IMPORT_PATH${QML_IMPORT_PATH:+:}$out/lib/qt5/imports"
export QML2_IMPORT_PATH="$QML2_IMPORT_PATH${QML2_IMPORT_PATH:+:}$out/lib/qt5/qml"
export XDG_DATA_DIRS="$XDG_DATA_DIRS${XDG_DATA_DIRS:+:}$out/share"
envHooks+=(addQtModule)
preConfigurePhases+=(setQMakePath)