diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml
index d6fdce27..004ac3fc 100644
--- a/.github/workflows/main.yml
+++ b/.github/workflows/main.yml
@@ -1,11 +1,11 @@
-name: "CI Multiplatform Build"
+name: 'CI Multiplatform Build'
on:
push:
paths-ignore:
- 'docs/**'
branches:
- - master
+ - '*'
tags:
- '[45].[0-9]+.[0-9]+*'
pull_request:
@@ -25,8 +25,8 @@ jobs:
QT_VERSION: '5.15.2'
WINDOWS_DEPS_CACHE_VERSION: '1' # Change whenever updating Qt dependency URL, in order to force a cache reset
WINDOWS_DEPS_VERSION: '2019'
- CMAKE_GENERATOR: "Visual Studio 16 2019"
- CMAKE_SYSTEM_VERSION: "10.0"
+ CMAKE_GENERATOR: 'Visual Studio 16 2019'
+ CMAKE_SYSTEM_VERSION: '10.0'
steps:
- name: 'Add msbuild to PATH'
uses: microsoft/setup-msbuild@v1.0.2
@@ -35,20 +35,20 @@ jobs:
with:
path: ${{ github.workspace }}/obs-websocket
submodules: 'recursive'
- - name: 'Checkout OBS-Studio'
+ - name: 'Checkout OBS Studio'
uses: actions/checkout@v2
with:
repository: obsproject/obs-studio
path: ${{ github.workspace }}/obs-studio
submodules: 'recursive'
- - name: 'Get OBS-Studio Git Info'
+ - name: 'Get OBS Studio Git Info'
shell: bash
working-directory: ${{ github.workspace }}/obs-studio
run: |
git fetch --prune --unshallow
echo "OBS_GIT_HASH=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
echo "OBS_GIT_TAG=$(git describe --tags --abbrev=0)" >> $GITHUB_ENV
- - name: 'Checkout last OBS-Studio release (${{ env.OBS_GIT_TAG }})'
+ - name: 'Checkout last OBS Studio release (${{ env.OBS_GIT_TAG }})'
shell: bash
working-directory: ${{ github.workspace }}/obs-studio
run: |
@@ -78,8 +78,6 @@ jobs:
with:
path: Qt_${{ env.QT_VERSION }}.7z
key: 'qtdep-${{ env.QT_CACHE_VERSION }} | ${{ runner.os }}'
- restore-keys: |
- qtdep-${{ env.QT_CACHE_VERSION }} | ${{ runner.os }}
- name: 'Download Prerequisite: Qt'
if: steps.qtcache.outputs.cache-hit != 'true'
run: |
@@ -87,20 +85,18 @@ jobs:
- name: 'Extract Prerequisite: Qt'
run: |
7z x Qt_${{ env.QT_VERSION }}.7z -o"${{ github.workspace }}\cmbuild\QT"
- - name: 'Restore Cached OBS-Studio Dependencies'
+ - name: 'Restore Cached OBS Studio Dependencies'
id: obscache
uses: actions/cache@v2
with:
path: ${{ github.workspace }}\cmbuild\deps\**
key: 'obsdep-${{ env.WINDOWS_DEPS_CACHE_VERSION }} | ${{ runner.os }}'
- restore-keys: |
- obsdep-${{ env.WINDOWS_DEPS_CACHE_VERSION }} | ${{ runner.os }}
- - name: 'Install Prerequisite: Pre-built OBS-Studio dependencies'
+ - name: 'Install Prerequisite: Pre-built OBS Studio dependencies'
if: steps.obscache.outputs.cache-hit != 'true'
run: |
curl -kLO https://cdn-fastly.obsproject.com/downloads/dependencies${{ env.WINDOWS_DEPS_VERSION }}.zip -f --retry 5 -C -
7z x dependencies${{ env.WINDOWS_DEPS_VERSION }}.zip -o"${{ github.workspace }}\cmbuild\deps"
- - name: 'Restore OBS-Studio 32-bit Build v${{ env.OBS_GIT_TAG }} from Cache'
+ - name: 'Restore OBS Studio 32-bit Build v${{ env.OBS_GIT_TAG }} from Cache'
id: build-cache-obs-32
uses: actions/cache@v2
env:
@@ -108,22 +104,20 @@ jobs:
with:
path: ${{ github.workspace }}/obs-studio/build32
key: ${{ runner.os }}-${{ env.CACHE_NAME }}-${{ env.OBS_GIT_TAG }}
- restore-keys: |
- ${{ runner.os }}-${{ env.CACHE_NAME }}-
- - name: 'Configure OBS-Studio 32-bit'
+ - name: 'Configure OBS Studio 32-bit'
if: steps.build-cache-obs-32.outputs.cache-hit != 'true'
working-directory: ${{ github.workspace }}/obs-studio
run: |
if(!(Test-Path -Path ".\build32")){New-Item -ItemType directory -Path .\build32}
cd .\build32
cmake -G "${{ env.CMAKE_GENERATOR }}" -A Win32 -DCMAKE_SYSTEM_VERSION="${{ env.CMAKE_SYSTEM_VERSION }}" -DQTDIR="${{ github.workspace }}\cmbuild\QT\${{ env.QT_VERSION }}\msvc2019" -DDepsPath="${{ github.workspace }}\cmbuild\deps\win32" -DCOPIED_DEPENDENCIES=NO -DCOPY_DEPENDENCIES=YES -DBUILD_BROWSER=OFF ..
- - name: 'Build OBS-Studio 32-bit'
+ - name: 'Build OBS Studio 32-bit'
if: steps.build-cache-obs-32.outputs.cache-hit != 'true'
working-directory: ${{ github.workspace }}/obs-studio
run: |
msbuild /m /p:Configuration=RelWithDebInfo .\build32\libobs\libobs.vcxproj
msbuild /m /p:Configuration=RelWithDebInfo .\build32\UI\obs-frontend-api\obs-frontend-api.vcxproj
- - name: 'Restore OBS-Studio 64-bit Build v${{ env.OBS_GIT_TAG }} from Cache'
+ - name: 'Restore OBS Studio 64-bit Build v${{ env.OBS_GIT_TAG }} from Cache'
id: build-cache-obs-64
uses: actions/cache@v1
env:
@@ -131,16 +125,14 @@ jobs:
with:
path: ${{ github.workspace }}/obs-studio/build64
key: ${{ runner.os }}-${{ env.CACHE_NAME }}-${{ env.OBS_GIT_TAG }}
- restore-keys: |
- ${{ runner.os }}-${{ env.CACHE_NAME }}-
- - name: 'Configure OBS-Studio 64-bit'
+ - name: 'Configure OBS Studio 64-bit'
if: steps.build-cache-obs-64.outputs.cache-hit != 'true'
working-directory: ${{ github.workspace }}/obs-studio
run: |
if(!(Test-Path -Path ".\build64")){New-Item -ItemType directory -Path .\build64}
cd .\build64
cmake -G "${{ env.CMAKE_GENERATOR }}" -A x64 -DCMAKE_SYSTEM_VERSION="${{ env.CMAKE_SYSTEM_VERSION }}" -DQTDIR="${{ github.workspace }}\cmbuild\QT\${{ env.QT_VERSION }}\msvc2019_64" -DDepsPath="${{ github.workspace }}\cmbuild\deps\win64" -DCOPIED_DEPENDENCIES=NO -DCOPY_DEPENDENCIES=YES -DBUILD_BROWSER=OFF ..
- - name: 'Build OBS-Studio 64-bit'
+ - name: 'Build OBS Studio 64-bit'
if: steps.build-cache-obs-64.outputs.cache-hit != 'true'
working-directory: ${{ github.workspace }}/obs-studio
run: |
@@ -188,7 +180,7 @@ jobs:
name: 'obs-websocket-${{ env.PACKAGE_VERSION }}-Windows-Installer'
path: ${{ github.workspace }}/obs-websocket/package/*.exe
ubuntu64:
- name: "Linux/Ubuntu 64-bit"
+ name: 'Linux/Ubuntu 64-bit'
runs-on: [ubuntu-latest]
if: contains(github.event.head_commit.message, '[skip ci]') != true
steps:
@@ -197,20 +189,20 @@ jobs:
with:
path: ${{ github.workspace }}/obs-websocket
submodules: 'recursive'
- - name: 'Checkout OBS-Studio'
+ - name: 'Checkout OBS Studio'
uses: actions/checkout@v2
with:
repository: obsproject/obs-studio
path: ${{ github.workspace }}/obs-studio
submodules: 'recursive'
- - name: 'Get OBS-Studio Git Info'
+ - name: 'Get OBS Studio Git Info'
shell: bash
working-directory: ${{ github.workspace }}/obs-studio
run: |
git fetch --prune --unshallow
echo "OBS_GIT_HASH=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
echo "OBS_GIT_TAG=$(git describe --tags --abbrev=0)" >> $GITHUB_ENV
- - name: 'Checkout last OBS-Studio release (${{ env.OBS_GIT_TAG }})'
+ - name: 'Checkout last OBS Studio release (${{ env.OBS_GIT_TAG }})'
shell: bash
working-directory: ${{ github.workspace }}/obs-studio
run: |
@@ -284,21 +276,21 @@ jobs:
libx11-xcb-dev \
libxcb1-dev \
libxss-dev \
- - name: 'Configure OBS-Studio'
+ - name: 'Configure OBS Studio'
working-directory: ${{ github.workspace }}/obs-studio
shell: bash
run: |
mkdir ./build
cd ./build
cmake -DDISABLE_PLUGINS=YES -DENABLE_SCRIPTING=NO -DUNIX_STRUCTURE=YES -DCMAKE_INSTALL_PREFIX=/usr ..
- - name: 'Build OBS-Studio'
+ - name: 'Build OBS Studio'
working-directory: ${{ github.workspace }}/obs-studio
shell: bash
run: |
set -e
cd ./build
make -j4 libobs obs-frontend-api
- - name: 'Install OBS-Studio'
+ - name: 'Install OBS Studio'
working-directory: ${{ github.workspace }}/obs-studio
shell: bash
run: |
@@ -355,3 +347,210 @@ jobs:
with:
name: 'obs-websocket-${{ env.PACKAGE_VERSION }}-Ubuntu64'
path: '${{ github.workspace }}/obs-websocket/package/*.deb'
+ macOS:
+ name: 'macOS 64-bit'
+ runs-on: [macos-latest]
+ if: contains(github.event.head_commit.message, '[skip ci]') != true
+ env:
+ MACOS_DEPS_VERSION: '2022-01-01'
+ MACOS_DEPS_CACHE_VERSION: '2' # Change whenever updating dependencies version, in order to force a cache reset
+ steps:
+ - name: 'Checkout obs-websocket'
+ uses: actions/checkout@v2
+ with:
+ path: ${{ github.workspace }}/obs-websocket
+ submodules: 'recursive'
+ - name: 'Checkout OBS Studio'
+ uses: actions/checkout@v2
+ with:
+ repository: obsproject/obs-studio
+ path: ${{ github.workspace }}/obs-studio
+ submodules: 'recursive'
+ - name: 'Install Prerequisite: Binary Signing Certificate'
+ uses: apple-actions/import-codesign-certs@v1
+ with:
+ p12-file-base64: ${{ secrets.MACOS_SIGNING_CERT }}
+ p12-password: ${{ secrets.MACOS_SIGNING_CERT_PASSWORD }}
+ create-keychain: true
+ keychain-password: ${{ secrets.MACOS_TEMP_CI_KEYCHAIN_PASSWORD }}
+ - name: 'Install Prerequisite: Installer Signing Certificate'
+ uses: apple-actions/import-codesign-certs@v1
+ with:
+ p12-file-base64: ${{ secrets.MACOS_INSTALLER_CERT }}
+ p12-password: ${{ secrets.MACOS_INSTALLER_CERT_PASSWORD }}
+ create-keychain: false
+ keychain-password: ${{ secrets.MACOS_TEMP_CI_KEYCHAIN_PASSWORD }}
+ - name: 'Get OBS Studio Git Info'
+ shell: bash
+ working-directory: ${{ github.workspace }}/obs-studio
+ run: |
+ git fetch --prune --unshallow
+ echo "OBS_GIT_HASH=$(git rev-parse --short HEAD)" >> $GITHUB_ENV
+ echo "OBS_GIT_TAG=$(git describe --tags --abbrev=0)" >> $GITHUB_ENV
+ - name: 'Checkout last OBS Studio release (${{ env.OBS_GIT_TAG }})'
+ shell: bash
+ working-directory: ${{ github.workspace }}/obs-studio
+ run: |
+ git checkout ${{ env.OBS_GIT_TAG }}
+ git submodule update
+ - name: 'Get obs-websocket git info'
+ shell: bash
+ working-directory: ${{ github.workspace }}/obs-websocket
+ run: |
+ git fetch --prune --unshallow
+ GIT_HASH=$(git rev-parse --short HEAD)
+ echo "GIT_HASH=$GIT_HASH" >> $GITHUB_ENV
+ GIT_TAG=$(git describe --exact-match --tags --abbrev=0) || GIT_TAG=""
+ echo "GIT_TAG=$GIT_TAG" >> $GITHUB_ENV
+ if [ "$GIT_TAG" ] ; then \
+ VERSION="$GIT_TAG" \
+ VERSION_SUFFIX=$(echo "$GIT_TAG" | cut -c6-20) ; \
+ else \
+ VERSION="$GIT_HASH-git" \
+ VERSION_SUFFIX="-$GIT_HASH-git" ; \
+ fi
+ echo "PACKAGE_VERSION=$VERSION" >> $GITHUB_ENV
+ echo "CMAKE_VERSION_SUFFIX=$VERSION_SUFFIX" >> $GITHUB_ENV
+ - name: 'Install Packages'
+ shell: bash
+ run: |
+ curl -L -O http://s.sudre.free.fr/Software/files/Packages.dmg
+ sudo hdiutil attach ./Packages.dmg
+ sudo installer -pkg /Volumes/Packages\ 1.2.10/Install\ Packages.pkg -target /
+ - name: 'Restore Cached Qt & OBS Studio dependencies'
+ id: deps-cache
+ uses: actions/cache@v2
+ with:
+ path: ${{ github.workspace }}/obsdeps/**
+ key: 'deps-cache-${{ env.MACOS_DEPS_CACHE_VERSION }} | ${{ runner.os }}'
+ - name: 'Install Prerequisite: Qt + OBS Studio dependencies'
+ if: steps.deps-cache.outputs.cache-hit != 'true'
+ shell: bash
+ run: |
+ mkdir -p obsdeps
+ curl -L -O https://github.com/obsproject/obs-deps/releases/download/${{ env.MACOS_DEPS_VERSION }}/macos-deps-qt-${{ env.MACOS_DEPS_VERSION }}-universal.tar.xz
+ tar -xf macos-deps-qt-${{ env.MACOS_DEPS_VERSION }}-universal.tar.xz -C "./obsdeps"
+ curl -L -O https://github.com/obsproject/obs-deps/releases/download/${{ env.MACOS_DEPS_VERSION }}/macos-deps-${{ env.MACOS_DEPS_VERSION }}-universal.tar.xz
+ tar -xf macos-deps-${{ env.MACOS_DEPS_VERSION }}-universal.tar.xz -C "./obsdeps"
+ - run: xattr -r -d com.apple.quarantine ./obsdeps
+ shell: bash
+ - name: 'Configue OBS Studio'
+ if: steps.cache-obs-build.outputs.cache-hit != 'true'
+ working-directory: ${{ github.workspace }}/obs-studio
+ shell: bash
+ run: |
+ mkdir -p ./build
+ cd ./build
+ cmake .. \
+ -DQTDIR=${{ github.workspace }}/obsdeps \
+ -DDepsPath=${{ github.workspace }}/obsdeps \
+ -DCMAKE_OSX_DEPLOYMENT_TARGET=10.13 \
+ -DDISABLE_PLUGINS=true \
+ -DENABLE_SCRIPTING=0 \
+ -DCMAKE_PREFIX_PATH=${{ github.workspace }}/obsdeps/lib/cmake
+ - name: 'Build OBS Studio'
+ if: steps.cache-obs-build.outputs.cache-hit != 'true'
+ working-directory: ${{ github.workspace }}/obs-studio/build
+ shell: bash
+ run: |
+ set -e
+ make -j4 libobs obs-frontend-api
+ - name: 'Configure obs-websocket'
+ working-directory: ${{ github.workspace }}/obs-websocket
+ shell: bash
+ run: |
+ mkdir -p build
+ cd build
+ cmake .. \
+ -DCMAKE_OSX_DEPLOYMENT_TARGET=10.13 \
+ -DQTDIR=${{ github.workspace }}/obsdeps \
+ -DLIBOBS_INCLUDE_DIR=${{ github.workspace }}/obs-studio/libobs \
+ -DLIBOBS_LIB=${{ github.workspace }}/obs-studio/libobs \
+ -DOBS_FRONTEND_LIB="${{ github.workspace }}/obs-studio/build/UI/obs-frontend-api/libobs-frontend-api.dylib" \
+ -DCMAKE_BUILD_TYPE=RelWithDebInfo \
+ -DCMAKE_INSTALL_PREFIX=/usr
+ - name: 'Build obs-websocket'
+ working-directory: ${{ github.workspace }}/obs-websocket/build
+ shell: bash
+ run: |
+ set -e
+ make -j4
+ - name: 'Relink Qt'
+ shell: bash
+ working-directory: ${{ github.workspace }}/obs-websocket/build
+ run: |
+ install_name_tool \
+ -change /tmp/obsdeps/lib/QtWidgets.framework/Versions/5/QtWidgets \
+ @executable_path/../Frameworks/QtWidgets.framework/Versions/5/QtWidgets \
+ -change /tmp/obsdeps/lib/QtGui.framework/Versions/5/QtGui \
+ @executable_path/../Frameworks/QtGui.framework/Versions/5/QtGui \
+ -change /tmp/obsdeps/lib/QtCore.framework/Versions/5/QtCore \
+ @executable_path/../Frameworks/QtCore.framework/Versions/5/QtCore \
+ -change /tmp/obsdeps/lib/QtNetwork.framework/Versions/5/QtNetwork \
+ @executable_path/../Frameworks/QtNetwork.framework/Versions/5/QtNetwork \
+ -change /tmp/obsdeps/lib/QtSvg.framework/Versions/5/QtSvg \
+ @executable_path/../Frameworks/QtSvg.framework/Versions/5/QtSvg \
+ ./obs-websocket.so
+ - name: 'Sign plugin binary'
+ shell: bash
+ working-directory: ${{ github.workspace }}/obs-websocket/build
+ run: |
+ codesign --sign "${{ secrets.MACOS_SIGNING_IDENTITY }}" ./obs-websocket.so
+ - name: 'Set PR Artifact Filename'
+ shell: bash
+ run: |
+ echo "MACOS_FILENAME=obs-websocket-${{ env.PACKAGE_VERSION }}-macOS.pkg" >> $GITHUB_ENV
+ echo "MACOS_FILENAME_UNSIGNED=obs-websocket-${{ env.PACKAGE_VERSION }}-macOS-Unsigned.pkg" >> $GITHUB_ENV
+ - name: 'Package ${{ env.MACOS_FILENAME_UNSIGNED }}'
+ if: success()
+ working-directory: ${{ github.workspace }}/obs-websocket
+ shell: bash
+ run: |
+ packagesbuild ./CI/macos/obs-websocket.pkgproj
+ mv ./release/obs-websocket.pkg ./release/${{ env.MACOS_FILENAME_UNSIGNED }}
+ - name: 'Sign plugin package'
+ if: ${{ env.GIT_TAG != '' }}
+ shell: bash
+ working-directory: ${{ github.workspace }}/obs-websocket
+ run: |
+ productsign \
+ --sign "${{ secrets.MACOS_INSTALLER_IDENTITY }}" \
+ ./release/${{ env.MACOS_FILENAME_UNSIGNED }} \
+ ./release/${{ env.MACOS_FILENAME }}
+ rm ./release/${{ env.MACOS_FILENAME_UNSIGNED }}
+ - name: 'Notarize package'
+ if: ${{ env.GIT_TAG != '' }}
+ shell: bash
+ working-directory: ${{ github.workspace }}/obs-websocket
+ run: |
+ zip -r ./release/${{ env.MACOS_FILENAME }}.zip ./release/${{ env.MACOS_FILENAME }}
+ UPLOAD_RESULT=$(xcrun altool --notarize-app \
+ --primary-bundle-id "com.obsproject.obs-websocket" \
+ --username "${{ secrets.MACOS_NOTARIZATION_USERNAME }}" \
+ --password "${{ secrets.MACOS_NOTARIZATION_PASSWORD }}" \
+ --asc-provider "${{ secrets.ASC_PROVIDER_SHORTNAME }}" \
+ --file "./release/${{ env.MACOS_FILENAME }}.zip")
+
+ rm ./release/${{ env.MACOS_FILENAME }}.zip
+
+ REQUEST_UUID=$(echo $UPLOAD_RESULT | awk -F ' = ' '/RequestUUID/ {print $2}')
+
+ # Pieces of code borrowed from rednoah/notarized-app
+ while sleep 30 && date; do
+ CHECK_RESULT=$(xcrun altool \
+ --notarization-info "$REQUEST_UUID" \
+ --username "${{ secrets.MACOS_NOTARIZATION_USERNAME }}" \
+ --password "${{ secrets.MACOS_NOTARIZATION_PASSWORD }}" \
+ --asc-provider "${{ secrets.ASC_PROVIDER_SHORTNAME }}")
+
+ if ! grep -q "Status: in progress" <<< "$CHECK_RESULT"; then
+ xcrun stapler staple ./release/${{ env.MACOS_FILENAME }}
+ break
+ fi
+ done
+ - name: 'Publish Packages'
+ if: success()
+ uses: actions/upload-artifact@v2-preview
+ with:
+ name: 'obs-websocket-${{ env.PACKAGE_VERSION }}-macOS'
+ path: '${{ github.workspace }}/obs-websocket/release/*.pkg'
diff --git a/CI/macos/Brewfile b/CI/macos/Brewfile
deleted file mode 100644
index 923af906..00000000
--- a/CI/macos/Brewfile
+++ /dev/null
@@ -1,5 +0,0 @@
-brew "jack"
-brew "speexdsp"
-brew "cmake"
-brew "freetype"
-brew "fdk-aac"
diff --git a/CI/macos/build-plugin-macos.sh b/CI/macos/build-plugin-macos.sh
deleted file mode 100755
index bc6c78ea..00000000
--- a/CI/macos/build-plugin-macos.sh
+++ /dev/null
@@ -1,27 +0,0 @@
-#!/bin/sh
-
-OSTYPE=$(uname)
-
-if [ "${OSTYPE}" != "Darwin" ]; then
- echo "[obs-websocket - Error] macOS build script can be run on Darwin-type OS only."
- exit 1
-fi
-
-HAS_CMAKE=$(type cmake 2>/dev/null)
-
-if [ "${HAS_CMAKE}" = "" ]; then
- echo "[obs-websocket - Error] CMake not installed - please run 'install-dependencies-macos.sh' first."
- exit 1
-fi
-
-echo "[obs-websocket] Building 'obs-websocket' for macOS."
-mkdir -p build && cd build
-cmake .. \
- -DCMAKE_OSX_DEPLOYMENT_TARGET=10.13 \
- -DQTDIR=/tmp/obsdeps \
- -DLIBOBS_INCLUDE_DIR=../../obs-studio/libobs \
- -DLIBOBS_LIB=../../obs-studio/libobs \
- -DOBS_FRONTEND_LIB="$(pwd)/../../obs-studio/build/UI/obs-frontend-api/libobs-frontend-api.dylib" \
- -DCMAKE_BUILD_TYPE=RelWithDebInfo \
- -DCMAKE_INSTALL_PREFIX=/usr \
-&& make -j4
diff --git a/CI/macos/install-build-obs-macos.sh b/CI/macos/install-build-obs-macos.sh
deleted file mode 100755
index 580c1dfd..00000000
--- a/CI/macos/install-build-obs-macos.sh
+++ /dev/null
@@ -1,39 +0,0 @@
-#!/bin/sh
-
-OSTYPE=$(uname)
-
-if [ "${OSTYPE}" != "Darwin" ]; then
- echo "[obs-websocket - Error] macOS obs-studio build script can be run on Darwin-type OS only."
- exit 1
-fi
-
-HAS_CMAKE=$(type cmake 2>/dev/null)
-HAS_GIT=$(type git 2>/dev/null)
-
-if [ "${HAS_CMAKE}" = "" ]; then
- echo "[obs-websocket - Error] CMake not installed - please run 'install-dependencies-macos.sh' first."
- exit 1
-fi
-
-if [ "${HAS_GIT}" = "" ]; then
- echo "[obs-websocket - Error] Git not installed - please install Xcode developer tools or via Homebrew."
- exit 1
-fi
-
-# Build obs-studio
-cd ..
-echo "[obs-websocket] Cloning obs-studio from GitHub.."
-git clone https://github.com/obsproject/obs-studio
-cd obs-studio
-OBSLatestTag=$(git describe --tags --abbrev=0)
-git checkout $OBSLatestTag
-mkdir build && cd build
-echo "[obs-websocket] Building obs-studio.."
-cmake .. \
- -DQTDIR=/tmp/obsdeps \
- -DDepsPath=/tmp/obsdeps \
- -DCMAKE_OSX_DEPLOYMENT_TARGET=10.13 \
- -DDISABLE_PLUGINS=true \
- -DENABLE_SCRIPTING=0 \
- -DCMAKE_PREFIX_PATH=/tmp/obsdeps/lib/cmake \
-&& make -j4
diff --git a/CI/macos/install-dependencies-macos.sh b/CI/macos/install-dependencies-macos.sh
deleted file mode 100755
index 8c734b8a..00000000
--- a/CI/macos/install-dependencies-macos.sh
+++ /dev/null
@@ -1,57 +0,0 @@
-#!/bin/sh
-
-OSTYPE=$(uname)
-
-if [ "${OSTYPE}" != "Darwin" ]; then
- echo "[obs-websocket - Error] macOS install dependencies script can be run on Darwin-type OS only."
- exit 1
-fi
-
-HAS_BREW=$(type brew 2>/dev/null)
-
-if [ "${HAS_BREW}" = "" ]; then
- echo "[obs-websocket - Error] Please install Homebrew (https://www.brew.sh/) to build obs-websocket on macOS."
- exit 1
-fi
-
-# OBS Studio Brew Deps
-echo "[obs-websocket] Updating Homebrew.."
-brew update >/dev/null
-echo "[obs-websocket] Checking installed Homebrew formulas.."
-
-if [ -d /usr/local/opt/openssl@1.0.2t ]; then
- brew uninstall openssl@1.0.2t
- brew untap local/openssl
-fi
-
-if [ -d /usr/local/opt/python@2.7.17 ]; then
- brew uninstall python@2.7.17
- brew untap local/python2
-fi
-
-brew bundle --file ./CI/macos/Brewfile
-
-# Fetch and install Packages app
-# =!= NOTICE =!=
-# Installs a LaunchDaemon under /Library/LaunchDaemons/fr.whitebox.packages.build.dispatcher.plist
-# =!= NOTICE =!=
-
-HAS_PACKAGES=$(type packagesbuild 2>/dev/null)
-
-if [ "${HAS_PACKAGES}" = "" ]; then
- echo "[obs-websocket] Installing Packaging app (might require password due to 'sudo').."
- curl -L -O http://s.sudre.free.fr/Software/files/Packages.dmg
- sudo hdiutil attach ./Packages.dmg
- sudo installer -pkg /Volumes/Packages\ 1.2.9/Install\ Packages.pkg -target /
-fi
-
-# OBS Deps
-echo "[obs-websocket] Installing obs-websocket dependency 'OBS Deps ${OBS_DEPS_VERSION}'.."
-wget --quiet --retry-connrefused --waitretry=1 https://github.com/obsproject/obs-deps/releases/download/${OBS_DEPS_VERSION}/macos-deps-${OBS_DEPS_VERSION}.tar.gz
-tar -xf ./macos-deps-${OBS_DEPS_VERSION}.tar.gz -C /tmp
-
-# Qt deps
-echo "[obs-websocket] Installing obs-websocket dependency 'Qt ${QT_VERSION}'.."
-curl -L -O https://github.com/obsproject/obs-deps/releases/download/${OBS_DEPS_VERSION}/macos-qt-${QT_VERSION}-${OBS_DEPS_VERSION}.tar.gz
-tar -xf ./macos-qt-${QT_VERSION}-${OBS_DEPS_VERSION}.tar.gz -C "/tmp"
-xattr -r -d com.apple.quarantine /tmp/obsdeps
\ No newline at end of file
diff --git a/CI/macos/obs-websocket.pkgproj b/CI/macos/obs-websocket.pkgproj
index 328b60ff..d38b3a2e 100644
--- a/CI/macos/obs-websocket.pkgproj
+++ b/CI/macos/obs-websocket.pkgproj
@@ -514,7 +514,7 @@
CONCLUSION_ACTION
0
IDENTIFIER
- fr.palakis.obs-websocket
+ com.obsproject.obs-websocket
OVERWRITE_PERMISSIONS
VERSION
diff --git a/CI/macos/package-plugin-macos.sh b/CI/macos/package-plugin-macos.sh
deleted file mode 100755
index 917585d1..00000000
--- a/CI/macos/package-plugin-macos.sh
+++ /dev/null
@@ -1,93 +0,0 @@
-#!/bin/bash
-
-set -e
-
-OSTYPE=$(uname)
-
-if [ "${OSTYPE}" != "Darwin" ]; then
- echo "[obs-websocket - Error] macOS package script can be run on Darwin-type OS only."
- exit 1
-fi
-
-echo "[obs-websocket] Preparing package build"
-
-GIT_HASH=$(git rev-parse --short HEAD)
-GIT_BRANCH_OR_TAG=$(git name-rev --name-only HEAD | awk -F/ '{print $NF}')
-
-VERSION="$GIT_HASH-$GIT_BRANCH_OR_TAG"
-
-FILENAME_UNSIGNED="obs-websocket-$VERSION-Unsigned.pkg"
-FILENAME="obs-websocket-$VERSION.pkg"
-
-echo "[obs-websocket] Modifying obs-websocket.so linking"
-install_name_tool \
- -change /tmp/obsdeps/lib/QtWidgets.framework/Versions/5/QtWidgets \
- @executable_path/../Frameworks/QtWidgets.framework/Versions/5/QtWidgets \
- -change /tmp/obsdeps/lib/QtGui.framework/Versions/5/QtGui \
- @executable_path/../Frameworks/QtGui.framework/Versions/5/QtGui \
- -change /tmp/obsdeps/lib/QtCore.framework/Versions/5/QtCore \
- @executable_path/../Frameworks/QtCore.framework/Versions/5/QtCore \
- -change /tmp/obsdeps/lib/QtNetwork.framework/Versions/5/QtNetwork \
- @executable_path/../Frameworks/QtNetwork.framework/Versions/5/QtNetwork \
- -change /tmp/obsdeps/lib/QtSvg.framework/Versions/5/QtSvg \
- @executable_path/../Frameworks/QtSvg.framework/Versions/5/QtSvg \
- ./build/obs-websocket.so
-
-# Check if replacement worked
-echo "[obs-websocket] Dependencies for obs-websocket"
-otool -L ./build/obs-websocket.so
-
-if [[ "$RELEASE_MODE" == "True" ]]; then
- echo "[obs-websocket] Signing plugin binary: obs-websocket.so"
- codesign --sign "$CODE_SIGNING_IDENTITY" ./build/obs-websocket.so
-else
- echo "[obs-websocket] Skipped plugin codesigning"
-fi
-
-echo "[obs-websocket] Actual package build"
-packagesbuild ./CI/macos/obs-websocket.pkgproj
-
-echo "[obs-websocket] Renaming obs-websocket.pkg to $FILENAME"
-mv ./release/obs-websocket.pkg ./release/$FILENAME_UNSIGNED
-
-if [[ "$RELEASE_MODE" == "True" ]]; then
- echo "[obs-websocket] Signing installer: $FILENAME"
- productsign \
- --sign "$INSTALLER_SIGNING_IDENTITY" \
- ./release/$FILENAME_UNSIGNED \
- ./release/$FILENAME
- rm ./release/$FILENAME_UNSIGNED
-
- echo "[obs-websocket] Submitting installer $FILENAME for notarization"
- zip -r ./release/$FILENAME.zip ./release/$FILENAME
- UPLOAD_RESULT=$(xcrun altool \
- --notarize-app \
- --primary-bundle-id "fr.palakis.obs-websocket" \
- --username "$AC_USERNAME" \
- --password "$AC_PASSWORD" \
- --asc-provider "$AC_PROVIDER_SHORTNAME" \
- --file "./release/$FILENAME.zip")
- rm ./release/$FILENAME.zip
-
- REQUEST_UUID=$(echo $UPLOAD_RESULT | awk -F ' = ' '/RequestUUID/ {print $2}')
- echo "Request UUID: $REQUEST_UUID"
-
- echo "[obs-websocket] Wait for notarization result"
- # Pieces of code borrowed from rednoah/notarized-app
- while sleep 30 && date; do
- CHECK_RESULT=$(xcrun altool \
- --notarization-info "$REQUEST_UUID" \
- --username "$AC_USERNAME" \
- --password "$AC_PASSWORD" \
- --asc-provider "$AC_PROVIDER_SHORTNAME")
- echo $CHECK_RESULT
-
- if ! grep -q "Status: in progress" <<< "$CHECK_RESULT"; then
- echo "[obs-websocket] Staple ticket to installer: $FILENAME"
- xcrun stapler staple ./release/$FILENAME
- break
- fi
- done
-else
- echo "[obs-websocket] Skipped installer codesigning and notarization"
-fi