summary refs log tree commit diff
path: root/pkgs/development/libraries/qt-6/modules/qtbase.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/development/libraries/qt-6/modules/qtbase.nix')
-rw-r--r--pkgs/development/libraries/qt-6/modules/qtbase.nix53
1 files changed, 50 insertions, 3 deletions
diff --git a/pkgs/development/libraries/qt-6/modules/qtbase.nix b/pkgs/development/libraries/qt-6/modules/qtbase.nix
index cdae37ba54d28..8717b94545b62 100644
--- a/pkgs/development/libraries/qt-6/modules/qtbase.nix
+++ b/pkgs/development/libraries/qt-6/modules/qtbase.nix
@@ -182,6 +182,15 @@ stdenv.mkDerivation rec {
     substituteInPlace src/corelib/CMakeLists.txt --replace /bin/ls ${coreutils}/bin/ls
   '';
 
+  fix_qt_builtin_paths = ../hooks/fix-qt-builtin-paths.sh;
+  fix_qt_module_paths = ../hooks/fix-qt-module-paths.sh;
+  preHook = ''
+    . "$fix_qt_builtin_paths"
+    . "$fix_qt_module_paths"
+    . ${../hooks/move-qt-dev-tools.sh}
+    . ${../hooks/fix-qmake-libtool.sh}
+  '';
+
   qtPluginPrefix = "lib/qt-6/plugins";
   qtQmlPrefix = "lib/qt-6/qml";
 
@@ -199,8 +208,46 @@ stdenv.mkDerivation rec {
   outputs = [ "out" "dev" ];
 
   postInstall = ''
-    mkdir -p $dev
-    mv $out/mkspecs $out/bin $out/libexec $dev/
+    moveToOutput "mkspecs" "$dev"
+  '';
+
+  devTools = [
+    "libexec/moc"
+    "libexec/rcc"
+    "libexec/syncqt.pl"
+    "libexec/qlalr"
+    "libexec/ensure_pro_file.cmake"
+    "libexec/cmake_automoc_parser"
+    "libexec/qvkgen"
+    "libexec/tracegen"
+    "libexec/uic"
+    "bin/fixqt4headers.pl"
+    "bin/moc"
+    "bin/qdbuscpp2xml"
+    "bin/qdbusxml2cpp"
+    "bin/qlalr"
+    "bin/qmake"
+    "bin/rcc"
+    "bin/syncqt.pl"
+    "bin/uic"
+  ];
+
+  postFixup = ''
+    # Don't retain build-time dependencies like gdb.
+    sed '/QMAKE_DEFAULT_.*DIRS/ d' -i $dev/mkspecs/qconfig.pri
+    fixQtModulePaths "''${!outputDev}/mkspecs/modules"
+    fixQtBuiltinPaths "''${!outputDev}" '*.pr?'
+
+    # Move development tools to $dev
+    moveQtDevTools
+    moveToOutput bin "$dev"
+    moveToOutput libexec "$dev"
+
+    # fixup .pc file (where to find 'moc' etc.)
+    sed -i "$dev/lib/pkgconfig/Qt6Core.pc" \
+      -e "/^bindir=/ c bindir=$dev/bin"
+
+    patchShebangs $out $dev
   '';
 
   dontStrip = debugSymbols;
@@ -211,7 +258,7 @@ stdenv.mkDerivation rec {
     homepage = "https://www.qt.io/";
     description = "A cross-platform application framework for C++";
     license = with licenses; [ fdl13 gpl2 lgpl21 lgpl3 ];
-    maintainers = with maintainers; [ milahu nickcao ];
+    maintainers = with maintainers; [ milahu nickcao LunNova ];
     platforms = platforms.linux;
   };
 }