nixpkgs/pkgs/applications/graphics/drawpile/default.nix
2020-04-10 17:54:53 +01:00

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.17";
src = fetchurl {
url = "https://drawpile.net/files/src/drawpile-${version}.tar.gz";
sha256 = "11lhn1mymhqk9g5sh384xhj3qw8h9lv88pr768y9q6kg3sl7nzzf";
};
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;
};
}