From 6aeb8eedef8de8265a56dceb183dcf1235e3a05b Mon Sep 17 00:00:00 2001 From: Mark Liversedge Date: Mon, 2 May 2016 19:00:19 +0100 Subject: [PATCH] R OSX bundle dylib fixing tool .. see util/osx_bundle_fix.sh .. couldn't quite get it fully automated, for some reason you may need to run it multiple times. --- util/osx_bundle_fix.sh | 44 ++++++++++++++++++++++++++++++++++++------ 1 file changed, 38 insertions(+), 6 deletions(-) diff --git a/util/osx_bundle_fix.sh b/util/osx_bundle_fix.sh index ecbc67b7a..4fc361d33 100755 --- a/util/osx_bundle_fix.sh +++ b/util/osx_bundle_fix.sh @@ -1,10 +1,42 @@ #!/bin/sh -LOCAL_RLIBS=`otool -L GoldenCheetah.app/Contents/MacOS/GoldenCheetah | grep R.framework | awk '{ print $1}'` -for lib in $LOCAL_RLIBS +localise() { + + if [ $2 -gt 4 ]; then + return + fi + + # increase a level + target=$1 + level=$2 + level=`expr $level + 1` + + echo "level=" $level "target=" $target + + for lib in `otool -L $target | grep R.framework | awk '{ print $1}'` + do + + # copy if its not there + if [ ! -e GoldenCheetah.app/Contents/MacOS/`basename $lib` ]; then + cp $lib GoldenCheetah.app/Contents/MacOS + fi + + echo install_name_tool -change $lib "@executable_path/"`basename $lib` $target + install_name_tool -change $lib "@executable_path/"`basename $lib` $target + + # go down a level + localise GoldenCheetah.app/Contents/MacOS/`basename $lib` $level + done +} + +localise GoldenCheetah.app/Contents/MacOS/GoldenCheetah 1 + +# now all the things we copied +for i in GoldenCheetah.app/Contents/MacOS/*.dylib do - echo cp $lib GoldenCheetah.app/Contents/MacOS - cp $lib GoldenCheetah.app/Contents/MacOS - echo install_name_tool -change $lib "@executable_path/"`basename $lib` GoldenCheetah.app/Contents/MacOS/GoldenCheetah - install_name_tool -change $lib "@executable_path/"`basename $lib` GoldenCheetah.app/Contents/MacOS/GoldenCheetah + localise $i 1 done + +echo "**** you may need to run this a few times ****" +echo "run otool -L on the contents of the MacOS directory to check" +echo