nixpkgs/pkgs/applications/graphics/drawpile/default.nix

97 lines
2.0 KiB
Nix

{ lib
, mkDerivation
, fetchurl
, cmake
, 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
}:
with 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 mkDerivation rec {
pname = "drawpile";
version = "2.1.16";
src = fetchurl {
url = "https://drawpile.net/files/src/drawpile-${version}.tar.gz";
sha256 = "1mz64c1a5x906j2jqq7i16l1q1d97wgm2y0ybmmcyqzg09x9wyaw";
};
nativeBuildInputs = [
cmake
extra-cmake-modules
];
buildInputs =
commonDeps ++
optionals buildClient clientDeps ++
optionals buildServer serverDeps ++
optionals enableKisTablet kisDeps ;
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/;
license = licenses.gpl3;
maintainers = with maintainers; [ fgaz ];
platforms = platforms.unix;
};
}