summary refs log tree commit diff
path: root/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix
diff options
context:
space:
mode:
authorThomas Tuegel <ttuegel@gmail.com>2016-01-23 16:02:20 -0600
committerThomas Tuegel <ttuegel@gmail.com>2016-01-31 21:15:03 -0600
commit74121e07a74857667b58c6db5af99ef613679fb2 (patch)
treecf42e4fb48b8bab48a002c4d7f138d88d04c7eb2 /pkgs/development/libraries/qt-5/5.5/qtbase/default.nix
parentdb69888a02a85f98aafad2654c1c21072a4d3a4e (diff)
downloadnixpkgs-74121e07a74857667b58c6db5af99ef613679fb2.tar
nixpkgs-74121e07a74857667b58c6db5af99ef613679fb2.tar.gz
nixpkgs-74121e07a74857667b58c6db5af99ef613679fb2.tar.bz2
nixpkgs-74121e07a74857667b58c6db5af99ef613679fb2.tar.lz
nixpkgs-74121e07a74857667b58c6db5af99ef613679fb2.tar.xz
nixpkgs-74121e07a74857667b58c6db5af99ef613679fb2.tar.zst
nixpkgs-74121e07a74857667b58c6db5af99ef613679fb2.zip
qt55: use multiple outputs
Diffstat (limited to 'pkgs/development/libraries/qt-5/5.5/qtbase/default.nix')
-rw-r--r--pkgs/development/libraries/qt-5/5.5/qtbase/default.nix34
1 files changed, 29 insertions, 5 deletions
diff --git a/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix b/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix
index ef6e0620bca..82064831653 100644
--- a/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix
+++ b/pkgs/development/libraries/qt-5/5.5/qtbase/default.nix
@@ -36,6 +36,8 @@ stdenv.mkDerivation {
 
   sourceRoot = "qt-everywhere-opensource-src-${version}";
 
+  outputs = [ "dev" "out" ];
+
   postUnpack = ''
     mv qtbase-opensource-src-${version} ./qt-everywhere-opensource-src-${version}/qtbase
   '';
@@ -93,12 +95,34 @@ stdenv.mkDerivation {
         --replace "@mesa_inc@" "${mesa.dev}"
     '';
 
+  setOutputFlags = false;
   preConfigure = ''
     export LD_LIBRARY_PATH="$PWD/qtbase/lib:$PWD/qtbase/plugins/platforms:$LD_LIBRARY_PATH"
     export MAKEFLAGS=-j$NIX_BUILD_CORES
 
-    export configureFlags+="-plugindir $out/lib/qt5/plugins -importdir $out/lib/qt5/imports -qmldir $out/lib/qt5/qml"
-    export configureFlags+=" -docdir $out/share/doc/qt5"
+    _multioutQtDevs() {
+        # We cannot simply set these paths in configureFlags because libQtCore retains
+        # references to the paths it was built with.
+        moveToOutput "bin" "$dev"
+        moveToOutput "include" "$dev"
+        moveToOutput "mkspecs" "$dev"
+
+        # The destination directory must exist or moveToOutput will do nothing
+        mkdir -p "$dev/share"
+        moveToOutput "share/doc" "$dev"
+
+        mkdir -p "$dev/lib"
+        lndir -silent "$out/lib" "$dev/lib"
+        if [[ -h "$dev/lib/cmake" ]]; then rm "$dev/lib/cmake"; fi
+        if [[ -h "$dev/lib/pkgconfig" ]]; then rm "$dev/lib/pkgconfig"; fi
+    }
+    preFixupHooks+=(_multioutQtDevs)
+
+    configureFlags+="\
+        -plugindir $out/lib/qt5/plugins \
+        -importdir $out/lib/qt5/imports \
+        -qmldir $out/lib/qt5/qml \
+        -docdir $out/share/doc/qt5"
   '';
 
   prefixKey = "-prefix ";
@@ -191,15 +215,15 @@ stdenv.mkDerivation {
     ++ lib.optional (postgresql != null) postgresql
     ++ lib.optionals gtkStyle [gnome_vfs.out libgnomeui.out gtk GConf];
 
-  nativeBuildInputs = [ python perl pkgconfig ];
+  nativeBuildInputs = [ lndir python perl pkgconfig ];
 
   # freetype-2.5.4 changed signedness of some struct fields
   NIX_CFLAGS_COMPILE = "-Wno-error=sign-compare";
 
-  postInstall =
+  postFixup =
     ''
       # Don't retain build-time dependencies like gdb and ruby.
-      sed '/QMAKE_DEFAULT_.*DIRS/ d' -i $out/mkspecs/qconfig.pri
+      sed '/QMAKE_DEFAULT_.*DIRS/ d' -i $dev/mkspecs/qconfig.pri
     '';
 
   inherit lndir;