SceneSwitcher/.github/scripts/utils.zsh/setup_linux
2026-06-21 14:00:45 +02:00

80 lines
1.7 KiB
Plaintext

autoload -Uz log_error log_status log_info mkcd
if (( ! ${+project_root} )) {
log_error "'project_root' not set. Please set before running ${0}."
return 2
}
if (( ! ${+target} )) {
log_error "'target' not set. Please set before running ${0}."
return 2
}
pushd ${project_root}
typeset -g QT_VERSION
local -a apt_args=(
${CI:+-y}
--no-install-recommends
)
if (( _loglevel == 0 )) apt_args+=(--quiet)
if (( ! (${skips[(Ie)all]} + ${skips[(Ie)deps]}) )) {
log_group 'Installing obs-studio build dependencies...'
local suffix
if [[ ${CPUTYPE} != "${target##*-}" ]] {
local -A arch_mappings=(
aarch64 arm64
x86_64 amd64
)
suffix=":${arch_mappings[${target##*-}]}"
sudo apt-get install ${apt_args} gcc-${${target##*-}//_/-}-linux-gnu g++-${${target##*-}//_/-}-linux-gnu
}
local dist_version
read -r dist_version <<< "$(source /etc/os-release; print "${VERSION_ID}")"
autoload -Uz is-at-least
if ! is-at-least 26 ${dist_version}; then
sudo add-apt-repository --yes ppa:obsproject/obs-studio
sudo apt update
fi
local -a _obs_packages=(
build-essential
libgles2-mesa-dev
libsimde-dev
obs-studio
)
if is-at-least 26 ${dist_version}; then
_obs_packages+=(libobs-dev)
fi
sudo apt-get install ${apt_args} ${_obs_packages}
local -a _qt_packages=()
if (( QT_VERSION == 5 )) {
_qt_packages+=(
qtbase5-dev${suffix}
libqt5svg5-dev${suffix}
qtbase5-private-dev${suffix}
libqt5x11extras5-dev${suffix}
)
} else {
_qt_packages+=(
qt6-base-dev${suffix}
libqt6svg6-dev${suffix}
qt6-base-private-dev${suffix}
)
}
sudo apt-get install ${apt_args} ${_qt_packages}
log_group
}