travis/macos: Use macpack to bundle dependencies

This appears to properly handle the ffmpeg libraries that dylibbundler
failed to patch.
This commit is contained in:
Alex James 2019-03-09 22:05:56 +08:00 committed by zhupengfei
parent acaca4188e
commit d299d0ed65
No known key found for this signature in database
GPG Key ID: DD129E108BD09378
2 changed files with 4 additions and 12 deletions

View File

@ -1,4 +1,5 @@
#!/bin/sh -ex #!/bin/sh -ex
brew update brew update
brew install qt5 sdl2 dylibbundler p7zip ccache ffmpeg brew install qt5 sdl2 p7zip ccache ffmpeg
pip3 install macpack

View File

@ -13,21 +13,12 @@ cp -r build/bin/citra-qt.app "$REV_NAME"
cp build/bin/citra-room "$REV_NAME" cp build/bin/citra-room "$REV_NAME"
# move libs into folder for deployment # move libs into folder for deployment
dylibbundler -b -x "${REV_NAME}/citra-qt.app/Contents/MacOS/citra-qt" -cd -d "${REV_NAME}/citra-qt.app/Contents/Frameworks/" -p "@executable_path/../Frameworks/" -of macpack "${REV_NAME}/citra-qt.app/Contents/MacOS/citra-qt" -d "../Frameworks"
# move qt frameworks into app bundle for deployment # move qt frameworks into app bundle for deployment
$(brew --prefix)/opt/qt5/bin/macdeployqt "${REV_NAME}/citra-qt.app" -executable="${REV_NAME}/citra-qt.app/Contents/MacOS/citra-qt" $(brew --prefix)/opt/qt5/bin/macdeployqt "${REV_NAME}/citra-qt.app" -executable="${REV_NAME}/citra-qt.app/Contents/MacOS/citra-qt"
# move libs into folder for deployment # move libs into folder for deployment
dylibbundler -b -x "${REV_NAME}/citra" -cd -d "${REV_NAME}/libs" -p "@executable_path/libs/" macpack "${REV_NAME}/citra" -d "libs"
# TODO(merry): Figure out why these libraries are not automatically processed
FFMPEG_PATH="$(find $(brew --cellar ffmpeg) -type d -depth 1)"
LIBVORBIS_PATH="$(find $(brew --cellar libvorbis) -type d -depth 1)"
install_name_tool -change "${FFMPEG_PATH}/lib/libavutil.56.dylib" @executable_path/../Frameworks/libavutil.56.dylib "${REV_NAME}/citra-qt.app/Contents/Frameworks/libavcodec.58.dylib"
install_name_tool -change "${FFMPEG_PATH}/lib/libavutil.56.dylib" @executable_path/../Frameworks/libavutil.56.dylib "${REV_NAME}/citra-qt.app/Contents/Frameworks/libswresample.3.dylib"
install_name_tool -change "${FFMPEG_PATH}/lib/libavutil.56.dylib" @executable_path/libs/libavutil.56.dylib "${REV_NAME}/libs/libavcodec.58.dylib"
install_name_tool -change "${FFMPEG_PATH}/lib/libavutil.56.dylib" @executable_path/libs/libavutil.56.dylib "${REV_NAME}/libs/libswresample.3.dylib"
install_name_tool -change "${LIBVORBIS_PATH}/lib/libvorbis.0.dylib" @executable_path/libs/libavutil.56.dylib "${REV_NAME}/libs/libvorbisenc.2.dylib"
# Make the citra-qt.app application launch a debugging terminal. # Make the citra-qt.app application launch a debugging terminal.
# Store away the actual binary # Store away the actual binary