This commit is contained in:
Andreas Schaafsma 2025-07-15 03:19:01 +02:00
parent 499260d83f
commit 3a59ef19f6

View File

@ -1,7 +1,7 @@
{ lib, pkgs, inputs ? null, ... }:
pkgs.stdenv.mkDerivation rec {
pname = "wallpaper-engine-kde-plugin";
pkgs.kdePackages.mkKdeDerivation rec {
pname = "wallpaper-engine-plugin";
version = "unstable-2023-07-01";
src = if inputs != null && inputs ? wallpaper-engine-plugin-src
@ -11,56 +11,65 @@ pkgs.stdenv.mkDerivation rec {
repo = "wallpaper-engine-kde-plugin";
rev = "9e60b364e268814a1a778549c579ad45a9b9c7bb";
sha256 = "sha256-tKeYJvVa8jzbyZ7MQaOuCUJa+UqABolTNe3e5XNw998=";
fetchSubmodules = true;
};
nativeBuildInputs = with pkgs; [
cmake
extra-cmake-modules
pkg-config
libsForQt5.kpackage
libsForQt5.plasma-framework
libsForQt5.kdeclarative
wrapQtAppsHook
extraNativeBuildInputs = [
pkgs.kdePackages.kpackage
pkgs.pkg-config
(pkgs.python3.withPackages (ps: with ps; [ websockets ]))
];
buildInputs = with pkgs; [
mpv lz4 vulkan-headers vulkan-loader
wayland wayland-protocols
libass
spirv-tools
xorg.libXext
xorg.libX11
] ++ (with pkgs.libsForQt5; [
plasma-framework
qtwebsockets
qtwebchannel
qtx11extras
qtdeclarative
qtbase
qtmultimedia
dbus
]);
extraBuildInputs = [
pkgs.kdePackages.extra-cmake-modules
pkgs.kdePackages.libplasma
pkgs.lz4
pkgs.mpv
pkgs.libass
pkgs.libsysprof-capture
pkgs.fribidi
pkgs.ffmpeg
pkgs.libplacebo
pkgs.libunwind
pkgs.shaderc
pkgs.lcms2
pkgs.libdovi
pkgs.libdvdnav
pkgs.libdvdread
pkgs.vulkan-headers
pkgs.vulkan-loader
pkgs.spirv-tools
pkgs.gst_all_1.gstreamer
pkgs.gst_all_1.gst-plugins-base
pkgs.gst_all_1.gst-plugins-good
pkgs.gst_all_1.gst-plugins-bad
pkgs.gst_all_1.gst-plugins-ugly
pkgs.gst_all_1.gst-libav
pkgs.mujs
];
# Disable the scene backend since it's missing CMakeLists.txt
postPatch = ''
sed -i 's|add_subdirectory(backend_scene)|# add_subdirectory(backend_scene)|' src/CMakeLists.txt
'';
cmakeFlags = [
"-DUSE_PLASMAPKG=ON"
"-DQT_MAJOR_VERSION=5"
"-DCMAKE_INSTALL_PREFIX=${placeholder "out"}"
"-DCMAKE_INSTALL_LIBDIR=lib"
"-DKDE_INSTALL_PLUGINDIR=${placeholder "out"}/lib/qt5/plugins"
"-DKDE_INSTALL_QMLDIR=${placeholder "out"}/lib/qt5/qml"
"-DPLASMA_INSTALL_WALLPAPERDIR=${placeholder "out"}/share/plasma/wallpapers"
"-DQt6_DIR=${pkgs.kdePackages.qtbase}/lib/cmake/Qt6"
"-DUSE_PLASMAPKG=OFF"
"-DQT_MAJOR_VERSION=6"
"-DBUILD_QML=ON"
"-DBUILD_SCENE=OFF"
];
dontWrapQtApps = true;
postInstall = ''
dest="$out/share/plasma/wallpapers/com.github.catsout.wallpaperEngineKde"
mkdir -p "$dest/contents"
cp -r ${src}/plugin/contents/* "$dest/contents/"
cp ${src}/plugin/metadata.desktop "$dest/"
mkdir -p "$dest/contents/code"
ln -sf $out/lib/qt5/qml/com/github/catsout/wallpaperEngineKde/libWallpaperEngineKde.so \
"$dest/contents/code/libWallpaperEngineKde.so"
cd $out/share/plasma/wallpapers/com.github.catsout.wallpaperEngineKde
chmod +x ./contents/pyext.py
patchShebangs --build ./contents/pyext.py
substituteInPlace ./contents/ui/Pyext.qml \
--replace-fail NIX_STORE_PACKAGE_PATH ${placeholder "out"}
cd -
'';
meta = with lib; {