From c4a4920b2d3a41baef2f08531ff05bacd1b57a74 Mon Sep 17 00:00:00 2001 From: Viacheslav Lotsmanov Date: Thu, 15 Jul 2021 19:25:38 +0300 Subject: [PATCH] psi-plus: add more build options (#129710) Co-authored-by: Sandro (cherry picked from commit 53ca0b16646ae358e37c396f6c5f8955977002c1) --- .../instant-messengers/psi-plus/default.nix | 72 ++++++++++++++++--- 1 file changed, 62 insertions(+), 10 deletions(-) diff --git a/pkgs/applications/networking/instant-messengers/psi-plus/default.nix b/pkgs/applications/networking/instant-messengers/psi-plus/default.nix index c180cdb4e01..60556bbc7a4 100644 --- a/pkgs/applications/networking/instant-messengers/psi-plus/default.nix +++ b/pkgs/applications/networking/instant-messengers/psi-plus/default.nix @@ -1,14 +1,45 @@ -{ lib, mkDerivation, fetchFromGitHub, cmake -, qtbase, qtmultimedia, qtx11extras, qttools, qtwebengine -, libidn, qca-qt5, libXScrnSaver, hunspell -, libsecret, libgcrypt, libotr, html-tidy, libgpgerror, libsignal-protocol-c +{ lib +, mkDerivation +, fetchFromGitHub +, cmake +, qtbase +, qtmultimedia +, qtx11extras +, qttools +, libidn +, qca-qt5 +, libXScrnSaver +, hunspell +, libsecret +, libgcrypt +, libotr +, html-tidy +, libgpgerror +, libsignal-protocol-c , usrsctp -# Voice messages +, chatType ? "basic" # See the assertion below for available options +, qtwebkit +, qtwebengine + +, enablePlugins ? true + + # Voice messages , voiceMessagesSupport ? true , gst_all_1 + +, enablePsiMedia ? false +, pkg-config }: +assert builtins.elem (lib.toLower chatType) [ + "basic" # Basic implementation, no web stuff involved + "webkit" # Legacy one, based on WebKit (see https://wiki.qt.io/Qt_WebKit) + "webengine" # QtWebEngine (see https://wiki.qt.io/QtWebEngine) +]; + +assert enablePsiMedia -> enablePlugins; + mkDerivation rec { pname = "psi-plus"; version = "1.5.1520"; @@ -21,19 +52,40 @@ mkDerivation rec { }; cmakeFlags = [ - "-DENABLE_PLUGINS=ON" + "-DCHAT_TYPE=${chatType}" + "-DENABLE_PLUGINS=${if enablePlugins then "ON" else "OFF"}" + "-DBUILD_PSIMEDIA=${if enablePsiMedia then "ON" else "OFF"}" ]; - nativeBuildInputs = [ cmake qttools ]; + nativeBuildInputs = [ + cmake + qttools + ] ++ lib.optionals enablePsiMedia [ + pkg-config + ]; buildInputs = [ - qtbase qtmultimedia qtx11extras qtwebengine - libidn qca-qt5 libXScrnSaver hunspell - libsecret libgcrypt libotr html-tidy libgpgerror libsignal-protocol-c + qtbase + qtmultimedia + qtx11extras + libidn + qca-qt5 + libXScrnSaver + hunspell + libsecret + libgcrypt + libotr + html-tidy + libgpgerror + libsignal-protocol-c usrsctp ] ++ lib.optionals voiceMessagesSupport [ gst_all_1.gst-plugins-base gst_all_1.gst-plugins-good + ] ++ lib.optionals (chatType == "webkit") [ + qtwebkit + ] ++ lib.optionals (chatType == "webengine") [ + qtwebengine ]; preFixup = lib.optionalString voiceMessagesSupport ''