mirror of
https://github.com/Aitum/obs-aitum-multistream.git
synced 2024-11-25 19:52:29 +01:00
6136896cc7
* Update runner to 24.04 as librist is only in 23.10+ * Enable linux build * replace homebrew with linux native packages * Add core depends --------- Co-authored-by: Aaron Honeycutt <aaronhoneycutt@proton.me> Co-authored-by: Exeldro <exelsor@hotmail.com>
109 lines
3.8 KiB
YAML
109 lines
3.8 KiB
YAML
name: 'Set up and build plugin'
|
|
description: 'Builds the plugin for specified architecture and build config'
|
|
inputs:
|
|
target:
|
|
description: 'Target architecture for dependencies'
|
|
required: true
|
|
config:
|
|
description: 'Build configuration'
|
|
required: false
|
|
default: 'RelWithDebInfo'
|
|
codesign:
|
|
description: 'Enable codesigning (macOS only)'
|
|
required: false
|
|
default: 'false'
|
|
codesignIdent:
|
|
description: 'Developer ID for application codesigning (macOS only)'
|
|
required: false
|
|
default: '-'
|
|
workingDirectory:
|
|
description: 'Working directory for packaging'
|
|
required: false
|
|
default: ${{ github.workspace }}
|
|
runs:
|
|
using: composite
|
|
steps:
|
|
- name: Run macOS Build
|
|
if: runner.os == 'macOS'
|
|
shell: zsh --no-rcs --errexit --pipefail {0}
|
|
working-directory: ${{ inputs.workingDirectory }}
|
|
env:
|
|
CODESIGN_IDENT: ${{ inputs.codesignIdent }}
|
|
CODESIGN_TEAM: ${{ inputs.codesignTeam }}
|
|
run: |
|
|
: Run macOS Build
|
|
|
|
local -a build_args=(--config ${{ inputs.config }})
|
|
if (( ${+RUNNER_DEBUG} )) build_args+=(--debug)
|
|
|
|
if [[ '${{ inputs.codesign }}' == 'true' ]] build_args+=(--codesign)
|
|
|
|
.github/scripts/build-macos ${build_args}
|
|
|
|
- name: Install Dependencies 🛍️
|
|
if: runner.os == 'Linux'
|
|
shell: bash
|
|
run: |
|
|
: Install system dependencies 🛍️
|
|
sudo apt install cmake ninja-build pkg-config clang clang-format build-essential curl ccache git zsh
|
|
|
|
: Install OBS dependencies 🛍️
|
|
sudo apt install libavcodec-dev libavdevice-dev libavfilter-dev libavformat-dev libavutil-dev libswresample-dev libswscale-dev libx264-dev libcurl4-openssl-dev libmbedtls-dev libgl1-mesa-dev libjansson-dev libluajit-5.1-dev python3-dev libx11-dev libxcb-randr0-dev libxcb-shm0-dev libxcb-xinerama0-dev libxcb-composite0-dev libxcomposite-dev libxinerama-dev libxcb1-dev libx11-xcb-dev libxcb-xfixes0-dev swig libcmocka-dev libxss-dev libglvnd-dev libgles2-mesa-dev libwayland-dev librist-dev libsrt-openssl-dev libpci-dev libpipewire-0.3-dev libqrcodegencpp-dev uthash-dev
|
|
|
|
: Install OBS Qt6 dependencies 🛍️
|
|
sudo apt install qt6-base-dev qt6-base-private-dev libqt6svg6-dev qt6-wayland qt6-image-formats-plugins
|
|
|
|
- name: Run Ubuntu Build
|
|
if: runner.os == 'Linux'
|
|
shell: zsh --no-rcs --errexit --pipefail {0}
|
|
working-directory: ${{ inputs.workingDirectory }}
|
|
run: |
|
|
: Run Ubuntu Build
|
|
|
|
local -a build_args=(
|
|
--target linux-${{ inputs.target }}
|
|
--config ${{ inputs.config }}
|
|
)
|
|
if (( ${+RUNNER_DEBUG} )) build_args+=(--debug)
|
|
|
|
.github/scripts/build-linux ${build_args}
|
|
|
|
- name: Run Windows Build
|
|
if: runner.os == 'Windows'
|
|
shell: pwsh
|
|
run: |
|
|
# Run Windows Build
|
|
if ( $Env:RUNNER_DEBUG -ne $null ) {
|
|
Set-PSDebug -Trace 1
|
|
}
|
|
|
|
$BuildArgs = @{
|
|
Target = '${{ inputs.target }}'
|
|
Configuration = '${{ inputs.config }}'
|
|
}
|
|
|
|
.github/scripts/Build-Windows.ps1 @BuildArgs
|
|
|
|
- name: Create Summary 📊
|
|
if: contains(fromJSON('["Linux", "macOS"]'),runner.os)
|
|
shell: zsh --no-rcs --errexit --pipefail {0}
|
|
env:
|
|
CCACHE_CONFIGPATH: ${{ inputs.workingDirectory }}/.ccache.conf
|
|
run: |
|
|
: Create Summary 📊
|
|
|
|
local -a ccache_data
|
|
if (( ${+RUNNER_DEBUG} )) {
|
|
setopt XTRACE
|
|
ccache_data=("${(fA)$(ccache -s -vv)}")
|
|
} else {
|
|
ccache_data=("${(fA)$(ccache -s)}")
|
|
}
|
|
|
|
print '### ${{ runner.os }} Ccache Stats (${{ inputs.target }})' >> $GITHUB_STEP_SUMMARY
|
|
print '```' >> $GITHUB_STEP_SUMMARY
|
|
for line (${ccache_data}) {
|
|
print ${line} >> $GITHUB_STEP_SUMMARY
|
|
}
|
|
print '```' >> $GITHUB_STEP_SUMMARY
|