Skip to content

Commit 7b5eb04

Browse files
authored
Merge branch 'Aitum:main' into main
2 parents c71790b + cdb7b4f commit 7b5eb04

File tree

120 files changed

+5327
-3281
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

120 files changed

+5327
-3281
lines changed

.cmake-format.json

Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
{
2+
"format": {
3+
"line_width": 120,
4+
"tab_size": 2,
5+
"enable_sort": true,
6+
"autosort": true
7+
},
8+
"additional_commands": {
9+
"find_qt": {
10+
"flags": [],
11+
"kwargs": {
12+
"COMPONENTS": "+",
13+
"COMPONENTS_WIN": "+",
14+
"COMPONENTS_MACOS": "+",
15+
"COMPONENTS_LINUX": "+"
16+
}
17+
},
18+
"set_target_properties_obs": {
19+
"pargs": 1,
20+
"flags": [],
21+
"kwargs": {
22+
"PROPERTIES": {
23+
"kwargs": {
24+
"PREFIX": 1,
25+
"OUTPUT_NAME": 1,
26+
"FOLDER": 1,
27+
"VERSION": 1,
28+
"SOVERSION": 1,
29+
"AUTOMOC": 1,
30+
"AUTOUIC": 1,
31+
"AUTORCC": 1,
32+
"AUTOUIC_SEARCH_PATHS": 1,
33+
"BUILD_RPATH": 1,
34+
"INSTALL_RPATH": 1
35+
}
36+
}
37+
}
38+
}
39+
}
40+
}

.github/FUNDING.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
# These are supported funding model platforms
2+
custom: ['https://aitum.tv/contribute']
Lines changed: 110 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,110 @@
1+
name: 'Set up and build plugin'
2+
description: 'Builds the plugin for specified architecture and build config'
3+
inputs:
4+
target:
5+
description: 'Target architecture for dependencies'
6+
required: true
7+
config:
8+
description: 'Build configuration'
9+
required: false
10+
default: 'RelWithDebInfo'
11+
codesign:
12+
description: 'Enable codesigning (macOS only)'
13+
required: false
14+
default: 'false'
15+
codesignIdent:
16+
description: 'Developer ID for application codesigning (macOS only)'
17+
required: false
18+
default: '-'
19+
workingDirectory:
20+
description: 'Working directory for packaging'
21+
required: false
22+
default: ${{ github.workspace }}
23+
runs:
24+
using: composite
25+
steps:
26+
- name: Run macOS Build
27+
if: runner.os == 'macOS'
28+
shell: zsh --no-rcs --errexit --pipefail {0}
29+
working-directory: ${{ inputs.workingDirectory }}
30+
env:
31+
CODESIGN_IDENT: ${{ inputs.codesignIdent }}
32+
CODESIGN_TEAM: ${{ inputs.codesignTeam }}
33+
run: |
34+
: Run macOS Build
35+
36+
local -a build_args=(--config ${{ inputs.config }})
37+
if (( ${+RUNNER_DEBUG} )) build_args+=(--debug)
38+
39+
if [[ '${{ inputs.codesign }}' == 'true' ]] build_args+=(--codesign)
40+
41+
.github/scripts/build-macos ${build_args}
42+
43+
- name: Install Dependencies 🛍️
44+
if: runner.os == 'Linux'
45+
shell: bash
46+
run: |
47+
sudo apt update
48+
49+
: Install system dependencies 🛍️
50+
sudo apt install cmake ninja-build pkg-config clang clang-format build-essential curl ccache git zsh
51+
52+
: Install OBS dependencies 🛍️
53+
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
54+
55+
: Install OBS Qt6 dependencies 🛍️
56+
sudo apt install qt6-base-dev qt6-base-private-dev libqt6svg6-dev qt6-wayland qt6-image-formats-plugins
57+
58+
- name: Run Ubuntu Build
59+
if: runner.os == 'Linux'
60+
shell: zsh --no-rcs --errexit --pipefail {0}
61+
working-directory: ${{ inputs.workingDirectory }}
62+
run: |
63+
: Run Ubuntu Build
64+
65+
local -a build_args=(
66+
--target linux-${{ inputs.target }}
67+
--config ${{ inputs.config }}
68+
)
69+
if (( ${+RUNNER_DEBUG} )) build_args+=(--debug)
70+
71+
.github/scripts/build-linux ${build_args}
72+
73+
- name: Run Windows Build
74+
if: runner.os == 'Windows'
75+
shell: pwsh
76+
run: |
77+
# Run Windows Build
78+
if ( $Env:RUNNER_DEBUG -ne $null ) {
79+
Set-PSDebug -Trace 1
80+
}
81+
82+
$BuildArgs = @{
83+
Target = '${{ inputs.target }}'
84+
Configuration = '${{ inputs.config }}'
85+
}
86+
87+
.github/scripts/Build-Windows.ps1 @BuildArgs
88+
89+
- name: Create Summary 📊
90+
if: contains(fromJSON('["Linux", "macOS"]'),runner.os)
91+
shell: zsh --no-rcs --errexit --pipefail {0}
92+
env:
93+
CCACHE_CONFIGPATH: ${{ inputs.workingDirectory }}/.ccache.conf
94+
run: |
95+
: Create Summary 📊
96+
97+
local -a ccache_data
98+
if (( ${+RUNNER_DEBUG} )) {
99+
setopt XTRACE
100+
ccache_data=("${(fA)$(ccache -s -vv)}")
101+
} else {
102+
ccache_data=("${(fA)$(ccache -s)}")
103+
}
104+
105+
print '### ${{ runner.os }} Ccache Stats (${{ inputs.target }})' >> $GITHUB_STEP_SUMMARY
106+
print '```' >> $GITHUB_STEP_SUMMARY
107+
for line (${ccache_data}) {
108+
print ${line} >> $GITHUB_STEP_SUMMARY
109+
}
110+
print '```' >> $GITHUB_STEP_SUMMARY

