fix-rpaths.sh connect zlib and boost libs

This commit is contained in:
2024-07-01 14:13:37 -06:00
parent 423340f1a5
commit 83cd04f085

View File

@@ -10,23 +10,35 @@ add_rpath_to_app() {
connect_dylib_in_app() { connect_dylib_in_app() {
APP="$1.app/Contents/MacOS/$1" APP="$1.app/Contents/MacOS/$1"
FRAMEWORKS="$1.app/Contents/Frameworks" FRAMEWORKS="$1.app/Contents/Frameworks"
OLD_SUFFIX=${4:-""}
if [ -n "$OLD_SUFFIX" ]; then
OLD_SUFFIX=".${OLD_SUFFIX}"
fi
NEW_SUFFIX=${5:-""}
if [ -n "$NEW_SUFFIX" ]; then
NEW_SUFFIX=".${NEW_SUFFIX}"
fi
# Connect the executable to the bundled dylib: # Connect the executable to the bundled dylib:
install_name_tool -change "$2/$3.$4.dylib" "@rpath/$3.$5.dylib" "$APP" install_name_tool -change "$2/$3$OLD_SUFFIX.dylib" "@rpath/$3$NEW_SUFFIX.dylib" "$APP"
# Connect the other dylibs to the bundled dylib # Connect the other dylibs to the bundled dylib
# (This is a safe no-op for other dylibs which don't depend on this dylib # (This is a safe no-op for other dylibs which don't depend on this dylib
# and in cases where the paths don't match exactly) # and in cases where the paths don't match exactly)
install_name_tool -change "@rpath/$3.$4.dylib" "@rpath/$3.$5.dylib" "$FRAMEWORKS/libsfml-window.2.6.1.dylib" install_name_tool -change "@rpath/$3$OLD_SUFFIX.dylib" "@rpath/$3$NEW_SUFFIX.dylib" "$FRAMEWORKS/libsfml-window.2.6.1.dylib"
install_name_tool -change "$2/$3.$4.dylib" "@rpath/$3.$5.dylib" "$FRAMEWORKS/libsfml-window.2.6.1.dylib" install_name_tool -change "$2/$3$OLD_SUFFIX.dylib" "@rpath/$3$NEW_SUFFIX.dylib" "$FRAMEWORKS/libsfml-window.2.6.1.dylib"
install_name_tool -change "@rpath/$3.$4.dylib" "@rpath/$3.$5.dylib" "$FRAMEWORKS/libsfml-audio.2.6.1.dylib" install_name_tool -change "@rpath/$3$OLD_SUFFIX.dylib" "@rpath/$3$NEW_SUFFIX.dylib" "$FRAMEWORKS/libsfml-audio.2.6.1.dylib"
install_name_tool -change "$2/$3.$4.dylib" "@rpath/$3.$5.dylib" "$FRAMEWORKS/libsfml-audio.2.6.1.dylib" install_name_tool -change "$2/$3$OLD_SUFFIX.dylib" "@rpath/$3$NEW_SUFFIX.dylib" "$FRAMEWORKS/libsfml-audio.2.6.1.dylib"
install_name_tool -change "@rpath/$3.$4.dylib" "@rpath/$3.$5.dylib" "$FRAMEWORKS/libsfml-graphics.2.6.1.dylib" install_name_tool -change "@rpath/$3$OLD_SUFFIX.dylib" "@rpath/$3$NEW_SUFFIX.dylib" "$FRAMEWORKS/libsfml-graphics.2.6.1.dylib"
install_name_tool -change "$2/$3.$4.dylib" "@rpath/$3.$5.dylib" "$FRAMEWORKS/libsfml-graphics.2.6.1.dylib" install_name_tool -change "$2/$3$OLD_SUFFIX.dylib" "@rpath/$3$NEW_SUFFIX.dylib" "$FRAMEWORKS/libsfml-graphics.2.6.1.dylib"
} }
# fix_app <app name> # fix_app <app name>
fix_app() { fix_app() {
if [ -e "$1.app" ]; then if [ -e "$1.app" ]; then
add_rpath_to_app "$1" add_rpath_to_app "$1"
connect_dylib_in_app "$1" /usr/local/opt/zlib/lib libz "1" "1.3.1"
connect_dylib_in_app "$1" /usr/local/opt/boost/lib libboost_system
connect_dylib_in_app "$1" /usr/local/opt/boost/lib libboost_filesystem
connect_dylib_in_app "$1" /usr/local/opt/sfml/lib libsfml-system "2.6" "2.6.1" connect_dylib_in_app "$1" /usr/local/opt/sfml/lib libsfml-system "2.6" "2.6.1"
connect_dylib_in_app "$1" /usr/local/opt/sfml/lib libsfml-window "2.6" "2.6.1" connect_dylib_in_app "$1" /usr/local/opt/sfml/lib libsfml-window "2.6" "2.6.1"
connect_dylib_in_app "$1" /usr/local/opt/sfml/lib libsfml-audio "2.6" "2.6.1" connect_dylib_in_app "$1" /usr/local/opt/sfml/lib libsfml-audio "2.6" "2.6.1"