From 8e4e38cdcdc5f2be6875e6506d0789e9e5411ea6 Mon Sep 17 00:00:00 2001 From: Graham Bennett Date: Wed, 2 Sep 2020 23:25:10 +0100 Subject: [PATCH] octave: Fix libtool framework link failure on Darwin This fix moves linker flags of the form `-framework foo` from dependency_libs to inherited_linker_flags, since libtool doesn't understand them. See #96977 for details. Fixes #96977 --- .../libraries/qt-5/hooks/fix-qmake-libtool.sh | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/pkgs/development/libraries/qt-5/hooks/fix-qmake-libtool.sh b/pkgs/development/libraries/qt-5/hooks/fix-qmake-libtool.sh index 5acaeb82446..6aaeda052d7 100644 --- a/pkgs/development/libraries/qt-5/hooks/fix-qmake-libtool.sh +++ b/pkgs/development/libraries/qt-5/hooks/fix-qmake-libtool.sh @@ -5,8 +5,19 @@ fixQmakeLibtool() { if [ -d "$1" ]; then find "$1" -name '*.la' | while read la; do + set +e + framework_libs=$(grep '^dependency_libs' "$la" | grep -Eo -- '-framework +\w+' | tr '\n' ' ') + set -e sed -i "$la" \ - -e '/^dependency_libs/ s,\(/[^ ]\+\)/lib\([^/ ]\+\)\.so,-L\1 -l\2,g' + -e '/^dependency_libs/ s,\(/[^ ]\+\)/lib\([^/ ]\+\)\.so,-L\1 -l\2,g' \ + -e '/^dependency_libs/ s,-framework \+\w\+,,g' + if [ ! -z "$framework_libs" ]; then + if grep '^inherited_linker_flags=' $la >/dev/null; then + sed -i "$la" -e "s/^\(inherited_linker_flags='[^']*\)/\1 $framework_libs/" + else + echo "inherited_linker_flags='$framework_libs'" >> "$la" + fi + fi done fi }