Skip to content

Instantly share code, notes, and snippets.

@tobylane
Created March 24, 2016 18:26
Show Gist options
  • Save tobylane/7d60ccb5d2d07bba3d2d to your computer and use it in GitHub Desktop.
Save tobylane/7d60ccb5d2d07bba3d2d to your computer and use it in GitHub Desktop.
#!/bin/bash
set -ea
[ -n "$CTH_VERBOSE" ] && set -x
# Script to pull all the required dylibs, make them owned by user, and used by the CorsixTH executable
lua=lua5.3 # lua5.1 lua lua5.3 for 5.1 5.2 5.3
dir="$(brew --prefix)" # Adjust for your package manager or manual install
cd CorsixTH.app/Contents/MacOS
if [ ! -d luarocks ]
then
lrx=luarocks$(if [ $lua ]; then echo -;fi)$(echo $lua | sed 's/lua//')
$lrx install --tree luarocks luafilesystem
$lrx install --tree luarocks lpeg
$lrx install --tree luarocks luasocket
curl -fLsS https://patch-diff.githubusercontent.com/raw/diegonehab/luasocket/pull/69.diff | patch -bfN --verbose luarocks/share/lua/5.3/socket/http.lua
rm -rf luarocks/lib/luarocks/
fi
var=$(otool -L CorsixTH | grep /usr/local | cut -f1 -d' ')
cat "$dir"/opt/sdl2/lib/libSDL2.dylib > libSDL2.dylib
cat "$dir"/opt/lua53/lib/liblua.$(echo $lua | sed 's/lua//').dylib > liblua.$(echo $lua | sed 's/lua//').dylib
cat "$dir"/opt/sdl2_mixer/lib/libSDL2_mixer.dylib > libSDL2_mixer.dylib
cat "$dir"/opt/ffmpeg/lib/libavformat.dylib > libavformat.dylib
cat "$dir"/opt/ffmpeg/lib/libavcodec.dylib > libavcodec.dylib
cat "$dir"/opt/ffmpeg/lib/libavutil.dylib > libavutil.dylib
cat "$dir"/opt/ffmpeg/lib/libswscale.dylib > libswscale.dylib
cat "$dir"/opt/ffmpeg/lib/libswresample.dylib > libswresample.dylib
cat "$dir"/opt/freetype/lib/libfreetype.dylib > libfreetype.dylib
cat "$dir"/opt/x264/lib/libx264.dylib > libx264.dylib
cat "$dir"/opt/lame/lib/libmp3lame.dylib > libmp3lame.dylib
cat "$dir"/lib/libpng.dylib > libpng.dylib
install_name_tool -change "$dir"/opt/lua53/lib/liblua.5.3.dylib @executable_path/liblua.5.3.dylib CorsixTH
install_name_tool -change "$dir"/opt/sdl2/lib/libSDL2-2.0.0.dylib @executable_path/libSDL2.dylib CorsixTH
install_name_tool -change "$dir"/lib/libSDL2_mixer-2.0.0.dylib @executable_path/libSDL2_mixer.dylib CorsixTH
install_name_tool -change "$dir"/opt/sdl2_mixer/lib/libSDL2_mixer-2.0.0.dylib @executable_path/libSDL2_mixer.dylib CorsixTH
install_name_tool -change "$dir"/opt/ffmpeg/lib/libavformat.57.dylib @executable_path/libavformat.dylib CorsixTH
install_name_tool -change "$dir"/opt/ffmpeg/lib/libavcodec.57.dylib @executable_path/libavcodec.dylib CorsixTH
install_name_tool -change "$dir"/opt/ffmpeg/lib/libavutil.55.dylib @executable_path/libavutil.dylib CorsixTH
install_name_tool -change "$dir"/opt/ffmpeg/lib/libswscale.4.dylib @executable_path/libswscale.dylib CorsixTH
install_name_tool -change "$dir"/opt/ffmpeg/lib/libswresample.2.dylib @executable_path/libswresample.dylib CorsixTH
install_name_tool -change "$dir"/lib/libfreetype.6.dylib @executable_path/libfreetype.dylib CorsixTH
install_name_tool -change "$dir"/opt/freetype/lib/libfreetype.6.dylib @executable_path/libfreetype.dylib CorsixTH
install_name_tool -change "$dir"/opt/sdl2/lib/libSDL2-2.0.0.dylib @executable_path/libSDL2.dylib libSDL2_mixer.dylib
install_name_tool -change "$dir"/Cellar/ffmpeg/3.0/lib/libswresample.2.dylib @executable_path/libswresample.dylib libavcodec.dylib
install_name_tool -change "$dir"/Cellar/ffmpeg/3.0/lib/libavutil.55.dylib @executable_path/libavutil.dylib libavcodec.dylib
install_name_tool -change "$dir"/opt/x264/lib/libx264.148.dylib @executable_path/libx264.dylib libavcodec.dylib
install_name_tool -change "$dir"/opt/lame/lib/libmp3lame.0.dylib @executable_path/libmp3lame.dylib libavcodec.dylib
install_name_tool -change "$dir"/opt/ffmpeg/lib/libavcodec.57.dylib @executable_path/libavcodec.dylib libavformat.dylib
install_name_tool -change "$dir"/Cellar/ffmpeg/3.0/lib/libswresample.2.dylib @executable_path/libswresample.dylib libavformat.dylib
install_name_tool -change "$dir"/Cellar/ffmpeg/3.0/lib/libavutil.55.dylib @executable_path/libavutil.dylib libavformat.dylib
install_name_tool -change "$dir"/Cellar/ffmpeg/3.0/lib/libavcodec.57.dylib @executable_path/libavcodec.dylib libavformat.dylib
install_name_tool -change "$dir"/opt/x264/lib/libx264.148.dylib @executable_path/libx264.dylib libavformat.dylib
install_name_tool -change "$dir"/opt/lame/lib/libmp3lame.0.dylib @executable_path/libmp3lame.dylib libavformat.dylib
install_name_tool -change "$dir"/opt/x264/lib/libx264.148.dylib @executable_path/libx264.dylib libavutil.dylib
install_name_tool -change "$dir"/opt/lame/lib/libmp3lame.0.dylib @executable_path/libmp3lame.dylib libavutil.dylib
install_name_tool -change "$dir"/lib/libpng16.16.dylib libpng.dylib libavutil.dylib
install_name_tool -change "$dir"/Cellar/ffmpeg/3.0/lib/libavutil.55.dylib @executable_path/libavutil.dylib libswresample.dylib
install_name_tool -change "$dir"/opt/x264/lib/libx264.148.dylib @executable_path/libx264.dylib libswresample.dylib
install_name_tool -change "$dir"/opt/lame/lib/libmp3lame.0.dylib @executable_path/libmp3lame.dylib libswresample.dylib
install_name_tool -change "$dir"/Cellar/ffmpeg/3.0/lib/libavutil.55.dylib @executable_path/libavutil.dylib libswscale.dylib
install_name_tool -change "$dir"/opt/x264/lib/libx264.148.dylib @executable_path/libx264.dylib libswscale.dylib
install_name_tool -change "$dir"/opt/lame/lib/libmp3lame.0.dylib @executable_path/libmp3lame.dylib libswscale.dylib
install_name_tool -change "$dir"/opt/libpng/lib/libpng16.16.dylib @executable_path/libpng.dylib libfreetype.dylib
otool -L CorsixTH | grep -v System | grep -v /usr/lib | grep -v @executable_path
otool -L ./*.dylib | grep -v System | grep -v /usr/lib | grep -v @executable_path
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment