{ lib
, mkDerivation
, fetchFromGitLab

, cmake
, extra-cmake-modules

, kconfig
, kcoreaddons
, kcontacts
, knotifications
, prison
, kpurpose
, kservice
, kio
, ki18n
, kirigami-addons
, kirigami2
, networkmanager-qt
, qtquickcontrols2
, qtmultimedia
, syndication
, gst_all_1
}:

let
  pluginPath = lib.makeSearchPathOutput "lib" "lib/gstreamer-1.0" (with gst_all_1; [ gstreamer gst-plugins-base gst-plugins-good gst-plugins-bad ]);
in
mkDerivation rec {
  pname = "qrca";
  version = "unstable-2023-01-01";

  src = fetchFromGitLab {
    owner = "utilities";
    repo = "qrca";
    rev = "8e01967f273b1d5b68105b22de5086e15e1afe90";
    domain = "invent.kde.org";
    sha256 = "0bz07ij80khf5qqm3aja0kz7yjlnzf0887glhsiyz9yz8iw3ak2d";
  };

  nativeBuildInputs = [
    cmake
    extra-cmake-modules
  ];

  buildInputs = [
    kcontacts
    ki18n
    kirigami-addons
    kirigami2
    knotifications
    kpurpose
    kservice
    kio
    networkmanager-qt
    prison
    qtmultimedia
    qtquickcontrols2
  ];

  qtWrapperArgs = [ "--prefix GST_PLUGIN_SYSTEM_PATH_1_0 : ${pluginPath}" ];
}