diff --git a/pkgs/development/libraries/qt-6/modules/qttools.nix b/pkgs/development/libraries/qt-6/modules/qttools.nix index b1cf5dd2c146..06ce64424d55 100644 --- a/pkgs/development/libraries/qt-6/modules/qttools.nix +++ b/pkgs/development/libraries/qt-6/modules/qttools.nix @@ -3,9 +3,16 @@ , lib , qtbase , qtdeclarative +, substituteAll }: qtModule { pname = "qttools"; qtInputs = [ qtbase qtdeclarative ]; + patches = [ + ../patches/qttools-paths.patch + ]; + NIX_CFLAGS_COMPILE = [ + "-DNIX_OUTPUT_DEV=\"${placeholder "dev"}\"" + ]; } diff --git a/pkgs/development/libraries/qt-6/patches/qttools-paths.patch b/pkgs/development/libraries/qt-6/patches/qttools-paths.patch new file mode 100644 index 000000000000..9a0acb70b0f4 --- /dev/null +++ b/pkgs/development/libraries/qt-6/patches/qttools-paths.patch @@ -0,0 +1,27 @@ +diff --git a/src/linguist/shared/runqttool.cpp b/src/linguist/shared/runqttool.cpp +index d355b9dc..94fef33f 100644 +--- a/src/linguist/shared/runqttool.cpp ++++ b/src/linguist/shared/runqttool.cpp +@@ -20,9 +20,21 @@ class FMT { + Q_DECLARE_TR_FUNCTIONS(Linguist) + }; + ++static QString qtBasePath(QLibraryInfo::LibraryPath location) ++{ ++ switch (location) { ++ case QLibraryInfo::BinariesPath: ++ return QLatin1String(NIX_OUTPUT_DEV) + QLatin1String("/bin"); ++ case QLibraryInfo::LibraryExecutablesPath: ++ return QLatin1String(NIX_OUTPUT_DEV) + QLatin1String("/libexec"); ++ default: ++ return QLibraryInfo::path(location); ++ } ++} ++ + static QString qtToolFilePath(const QString &toolName, QLibraryInfo::LibraryPath location) + { +- QString filePath = QLibraryInfo::path(location) + QLatin1Char('/') + toolName; ++ QString filePath = qtBasePath(location) + QLatin1Char('/') + toolName; + #ifdef Q_OS_WIN + filePath.append(QLatin1String(".exe")); + #endif