about summary refs log tree commit diff
path: root/pkgs/development/libraries/qt-5
diff options
context:
space:
mode:
authorThomas Tuegel <ttuegel@mailbox.org>2019-09-18 15:19:31 -0500
committerThomas Tuegel <ttuegel@mailbox.org>2019-09-19 07:39:11 -0500
commit756b46a44976eba54cf83d763d5614137fbda477 (patch)
treecb25f494433560a5cbfd334e886561b4f37ee4c2 /pkgs/development/libraries/qt-5
parentdd599e20cfa8c01b3a1137e5b98bf1e0a4480012 (diff)
downloadnixlib-756b46a44976eba54cf83d763d5614137fbda477.tar
nixlib-756b46a44976eba54cf83d763d5614137fbda477.tar.gz
nixlib-756b46a44976eba54cf83d763d5614137fbda477.tar.bz2
nixlib-756b46a44976eba54cf83d763d5614137fbda477.tar.lz
nixlib-756b46a44976eba54cf83d763d5614137fbda477.tar.xz
nixlib-756b46a44976eba54cf83d763d5614137fbda477.tar.zst
nixlib-756b46a44976eba54cf83d763d5614137fbda477.zip
fix-qmake-libtool.sh
Diffstat (limited to 'pkgs/development/libraries/qt-5')
-rw-r--r--pkgs/development/libraries/qt-5/5.12/default.nix4
-rw-r--r--pkgs/development/libraries/qt-5/5.9/default.nix4
-rw-r--r--pkgs/development/libraries/qt-5/hooks/fix-qmake-libtool.sh14
-rw-r--r--pkgs/development/libraries/qt-5/hooks/qmake-hook.sh2
-rw-r--r--pkgs/development/libraries/qt-5/modules/qtbase.nix1
5 files changed, 19 insertions, 6 deletions
diff --git a/pkgs/development/libraries/qt-5/5.12/default.nix b/pkgs/development/libraries/qt-5/5.12/default.nix
index 47a3589c2f9f..e8fad6e8381d 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 a872f212ff71..721c1b40d592 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 000000000000..5acaeb824466
--- /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 f6d332f29ba8..c3373983e325 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 520f30cad0f6..3a0c9085f540 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 =