File: fixup_dylib_paths.sh

package info (click to toggle)
mysql-workbench 6.3.8%2Bdfsg-1
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 113,932 kB
  • ctags: 87,814
  • sloc: ansic: 955,521; cpp: 427,465; python: 59,728; yacc: 59,129; xml: 54,204; sql: 7,091; objc: 965; makefile: 638; sh: 613; java: 237; perl: 30; ruby: 6; php: 1
file content (36 lines) | stat: -rwxr-xr-x 920 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#!/bin/bash

# Fix paths from dylibs in MacOSX so that they're loaded from the app bundle
# instead of /usr/local

# <file to fix>

if test "$NEWTARGETPATH" = ""; then
NEWTARGETPATH="@executable_path/../Frameworks"
fi

if test "$CHANGEPATHS" = ""; then
CHANGEPATHS="/usr/local"
fi

for file in $*; do

  if [ -f $file ]; then
    new_targetid=$NEWTARGETPATH/$(basename $file)

    # change the id of the library if its a dylib
    if echo $new_targetid|grep dylib > /dev/null; then
      # and not already a relative path
      if ! otool -DX $file|grep @ > /dev/null; then
        install_name_tool -id $new_targetid $file
        install_name_tool -change $(otool -DX $file|head -1) $new_targetid $file
      fi
    fi

    for lib in $(otool -L $file|egrep "$CHANGEPATHS"|grep .dylib|cut -f2|cut -f1 -d\  ); do
	new_id=$NEWTARGETPATH/$(basename $lib)
	install_name_tool -change $lib $new_id $file
    done
  fi

done