{ stdenv , lib , fetchFromGitHub , cmake , pkg-config , wrapQtAppsNoGuiHook , qtbase , qca , withGstreamer ? true , gst_all_1 , withOmemo ? true , libomemo-c }: stdenv.mkDerivation rec { pname = "qxmpp"; version = "1.10.1"; src = fetchFromGitHub { owner = "qxmpp-project"; repo = pname; rev = "v${version}"; hash = "sha256-mb8JMBV5M+0hFJLTxwYE47jB/FJKi/MPUwd3Nhan+QQ="; }; nativeBuildInputs = [ cmake wrapQtAppsNoGuiHook ] ++ lib.optionals (withGstreamer || withOmemo) [ pkg-config ]; buildInputs = lib.optionals withGstreamer (with gst_all_1; [ gstreamer gst-plugins-bad gst-plugins-base gst-plugins-good ]) ++ lib.optionals withOmemo [ qtbase qca libomemo-c ]; cmakeFlags = [ "-DBUILD_EXAMPLES=false" "-DBUILD_TESTS=false" ] ++ lib.optionals withGstreamer [ "-DWITH_GSTREAMER=ON" ] ++ lib.optionals withOmemo [ "-DBUILD_OMEMO=ON" ]; meta = with lib; { description = "Cross-platform C++ XMPP client and server library"; homepage = "https://github.com/qxmpp-project/qxmpp"; license = licenses.lgpl21Plus; maintainers = with maintainers; [ astro ]; platforms = with platforms; linux; }; }