diff options
author | Graham Bennett <graham@grahambennett.org> | 2020-09-02 23:25:10 +0100 |
---|---|---|
committer | Graham Bennett <graham@grahambennett.org> | 2020-09-06 20:24:14 +0100 |
commit | 8e4e38cdcdc5f2be6875e6506d0789e9e5411ea6 (patch) | |
tree | 3f25b3222cdea76eb6939374dc2bc59649be4389 /pkgs/development/libraries/qt-5 | |
parent | e560459c5b06ce1351ae5eb8988f8ce87602058a (diff) |
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
Diffstat (limited to 'pkgs/development/libraries/qt-5')
-rw-r--r-- | pkgs/development/libraries/qt-5/hooks/fix-qmake-libtool.sh | 13 |
1 files changed, 12 insertions, 1 deletions
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 5acaeb8244666..6aaeda052d706 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 } |