2017-02-26 17:17:52 -08:00
|
|
|
hr() {
|
2017-02-26 17:49:32 -08:00
|
|
|
echo "───────────────────────────────────────────────────"
|
2017-02-26 17:17:52 -08:00
|
|
|
echo $1
|
2017-02-26 17:49:32 -08:00
|
|
|
echo "───────────────────────────────────────────────────"
|
2017-02-26 17:17:52 -08:00
|
|
|
}
|
|
|
|
|
2017-02-25 09:32:39 -08:00
|
|
|
# Exit if something fails
|
|
|
|
set -e
|
|
|
|
|
2017-02-05 09:46:49 -08:00
|
|
|
# Generate file name variables
|
2019-10-13 21:34:41 -07:00
|
|
|
export GIT_TAG=$(git describe --abbrev=0)
|
2016-10-09 15:26:44 -07:00
|
|
|
export GIT_HASH=$(git rev-parse --short HEAD)
|
2019-02-21 14:33:58 -08:00
|
|
|
export FILE_DATE=$(date +%Y-%m-%d.%H-%M-%S)
|
2019-10-13 21:34:41 -07:00
|
|
|
export FILENAME=$FILE_DATE-$GIT_HASH-$TRAVIS_BRANCH-osx.dmg
|
|
|
|
|
|
|
|
echo "git tag: $GIT_TAG"
|
2017-02-05 09:46:49 -08:00
|
|
|
|
2016-10-11 18:47:22 -07:00
|
|
|
cd ./build
|
2017-02-05 09:46:49 -08:00
|
|
|
|
2018-01-28 18:07:19 -08:00
|
|
|
# Move obslua
|
|
|
|
hr "Moving OBS LUA"
|
|
|
|
mv ./rundir/RelWithDebInfo/data/obs-scripting/obslua.so ./rundir/RelWithDebInfo/bin/
|
|
|
|
|
2018-01-29 16:43:57 -08:00
|
|
|
# Move obspython
|
2019-11-17 13:11:44 -08:00
|
|
|
hr "Moving OBS Python"
|
|
|
|
mv ./rundir/RelWithDebInfo/data/obs-scripting/_obspython.so ./rundir/RelWithDebInfo/bin/
|
|
|
|
mv ./rundir/RelWithDebInfo/data/obs-scripting/obspython.py ./rundir/RelWithDebInfo/bin/
|
2018-01-29 16:43:57 -08:00
|
|
|
|
2017-02-05 09:46:49 -08:00
|
|
|
# Package everything into a nice .app
|
2017-02-26 17:17:52 -08:00
|
|
|
hr "Packaging .app"
|
2017-02-27 15:31:15 -08:00
|
|
|
STABLE=false
|
2017-02-27 12:50:16 -08:00
|
|
|
if [ -n "${TRAVIS_TAG}" ]; then
|
2017-02-27 15:31:15 -08:00
|
|
|
STABLE=true
|
2017-02-27 12:50:16 -08:00
|
|
|
fi
|
|
|
|
|
2019-10-13 21:34:41 -07:00
|
|
|
#sudo python ../CI/install/osx/build_app.py --public-key ../CI/install/osx/OBSPublicDSAKey.pem --sparkle-framework ../../sparkle/Sparkle.framework --stable=$STABLE
|
|
|
|
|
2019-10-15 16:59:32 -07:00
|
|
|
../CI/install/osx/packageApp.sh
|
2019-10-13 21:34:41 -07:00
|
|
|
|
2020-04-09 17:27:27 -07:00
|
|
|
# fix obs outputs plugin it doesn't play nicely with dylibBundler at the moment
|
2019-10-13 21:34:41 -07:00
|
|
|
cp /usr/local/opt/mbedtls/lib/libmbedtls.12.dylib ./OBS.app/Contents/Frameworks/
|
|
|
|
cp /usr/local/opt/mbedtls/lib/libmbedcrypto.3.dylib ./OBS.app/Contents/Frameworks/
|
|
|
|
cp /usr/local/opt/mbedtls/lib/libmbedx509.0.dylib ./OBS.app/Contents/Frameworks/
|
2019-12-14 01:30:34 -08:00
|
|
|
chmod +w ./OBS.app/Contents/Frameworks/*.dylib
|
|
|
|
install_name_tool -id @executable_path/../Frameworks/libmbedtls.12.dylib ./OBS.app/Contents/Frameworks/libmbedtls.12.dylib
|
|
|
|
install_name_tool -id @executable_path/../Frameworks/libmbedcrypto.3.dylib ./OBS.app/Contents/Frameworks/libmbedcrypto.3.dylib
|
|
|
|
install_name_tool -id @executable_path/../Frameworks/libmbedx509.0.dylib ./OBS.app/Contents/Frameworks/libmbedx509.0.dylib
|
2020-04-09 17:27:27 -07:00
|
|
|
install_name_tool -change libmbedtls.12.dylib @executable_path/../Frameworks/libmbedtls.12.dylib ./OBS.app/Contents/Plugins/obs-outputs.so
|
|
|
|
install_name_tool -change libmbedcrypto.3.dylib @executable_path/../Frameworks/libmbedcrypto.3.dylib ./OBS.app/Contents/Plugins/obs-outputs.so
|
|
|
|
install_name_tool -change libmbedx509.0.dylib @executable_path/../Frameworks/libmbedx509.0.dylib ./OBS.app/Contents/Plugins/obs-outputs.so
|
2019-10-15 16:59:32 -07:00
|
|
|
install_name_tool -change /usr/local/opt/curl/lib/libcurl.4.dylib @executable_path/../Frameworks/libcurl.4.dylib ./OBS.app/Contents/Plugins/obs-outputs.so
|
|
|
|
install_name_tool -change @rpath/libobs.0.dylib @executable_path/../Frameworks/libobs.0.dylib ./OBS.app/Contents/Plugins/obs-outputs.so
|
2020-04-09 17:27:27 -07:00
|
|
|
install_name_tool -change /tmp/obsdeps/bin/libjansson.4.dylib @executable_path/../Frameworks/libjansson.4.dylib ./OBS.app/Contents/Plugins/obs-outputs.so
|
2019-10-13 21:34:41 -07:00
|
|
|
|
|
|
|
# copy sparkle into the app
|
|
|
|
hr "Copying Sparkle.framework"
|
2019-12-11 15:32:04 -08:00
|
|
|
cp -R ../../sparkle/Sparkle.framework ./OBS.app/Contents/Frameworks/
|
2019-10-13 21:34:41 -07:00
|
|
|
install_name_tool -change @rpath/Sparkle.framework/Versions/A/Sparkle @executable_path/../Frameworks/Sparkle.framework/Versions/A/Sparkle ./OBS.app/Contents/MacOS/obs
|
2017-02-05 09:46:49 -08:00
|
|
|
|
2018-04-13 22:18:01 -07:00
|
|
|
# Copy Chromium embedded framework to app Frameworks directory
|
|
|
|
hr "Copying Chromium Embedded Framework.framework"
|
2018-07-01 22:56:44 -07:00
|
|
|
sudo mkdir -p OBS.app/Contents/Frameworks
|
2019-12-11 15:32:04 -08:00
|
|
|
sudo cp -R ../../cef_binary_${CEF_BUILD_VERSION}_macosx64/Release/Chromium\ Embedded\ Framework.framework OBS.app/Contents/Frameworks/
|
2019-10-13 21:34:41 -07:00
|
|
|
|
|
|
|
install_name_tool -change /usr/local/opt/qt/lib/QtGui.framework/Versions/5/QtGui @executable_path/../Frameworks/QtGui.framework/Versions/5/QtGui ./OBS.app/Contents/Plugins/obs-browser.so
|
|
|
|
install_name_tool -change /usr/local/opt/qt/lib/QtCore.framework/Versions/5/QtCore @executable_path/../Frameworks/QtCore.framework/Versions/5/QtCore ./OBS.app/Contents/Plugins/obs-browser.so
|
|
|
|
install_name_tool -change /usr/local/opt/qt/lib/QtWidgets.framework/Versions/5/QtWidgets @executable_path/../Frameworks/QtWidgets.framework/Versions/5/QtWidgets ./OBS.app/Contents/Plugins/obs-browser.so
|
|
|
|
|
2019-10-15 16:59:32 -07:00
|
|
|
cp ../CI/install/osx/OBSPublicDSAKey.pem OBS.app/Contents/Resources
|
|
|
|
|
2019-10-13 21:34:41 -07:00
|
|
|
# edit plist
|
2019-10-15 16:59:32 -07:00
|
|
|
plutil -insert CFBundleVersion -string $GIT_TAG ./OBS.app/Contents/Info.plist
|
|
|
|
plutil -insert CFBundleShortVersionString -string $GIT_TAG ./OBS.app/Contents/Info.plist
|
2019-10-13 21:34:41 -07:00
|
|
|
plutil -insert OBSFeedsURL -string https://obsproject.com/osx_update/feeds.xml ./OBS.app/Contents/Info.plist
|
|
|
|
plutil -insert SUFeedURL -string https://obsproject.com/osx_update/stable/updates.xml ./OBS.app/Contents/Info.plist
|
|
|
|
plutil -insert SUPublicDSAKeyFile -string OBSPublicDSAKey.pem ./OBS.app/Contents/Info.plist
|
|
|
|
|
|
|
|
dmgbuild -s ../CI/install/osx/settings.json "OBS" obs.dmg
|
2017-01-12 18:52:30 -08:00
|
|
|
|
2019-02-21 14:33:58 -08:00
|
|
|
if [ -v "$TRAVIS" ]; then
|
|
|
|
# Signing stuff
|
|
|
|
hr "Decrypting Cert"
|
|
|
|
openssl aes-256-cbc -K $encrypted_dd3c7f5e9db9_key -iv $encrypted_dd3c7f5e9db9_iv -in ../CI/osxcert/Certificates.p12.enc -out Certificates.p12 -d
|
|
|
|
hr "Creating Keychain"
|
|
|
|
security create-keychain -p mysecretpassword build.keychain
|
|
|
|
security default-keychain -s build.keychain
|
|
|
|
security unlock-keychain -p mysecretpassword build.keychain
|
|
|
|
security set-keychain-settings -t 3600 -u build.keychain
|
|
|
|
hr "Importing certs into keychain"
|
|
|
|
security import ./Certificates.p12 -k build.keychain -T /usr/bin/productsign -P ""
|
|
|
|
# macOS 10.12+
|
|
|
|
security set-key-partition-list -S apple-tool:,apple: -s -k mysecretpassword build.keychain
|
|
|
|
fi
|
2017-02-05 09:46:49 -08:00
|
|
|
|
2019-10-13 21:34:41 -07:00
|
|
|
cp ./OBS.dmg ./$FILENAME
|
|
|
|
|
2017-02-05 09:46:49 -08:00
|
|
|
# Move to the folder that travis uses to upload artifacts from
|
2017-02-26 17:17:52 -08:00
|
|
|
hr "Moving package to nightly folder for distribution"
|
2017-02-05 09:46:49 -08:00
|
|
|
mkdir ../nightly
|
2017-01-09 18:50:39 -08:00
|
|
|
sudo mv ./$FILENAME ../nightly
|