drawpile: add build options (#57573)

Also add server-headless variant
This commit is contained in:
Francesco Gazzetta 2019-04-15 22:20:13 +00:00 committed by Dmitry Kalinkin
parent 71727f32a9
commit 7ba046d906
2 changed files with 73 additions and 28 deletions

View file

@ -1,48 +1,89 @@
{ stdenv
, fetchurl
, cmake
, qtbase
, qtsvg
, qtmultimedia
, qttools
, kdnssd
, karchive
, libsodium
, libmicrohttpd
, giflib
, miniupnpc
, extra-cmake-modules
# common deps
, karchive
# client deps
, qtbase
, qtmultimedia
, qtsvg
, qttools
# optional client deps
, giflib
, kdnssd
, libvpx
, miniupnpc
, qtx11extras # kis
# optional server deps
, libmicrohttpd
, libsodium
# options
, buildClient ? true
, buildServer ? true
, buildServerGui ? true # if false builds a headless server
, buildExtraTools ? false
, enableKisTablet ? false # enable improved graphics tablet support
}:
stdenv.mkDerivation rec {
with stdenv.lib;
let
commonDeps = [
karchive
];
clientDeps = [
qtbase
qtmultimedia
qtsvg
qttools
# optional:
giflib # gif animation export support
kdnssd # local server discovery with Zeroconf
libvpx # WebM video export
miniupnpc # automatic port forwarding
];
serverDeps = [
# optional:
libmicrohttpd # HTTP admin api
libsodium # ext-auth support
];
kisDeps = [
qtx11extras
];
in stdenv.mkDerivation rec {
name = "drawpile-${version}";
version = "2.1.6";
src = fetchurl {
url = "https://drawpile.net/files/src/drawpile-${version}.tar.gz";
sha256 = "0vwsdvphigrq1daiazi411qflahlvgx8x8ssp581bng2lbq1vrbd";
};
nativeBuildInputs = [
cmake
extra-cmake-modules
];
buildInputs = [
# common deps:
cmake
qtbase qtsvg qtmultimedia qttools
karchive
# optional deps:
# server-specific:
libsodium # ext-auth support
libmicrohttpd # HTTP admin api
# client-specific:
giflib # gif animation export support
miniupnpc # automatic port forwarding
kdnssd # local server discovery with Zeroconf
libvpx # WebM video export
];
configurePhase = "cmake -DCMAKE_INSTALL_PREFIX=$out .";
buildInputs =
commonDeps ++
optionals buildClient clientDeps ++
optionals buildServer serverDeps ++
optionals enableKisTablet kisDeps ;
meta = with stdenv.lib; {
cmakeFlags =
optional (!buildClient ) "-DCLIENT=off" ++
optional (!buildServer ) "-DSERVER=off" ++
optional (!buildServerGui ) "-DSERVERGUI=off" ++
optional ( buildExtraTools) "-DTOOLS=on" ++
optional ( enableKisTablet) "-DKIS_TABLET=on";
meta = {
description = "A collaborative drawing program that allows multiple users to sketch on the same canvas simultaneously";
homepage = https://drawpile.net/;
downloadPage = https://drawpile.net/download/;

View file

@ -16990,6 +16990,10 @@ in
dragonfly-reverb = callPackage ../applications/audio/dragonfly-reverb { };
drawpile = libsForQt5.callPackage ../applications/graphics/drawpile { };
drawpile-server-headless = libsForQt5.callPackage ../applications/graphics/drawpile {
buildClient = false;
buildServerGui = false;
};
droopy = callPackage ../applications/networking/droopy {
inherit (python3Packages) wrapPython;