Merge pull request #58400 from minijackson/kodi-wayland
kodi: add Wayland support
This commit is contained in:
commit
5d8f4a1e02
@ -13,7 +13,7 @@
|
||||
, libmpeg2, libsamplerate, libmad
|
||||
, libogg, libvorbis, flac, libxslt
|
||||
, lzo, libcdio, libmodplug, libass, libbluray
|
||||
, sqlite, mysql, nasm, gnutls, libva, libdrm, wayland
|
||||
, sqlite, mysql, nasm, gnutls, libva, libdrm
|
||||
, curl, bzip2, zip, unzip, glxinfo, xdpyinfo
|
||||
, libcec, libcec_platform, dcadec, libuuid
|
||||
, libcrossguid, libmicrohttpd
|
||||
@ -28,6 +28,8 @@
|
||||
, udevSupport ? true, udev ? null
|
||||
, usbSupport ? false, libusb ? null
|
||||
, vdpauSupport ? true, libvdpau ? null
|
||||
, useWayland ? false, wayland ? null, wayland-protocols ? null
|
||||
, waylandpp ? null, libxkbcommon ? null
|
||||
}:
|
||||
|
||||
assert dbusSupport -> dbus != null;
|
||||
@ -38,6 +40,7 @@ assert sambaSupport -> samba != null;
|
||||
assert udevSupport -> udev != null;
|
||||
assert usbSupport -> libusb != null && ! udevSupport; # libusb won't be used if udev is avaliable
|
||||
assert vdpauSupport -> libvdpau != null;
|
||||
assert useWayland -> wayland != null && wayland-protocols != null && waylandpp != null && libxkbcommon != null;
|
||||
|
||||
# TODO for Kodi 18.0
|
||||
# - check if dbus support PR has been merged and add dbus as a buildInput
|
||||
@ -110,7 +113,7 @@ let
|
||||
};
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
name = "kodi-${kodiVersion}";
|
||||
name = "kodi-${lib.optionalString useWayland "wayland-"}${kodiVersion}";
|
||||
|
||||
src = kodi_src;
|
||||
|
||||
@ -123,7 +126,7 @@ in stdenv.mkDerivation rec {
|
||||
libX11 xorgproto libXt libXmu libXext
|
||||
libXinerama libXrandr libXtst libXfixes
|
||||
alsaLib libGLU_combined glew fontconfig freetype ftgl
|
||||
libjpeg jasper libpng libtiff wayland
|
||||
libjpeg jasper libpng libtiff
|
||||
libmpeg2 libsamplerate libmad
|
||||
libogg libvorbis flac libxslt systemd
|
||||
lzo libcdio libmodplug libass libbluray
|
||||
@ -144,7 +147,12 @@ in stdenv.mkDerivation rec {
|
||||
++ lib.optional sambaSupport samba
|
||||
++ lib.optional udevSupport udev
|
||||
++ lib.optional usbSupport libusb
|
||||
++ lib.optional vdpauSupport libvdpau;
|
||||
++ lib.optional vdpauSupport libvdpau
|
||||
++ lib.optional useWayland [
|
||||
wayland waylandpp
|
||||
# Not sure why ".dev" is needed here, but CMake doesn't find libxkbcommon otherwise
|
||||
libxkbcommon.dev
|
||||
];
|
||||
|
||||
nativeBuildInputs = [
|
||||
cmake
|
||||
@ -153,7 +161,7 @@ in stdenv.mkDerivation rec {
|
||||
which
|
||||
pkgconfig gnumake
|
||||
autoconf automake libtool # still needed for some components. Check if that is the case with 18.0
|
||||
];
|
||||
] ++ lib.optional useWayland [ wayland-protocols ];
|
||||
|
||||
cmakeFlags = [
|
||||
"-Dlibdvdcss_URL=${libdvdcss.src}"
|
||||
@ -164,6 +172,9 @@ in stdenv.mkDerivation rec {
|
||||
"-DENABLE_INTERNAL_CROSSGUID=OFF"
|
||||
"-DENABLE_OPTICAL=ON"
|
||||
"-DLIRC_DEVICE=/run/lirc/lircd"
|
||||
] ++ lib.optional useWayland [
|
||||
"-DCORE_PLATFORM_NAME=wayland"
|
||||
"-DWAYLAND_RENDER_SYSTEM=gl"
|
||||
];
|
||||
|
||||
enableParallelBuilding = true;
|
||||
|
@ -1,7 +1,9 @@
|
||||
{ stdenv, lib, makeWrapper, buildEnv, kodi, plugins }:
|
||||
|
||||
buildEnv {
|
||||
name = "kodi-with-plugins-${(builtins.parseDrvName kodi.name).version}";
|
||||
let
|
||||
drvName = builtins.parseDrvName kodi.name;
|
||||
in buildEnv {
|
||||
name = "${drvName.name}-with-plugins-${drvName.version}";
|
||||
|
||||
paths = [ kodi ] ++ plugins;
|
||||
pathsToLink = [ "/share" ];
|
||||
|
23
pkgs/development/libraries/waylandpp/default.nix
Normal file
23
pkgs/development/libraries/waylandpp/default.nix
Normal file
@ -0,0 +1,23 @@
|
||||
{ stdenv, fetchFromGitHub, cmake, pkgconfig, pugixml, wayland, libGL }:
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "waylandpp";
|
||||
version = "0.2.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "NilsBrause";
|
||||
repo = pname;
|
||||
rev = version;
|
||||
sha256 = "16h57hzd688664qcyznzhjp3hxipdkzgv46x82yhkww24av8b55n";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake pkgconfig ];
|
||||
buildInputs = [ pugixml wayland libGL ];
|
||||
|
||||
meta = with stdenv.lib; {
|
||||
description = "Wayland C++ binding";
|
||||
homepage = https://github.com/NilsBrause/waylandpp/;
|
||||
license = with licenses; [ bsd2 hpnd ];
|
||||
maintainers = with maintainers; [ minijackson ];
|
||||
};
|
||||
}
|
@ -13264,6 +13264,8 @@ in
|
||||
|
||||
wayland-protocols = callPackage ../development/libraries/wayland/protocols.nix { };
|
||||
|
||||
waylandpp = callPackage ../development/libraries/waylandpp { };
|
||||
|
||||
wcslib = callPackage ../development/libraries/wcslib { };
|
||||
|
||||
webkitgtk = callPackage ../development/libraries/webkitgtk {
|
||||
@ -20524,12 +20526,18 @@ in
|
||||
|
||||
kodiPlain = callPackage ../applications/video/kodi { };
|
||||
|
||||
kodiPlainWayland = callPackage ../applications/video/kodi { useWayland = true; };
|
||||
|
||||
kodiPlugins = recurseIntoAttrs (callPackage ../applications/video/kodi/plugins.nix {});
|
||||
|
||||
kodi = wrapKodi {
|
||||
kodi = kodiPlain;
|
||||
};
|
||||
|
||||
kodi-wayland = wrapKodi {
|
||||
kodi = kodiPlainWayland;
|
||||
};
|
||||
|
||||
kodi-cli = callPackage ../tools/misc/kodi-cli { };
|
||||
|
||||
kodi-retroarch-advanced-launchers =
|
||||
|
Loading…
Reference in New Issue
Block a user