febuild/app-emulation/looking-glass/looking-glass-0_beta7_rc1-r1.ebuild

138 lines
2.6 KiB
Bash

# Copyright 2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit cmake tmpfiles linux-info desktop xdg
MY_PV="${PV//0_beta/B}"
MY_PV="${MY_PV//_/-}"
DESCRIPTION="A low latency KVMFR application for guests with VGA PCI Passthrough"
HOMEPAGE="https://looking-glass.io"
SRC_URI="https://looking-glass.io/artifact/stable/source -> ${P}.tar.gz"
LICENSE="GPL-2"
SLOT="0"
KEYWORDS="~amd64"
IUSE="X wayland pipewire pulseaudio +backtrace gnome host obs"
REQUIRED_USE="|| ( X wayland )
|| ( pipewire pulseaudio )"
DEPEND="gui-libs/egl-wayland
media-libs/fontconfig
media-libs/libsamplerate
dev-libs/nettle[gmp]
app-emulation/spice-protocol
X? (
x11-libs/libX11
x11-libs/libXfixes
x11-libs/libXi
x11-libs/libXinerama
x11-libs/libXcursor
x11-libs/libXScrnSaver
x11-libs/libXpresent
)
wayland? (
dev-libs/wayland
x11-libs/libxkbcommon
gnome? (
gui-libs/libdecor
)
)
pipewire? (
media-video/pipewire
)
pulseaudio? (
media-libs/libpulse
)
obs? (
media-video/obs-studio
)"
RDEPEND="${DEPEND}"
S="${WORKDIR}/${PN}-${MY_PV}"
MY_CMAKE_PROJECT="client "
src_prepare() {
default
# add other project
if use host; then
MY_CMAKE_PROJECT+="host "
fi
if use obs; then
MY_CMAKE_PROJECT+="obs "
fi
# cmake prepare loop
for prj in ${MY_CMAKE_PROJECT}
do
CMAKE_USE_DIR="${S}/${prj}"
cmake_src_prepare "$@"
done
}
src_configure() {
# cmake configure by use flags
if ! use X; then
local mycmakeargs+=(
-DENABLE_X11=no
)
fi
if use wayland; then
local mycmakeargs+=(
-DENABLE_WAYLAND=yes
)
fi
if ! use pipewire; then
local mycmakeargs+=(
-DENABLE_PIPEWIRE=no
)
fi
if ! use pulseaudio; then
local mycmakeargs+=(
-DENABLE_PULSEAUDIO=no
)
fi
if use gnome && use wayland; then
local mycmakeargs+=(
-DENABLE_LIBDECOR=yes
)
fi
# cmake configure loop
for prj in ${MY_CMAKE_PROJECT}
do
CMAKE_USE_DIR="${S}/${prj}"
BUILD_DIR="${WORKDIR}/${prj}"
cmake_src_configure "$@"
done
set_arch_to_kernel
}
src_compile() {
# cmake compile loop
for prj in ${MY_CMAKE_PROJECT}
do
CMAKE_USE_DIR="${S}/${prj}"
BUILD_DIR="${WORKDIR}/${prj}"
cmake_src_compile "$@"
done
}
src_install() {
# install cmake projects
for prj in ${MY_CMAKE_PROJECT}
do
CMAKE_USE_DIR="${S}/${prj}"
BUILD_DIR="${WORKDIR}/${prj}"
cmake_src_install "$@"
done
# install docs
# einstalldocs
# install tmpfiles config
# newtmpfiles "${FILESDIR}"/${PN}-tmpfiles.conf ${PN}.conf
# install desktop
# domenu "${FILESDIR}/${PN}.desktop"
newicon -s 128 "${S}/resources/icon-128x128.png" "${PN}.png"
}