diff --git a/pkgs/development/libraries/qt-5/5.12/default.nix b/pkgs/development/libraries/qt-5/5.12/default.nix index 47a3589c2f9..e8fad6e8381 100644 --- a/pkgs/development/libraries/qt-5/5.12/default.nix +++ b/pkgs/development/libraries/qt-5/5.12/default.nix @@ -160,9 +160,7 @@ let qmake = makeSetupHook { deps = [ self.qtbase.dev ]; substitutions = { - inherit (stdenv) isDarwin; - qtbase_dev = self.qtbase.dev; - fix_qt_builtin_paths = ../hooks/fix-qt-builtin-paths.sh; + fix_qmake_libtool = ../hooks/fix-qmake-libtool.sh; }; } ../hooks/qmake-hook.sh; diff --git a/pkgs/development/libraries/qt-5/5.9/default.nix b/pkgs/development/libraries/qt-5/5.9/default.nix index a872f212ff7..721c1b40d59 100644 --- a/pkgs/development/libraries/qt-5/5.9/default.nix +++ b/pkgs/development/libraries/qt-5/5.9/default.nix @@ -154,9 +154,7 @@ let qmake = makeSetupHook { deps = [ self.qtbase.dev ]; substitutions = { - inherit (stdenv) isDarwin; - qtbase_dev = self.qtbase.dev; - fix_qt_builtin_paths = ../hooks/fix-qt-builtin-paths.sh; + fix_qmake_libtool = ../hooks/fix-qmake-libtool.sh; }; } ../hooks/qmake-hook.sh; diff --git a/pkgs/development/libraries/qt-5/hooks/fix-qmake-libtool.sh b/pkgs/development/libraries/qt-5/hooks/fix-qmake-libtool.sh new file mode 100644 index 00000000000..5acaeb82446 --- /dev/null +++ b/pkgs/development/libraries/qt-5/hooks/fix-qmake-libtool.sh @@ -0,0 +1,14 @@ +# Fix libtool libraries generated by qmake. +# qmake started inserting filenames of shared objects instead of the appropriate +# linker flags. fixQmakeLibtool searches for broken libtool libraries and +# replaces the filenames with the linker flags that should have been there. +fixQmakeLibtool() { + if [ -d "$1" ]; then + find "$1" -name '*.la' | while read la; do + sed -i "$la" \ + -e '/^dependency_libs/ s,\(/[^ ]\+\)/lib\([^/ ]\+\)\.so,-L\1 -l\2,g' + done + fi +} + +fixupOutputHooks+=('fixQmakeLibtool $prefix') diff --git a/pkgs/development/libraries/qt-5/hooks/qmake-hook.sh b/pkgs/development/libraries/qt-5/hooks/qmake-hook.sh index f6d332f29ba..c3373983e32 100644 --- a/pkgs/development/libraries/qt-5/hooks/qmake-hook.sh +++ b/pkgs/development/libraries/qt-5/hooks/qmake-hook.sh @@ -1,3 +1,5 @@ +. @fix_qmake_libtool@ + qmakeFlags=( $qmakeFlags ) qmakePrePhase() { diff --git a/pkgs/development/libraries/qt-5/modules/qtbase.nix b/pkgs/development/libraries/qt-5/modules/qtbase.nix index 520f30cad0f..3a0c9085f54 100644 --- a/pkgs/development/libraries/qt-5/modules/qtbase.nix +++ b/pkgs/development/libraries/qt-5/modules/qtbase.nix @@ -100,6 +100,7 @@ stdenv.mkDerivation { . "$fix_qt_builtin_paths" . "$fix_qt_module_paths" . ${../hooks/move-qt-dev-tools.sh} + . ${../hooks/fix-qmake-libtool.sh} ''; postPatch =