Skip to content

Commit 741bb26

Browse files
committed
PORT: Fixed MacOS installer to include transitive dependencies and fix the @rpath.
1 parent 29deb47 commit 741bb26

1 file changed

Lines changed: 39 additions & 33 deletions

File tree

scripts/macosx_bundle_fixup.sh

Lines changed: 39 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -52,39 +52,45 @@ fi
5252

5353
printf "Adding Macport dylibs to modules\n"
5454

55-
changeset="$(echo $moduledir/*) $app/Contents/MacOS/swipl"
56-
while [ ! -z "$changeset" ]; do
57-
newchanges=
58-
for f in $changeset; do
59-
case "$(file $f)" in
60-
*Mach-O*)
61-
opt_dep=$(otool -L $f |
62-
grep '\(/opt/local\|/deps/\)' |
63-
grep -v libjvm |
64-
awk '{print $1}')
65-
if [ ! -z "$opt_dep" ]; then
66-
change=""
67-
for dep in $opt_dep; do
68-
file="$frameworkdir/$(basename $dep)"
69-
if [ ! -f $file ]; then
70-
printf " Adding $dep ... "
71-
cp $dep $frameworkdir
72-
chmod 755 $file
73-
newchanges="$newchanges $file"
74-
printf 'ok\n'
75-
fi
76-
change="$change -change $dep @rpath/$(basename $dep)"
77-
done
78-
if [ ! -z "$change" ]; then
79-
install_name_tool $change $f
80-
fi
81-
fi
82-
;;
83-
*)
84-
esac
85-
done
86-
changeset="$newchanges"
87-
done
55+
fixup_files()
56+
{
57+
changeset="$*"
58+
while [ ! -z "$changeset" ]; do
59+
newchanges=
60+
for f in $changeset; do
61+
case "$(file $f)" in
62+
*Mach-O*)
63+
opt_dep=$(otool -L $f |
64+
grep '\(/opt/local\|/deps/\)' |
65+
grep -v libjvm |
66+
awk '{print $1}')
67+
if [ ! -z "$opt_dep" ]; then
68+
change=""
69+
for dep in $opt_dep; do
70+
file="$frameworkdir/$(basename $dep)"
71+
if [ ! -f $file ]; then
72+
printf " Adding $dep ... "
73+
cp $dep $frameworkdir
74+
chmod 755 $file
75+
newchanges="$newchanges $file"
76+
printf 'ok\n'
77+
fi
78+
change="$change -change $dep @rpath/$(basename $dep)"
79+
done
80+
if [ ! -z "$change" ]; then
81+
install_name_tool $change $f
82+
fi
83+
fi
84+
;;
85+
*)
86+
esac
87+
done
88+
changeset="$newchanges"
89+
done
90+
}
91+
92+
fixup_files $(echo $moduledir/*) $app/Contents/MacOS/swipl
93+
fixup_files $(echo $frameworkdir/*)
8894

8995
# Code signing
9096

0 commit comments

Comments
 (0)