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