CI: Update scripts for reorganized OSX bundle
This commit is contained in:
parent
747ce9b77c
commit
7c08b3f95e
@ -8,9 +8,12 @@ hr() {
|
||||
set -e
|
||||
|
||||
# Generate file name variables
|
||||
export GIT_TAG=$(git describe --abbrev=0)
|
||||
export GIT_HASH=$(git rev-parse --short HEAD)
|
||||
export FILE_DATE=$(date +%Y-%m-%d.%H-%M-%S)
|
||||
export FILENAME=$FILE_DATE-$GIT_HASH-$TRAVIS_BRANCH-osx.pkg
|
||||
export FILENAME=$FILE_DATE-$GIT_HASH-$TRAVIS_BRANCH-osx.dmg
|
||||
|
||||
echo "git tag: $GIT_TAG"
|
||||
|
||||
cd ./build
|
||||
|
||||
@ -30,32 +33,57 @@ if [ -n "${TRAVIS_TAG}" ]; then
|
||||
STABLE=true
|
||||
fi
|
||||
|
||||
sudo python ../CI/install/osx/build_app.py --public-key ../CI/install/osx/OBSPublicDSAKey.pem --sparkle-framework ../../sparkle/Sparkle.framework --stable=$STABLE
|
||||
#sudo python ../CI/install/osx/build_app.py --public-key ../CI/install/osx/OBSPublicDSAKey.pem --sparkle-framework ../../sparkle/Sparkle.framework --stable=$STABLE
|
||||
|
||||
../CI/install/osx/packageApp
|
||||
|
||||
# curl
|
||||
cp /usr/local/opt/curl/lib/libcurl.4.dylib ./OBS.app/Contents/Frameworks/
|
||||
install_name_tool -change /usr/local/opt/curl/lib/libcurl.4.dylib @executable_path/../Frameworks/libcurl.4.dylib ./OBS.app/Contents/Plugins/rtmp-services.so
|
||||
|
||||
# luajit
|
||||
install_name_tool -change /tmp/obsdeps/lib/libluajit-5.1.2.dylib @executable_path/../Frameworks/libluajit-5.1.2.dylib ./OBS.app/Contents/Plugins/frontend-tools.so
|
||||
|
||||
# jack
|
||||
cp /usr/local/opt/jack/lib/libjack.0.dylib ./OBS.app/Contents/Frameworks/
|
||||
cp /usr/local/opt/berkeley-db/lib/libdb-18.1.dylib ./OBS.app/Contents/Frameworks/
|
||||
install_name_tool -change /usr/local/opt/jack/lib/libjack.0.dylib @executable_path/../Frameworks/libjack.0.dylib ./OBS.app/Contents/Plugins/linux-jack.so
|
||||
install_name_tool -change /usr/local/opt/berkeley-db/lib/libdb-18.1.dylib @executable_path/../Frameworks/libdb-18.1.dylib ./OBS.app/Contents/Frameworks/libjack.0.dylib
|
||||
|
||||
# speexdsp
|
||||
cp /usr/local/opt/speexdsp/lib/libspeexdsp.1.dylib ./OBS.app/Contents/Frameworks/
|
||||
install_name_tool -change /usr/local/opt/speexdsp/lib/libspeexdsp.1.dylib @executable_path/../Frameworks/libspeexdsp.1.dylib ./OBS.app/Contents/Plugins/obs-filters.so
|
||||
|
||||
# libmbedtls
|
||||
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/
|
||||
install_name_tool -change /usr/local/opt/mbedtls/lib/libmbedtls.12.dylib @executable_path/../Frameworks/libmbedtls.12.dylib ./OBS.app/Contents/Plugins/obs-outputs.so
|
||||
install_name_tool -change /usr/local/opt/mbedtls/lib/libmbedcrypto.3.dylib @executable_path/../Frameworks/libmbedcrypto.3.dylib ./OBS.app/Contents/Plugins/obs-outputs.so
|
||||
install_name_tool -change /usr/local/opt/mbedtls/lib/libmbedx509.0.dylib @executable_path/../Frameworks/libmbedx509.0.dylib ./OBS.app/Contents/Plugins/obs-outputs.so
|
||||
|
||||
# copy sparkle into the app
|
||||
hr "Copying Sparkle.framework"
|
||||
cp -r ../../sparkle/Sparkle.framework ./OBS.app/Contents/Frameworks/
|
||||
install_name_tool -change @rpath/Sparkle.framework/Versions/A/Sparkle @executable_path/../Frameworks/Sparkle.framework/Versions/A/Sparkle ./OBS.app/Contents/MacOS/obs
|
||||
|
||||
# Copy Chromium embedded framework to app Frameworks directory
|
||||
hr "Copying Chromium Embedded Framework.framework"
|
||||
sudo mkdir -p OBS.app/Contents/Frameworks
|
||||
sudo cp -r ../../cef_binary_${CEF_BUILD_VERSION}_macosx64/Release/Chromium\ Embedded\ Framework.framework OBS.app/Contents/Frameworks/
|
||||
sudo install_name_tool -change \
|
||||
@rpath/Frameworks/Chromium\ Embedded\ Framework.framework/Chromium\ Embedded\ Framework \
|
||||
../../Frameworks/Chromium\ Embedded\ Framework.framework/Chromium\ Embedded\ Framework \
|
||||
OBS.app/Contents/Resources/obs-plugins/obs-browser.so
|
||||
sudo install_name_tool -change \
|
||||
@executable_path/../Frameworks/Chromium\ Embedded\ Framework.framework/Chromium\ Embedded\ Framework \
|
||||
../../Frameworks/Chromium\ Embedded\ Framework.framework/Chromium\ Embedded\ Framework \
|
||||
OBS.app/Contents/Resources/obs-plugins/obs-browser.so
|
||||
sudo install_name_tool -change \
|
||||
@rpath/Frameworks/Chromium\ Embedded\ Framework.framework/Chromium\ Embedded\ Framework \
|
||||
../../Frameworks/Chromium\ Embedded\ Framework.framework/Chromium\ Embedded\ Framework \
|
||||
OBS.app/Contents/Resources/obs-plugins/obs-browser-page
|
||||
sudo install_name_tool -change \
|
||||
@executable_path/../Frameworks/Chromium\ Embedded\ Framework.framework/Chromium\ Embedded\ Framework \
|
||||
../../Frameworks/Chromium\ Embedded\ Framework.framework/Chromium\ Embedded\ Framework \
|
||||
OBS.app/Contents/Resources/obs-plugins/obs-browser-page
|
||||
|
||||
# Package app
|
||||
hr "Generating .pkg"
|
||||
packagesbuild ../CI/install/osx/CMakeLists.pkgproj
|
||||
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
|
||||
|
||||
# edit plist
|
||||
plutil -insert CFBundleVersion -string $GIT_TAG-$GIT_HASH ./OBS.app/Contents/Info.plist
|
||||
plutil -insert CFBundleShortVersionString -string $GIT_TAG-$GIT_HASH ./OBS.app/Contents/Info.plist
|
||||
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
|
||||
|
||||
if [ -v "$TRAVIS" ]; then
|
||||
# Signing stuff
|
||||
@ -70,12 +98,10 @@ if [ -v "$TRAVIS" ]; then
|
||||
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
|
||||
hr "Signing Package"
|
||||
productsign --sign 2MMRE5MTB8 ./OBS.pkg ./$FILENAME
|
||||
else
|
||||
cp ./OBS.pkg ./$FILENAME
|
||||
fi
|
||||
|
||||
cp ./OBS.dmg ./$FILENAME
|
||||
|
||||
# Move to the folder that travis uses to upload artifacts from
|
||||
hr "Moving package to nightly folder for distribution"
|
||||
mkdir ../nightly
|
||||
|
@ -16,6 +16,8 @@ else
|
||||
/bin/bash -c "sudo xcode-select -s /Applications/Xcode_9.4.1.app/Contents/Developer"
|
||||
fi
|
||||
|
||||
git fetch origin --tags
|
||||
|
||||
# Leave obs-studio folder
|
||||
cd ../
|
||||
|
||||
@ -32,6 +34,8 @@ brew install jack speexdsp ccache mbedtls clang-format
|
||||
brew install https://gist.githubusercontent.com/DDRBoxman/b3956fab6073335a4bf151db0dcbd4ad/raw/ed1342a8a86793ea8c10d8b4d712a654da121ace/qt.rb
|
||||
brew install https://gist.githubusercontent.com/DDRBoxman/4cada55c51803a2f963fa40ce55c9d3e/raw/572c67e908bfbc1bcb8c476ea77ea3935133f5b5/swig.rb
|
||||
|
||||
pip install dmgbuild
|
||||
|
||||
export PATH=/usr/local/opt/ccache/libexec:$PATH
|
||||
ccache -s || echo "CCache is not available."
|
||||
|
||||
|
30
CI/install/osx/Info.plist
Normal file
30
CI/install/osx/Info.plist
Normal file
@ -0,0 +1,30 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>obs.icns</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>OBS</string>
|
||||
<key>CFBundleGetInfoString</key>
|
||||
<string>OBS - Free and Open Source Streaming/Recording Software</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>OBS</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>com.obsproject.obs-studio</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>LSMinimumSystemVersion</key>
|
||||
<string>10.8.5</string>
|
||||
<key>NSHighResolutionCapable</key>
|
||||
<true/>
|
||||
<key>LSAppNapIsDisabled</key>
|
||||
<true/>
|
||||
<key>NSCameraUsageDescription</key>
|
||||
<string>OBS needs to access the camera to enable camera sources to work.</string>
|
||||
<key>NSMicrophoneUsageDescription</key>
|
||||
<string>OBS needs to access the microphone to enable audio input.</string>
|
||||
</dict>
|
||||
</plist>
|
BIN
CI/install/osx/background.png
Normal file
BIN
CI/install/osx/background.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 13 KiB |
BIN
CI/install/osx/background.pxd/QuickLook/Icon.tiff
Normal file
BIN
CI/install/osx/background.pxd/QuickLook/Icon.tiff
Normal file
Binary file not shown.
BIN
CI/install/osx/background.pxd/QuickLook/Preview.tiff
Normal file
BIN
CI/install/osx/background.pxd/QuickLook/Preview.tiff
Normal file
Binary file not shown.
BIN
CI/install/osx/background.pxd/QuickLook/Thumbnail.tiff
Normal file
BIN
CI/install/osx/background.pxd/QuickLook/Thumbnail.tiff
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
CI/install/osx/background.pxd/metadata.info
Normal file
BIN
CI/install/osx/background.pxd/metadata.info
Normal file
Binary file not shown.
BIN
CI/install/osx/background.tiff
Normal file
BIN
CI/install/osx/background.tiff
Normal file
Binary file not shown.
BIN
CI/install/osx/background@2x.png
Normal file
BIN
CI/install/osx/background@2x.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 28 KiB |
1
CI/install/osx/buildDMG
Executable file
1
CI/install/osx/buildDMG
Executable file
@ -0,0 +1 @@
|
||||
dmgbuild -s ./settings.json "OBS" obs.dmg
|
1
CI/install/osx/makeRetinaBG
Executable file
1
CI/install/osx/makeRetinaBG
Executable file
@ -0,0 +1 @@
|
||||
tiffutil -cathidpicheck background.png background@2x.png -out background.tiff
|
BIN
CI/install/osx/obs.icns
Normal file
BIN
CI/install/osx/obs.icns
Normal file
Binary file not shown.
25
CI/install/osx/packageApp
Executable file
25
CI/install/osx/packageApp
Executable file
@ -0,0 +1,25 @@
|
||||
mkdir OBS.app
|
||||
mkdir OBS.app/Contents
|
||||
mkdir OBS.app/Contents/MacOS
|
||||
mkdir OBS.app/Contents/Plugins
|
||||
mkdir OBS.app/Contents/Resources
|
||||
|
||||
cp -r rundir/RelWithDebInfo/bin/ ./OBS.app/Contents/MacOS
|
||||
cp -r rundir/RelWithDebInfo/data ./OBS.app/Contents/Resources
|
||||
cp ../CI/install/osx/obs.icns ./OBS.app/Contents/Resources
|
||||
cp -r rundir/RelWithDebInfo/obs-plugins/ ./OBS.app/Contents/Plugins
|
||||
cp ../CI/install/osx/Info.plist ./OBS.app/Contents
|
||||
|
||||
/usr/local/Cellar/qt/5.10.1/bin/macdeployqt ./OBS.app
|
||||
|
||||
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/decklink-ouput-ui.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/decklink-ouput-ui.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/decklink-ouput-ui.so
|
||||
|
||||
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/frontend-tools.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/frontend-tools.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/frontend-tools.so
|
13
CI/install/osx/settings.json
Normal file
13
CI/install/osx/settings.json
Normal file
@ -0,0 +1,13 @@
|
||||
{
|
||||
"title": "OBS",
|
||||
"background": "../CI/install/osx/background.tiff",
|
||||
"format": "UDZO",
|
||||
"compression-level": 9,
|
||||
"window": { "position": { "x": 100, "y": 100 },
|
||||
"size": { "width": 540, "height": 380 } },
|
||||
"contents": [
|
||||
{ "x": 120, "y": 180, "type": "file",
|
||||
"path": "./OBS.app" },
|
||||
{ "x": 420, "y": 180, "type": "link", "path": "/Applications" }
|
||||
]
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user