.github/actions/build-plugin/action.yml

Lines changed: 0 additions & 77 deletions
This file was deleted.
Lines changed: 120 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,120 @@
1+
name: 'Package plugin'
2+
description: 'Packages the plugin for specified architecture and build config.'
3+
inputs:
4+
target:
5+
description: 'Build target for dependencies'
6+
required: true
7+
config:
8+
description: 'Build configuration'
9+
required: false
10+
default: 'RelWithDebInfo'
11+
codesign:
12+
description: 'Enable codesigning (macOS only)'
13+
required: false
14+
default: 'false'
15+
notarize:
16+
description: 'Enable notarization (macOS only)'
17+
required: false
18+
default: 'false'
19+
codesignIdent:
20+
description: 'Developer ID for application codesigning (macOS only)'
21+
required: false
22+
default: '-'
23+
installerIdent:
24+
description: 'Developer ID for installer package codesigning (macOS only)'
25+
required: false
26+
default: ''
27+
codesignTeam:
28+
description: 'Developer team for codesigning (macOS only)'
29+
required: false
30+
default: ''
31+
codesignUser:
32+
description: 'Apple ID username for notarization (macOS only)'
33+
required: false
34+
default: ''
35+
codesignPass:
36+
description: 'Apple ID password for notarization (macOS only)'
37+
required: false
38+
default: ''
39+
package:
40+
description: 'Create Windows or macOS installation package'
41+
required: false
42+
default: 'false'
43+
workingDirectory:
44+
description: 'Working directory for packaging'
45+
required: false
46+
default: ${{ github.workspace }}
47+
runs:
48+
using: composite
49+
steps:
50+
- name: Run macOS Packaging
51+
if: runner.os == 'macOS'
52+
shell: zsh --no-rcs --errexit --pipefail {0}
53+
working-directory: ${{ inputs.workingDirectory }}
54+
env:
55+
CODESIGN_IDENT: ${{ inputs.codesignIdent }}
56+
CODESIGN_IDENT_INSTALLER: ${{ inputs.installerIdent }}
57+
CODESIGN_TEAM: ${{ inputs.codesignTeam }}
58+
CODESIGN_IDENT_USER: ${{ inputs.codesignUser }}
59+
CODESIGN_IDENT_PASS: ${{ inputs.codesignPass }}
60+
run: |
61+
: Run macOS Packaging
62+
63+
local -a package_args=(--config ${{ inputs.config }})
64+
if (( ${+RUNNER_DEBUG} )) package_args+=(--debug)
65+
66+
if [[ '${{ inputs.codesign }}' == 'true' ]] package_args+=(--codesign)
67+
if [[ '${{ inputs.codesign }}' == 'true' ]] echo "Will codesign"
68+
if [[ '${{ inputs.notarize }}' == 'true' ]] package_args+=(--notarize)
69+
if [[ '${{ inputs.notarize }}' == 'true' ]] echo "Will notarize"
70+
if [[ '${{ inputs.package }}' == 'true' ]] package_args+=(--package)
71+
if [[ '${{ inputs.package }}' == 'true' ]] echo "Will package"
72+
73+
.github/scripts/package-macos ${package_args}
74+
75+
- name: Install Dependencies 🛍️
76+
if: runner.os == 'Linux'
77+
shell: bash
78+
run: |
79+
: Install Dependencies 🛍️
80+
echo ::group::Install Dependencies
81+
eval "$(/home/linuxbrew/.linuxbrew/bin/brew shellenv)"
82+
echo "/home/linuxbrew/.linuxbrew/bin:/home/linuxbrew/.linuxbrew/sbin" >> $GITHUB_PATH
83+
brew install --quiet zsh
84+
echo ::endgroup::
85+
86+
- name: Run Ubuntu Packaging
87+
if: runner.os == 'Linux'
88+
shell: zsh --no-rcs --errexit --pipefail {0}
89+
working-directory: ${{ inputs.workingDirectory }}
90+
run: |
91+
: Run Ubuntu Packaging
92+
package_args=(
93+
--target linux-${{ inputs.target }}
94+
--config ${{ inputs.config }}
95+
)
96+
if (( ${+RUNNER_DEBUG} )) build_args+=(--debug)
97+
98+
if [[ '${{ inputs.package }}' == 'true' ]] package_args+=(--package)
99+
100+
.github/scripts/package-linux ${package_args}
101+
102+
- name: Run Windows Packaging
103+
if: runner.os == 'Windows'
104+
shell: pwsh
105+
run: |
106+
# Run Windows Packaging
107+
if ( $Env:RUNNER_DEBUG -ne $null ) {
108+
Set-PSDebug -Trace 1
109+
}
110+
111+
$PackageArgs = @{
112+
Target = '${{ inputs.target }}'
113+
Configuration = '${{ inputs.config }}'
114+
}
115+
116+
if ( '${{ inputs.package }}' -eq 'true' ) {
117+
$PackageArgs += @{BuildInstaller = $true}
118+
}
119+
120+
.github/scripts/Package-Windows.ps1 @PackageArgs

0 commit comments

Comments
 (0)