1{ stdenv, fetchurl, pkgconfig
2, libevdev, mtdev, udev
3, documentationSupport ? false, doxygen ? null, graphviz ? null # Documentation
4, eventGUISupport ? false, cairo ? null, glib ? null, gtk3 ? null # GUI event viewer support
5, testsSupport ? false, check ? null, valgrind ? null
6}:
7
8assert documentationSupport -> doxygen != null && graphviz != null;
9assert eventGUISupport -> cairo != null && glib != null && gtk3 != null;
10assert testsSupport -> check != null && valgrind != null;
11
12let
13 mkFlag = optSet: flag: if optSet then "--enable-${flag}" else "--disable-${flag}";
14in
15
16with stdenv.lib;
17stdenv.mkDerivation rec {
18 name = "libinput-1.0.1";
19
20 src = fetchurl {
21 url = "http://www.freedesktop.org/software/libinput/${name}.tar.xz";
22 sha256 = "17prgxxq95i2l8a00clwwmvvskbb9xza9fmym1jvlmxl358v6bs8";
23 };
24
25 configureFlags = [
26 (mkFlag documentationSupport "documentation")
27 (mkFlag eventGUISupport "event-gui")
28 (mkFlag testsSupport "tests")
29 ];
30
31 nativeBuildInputs = [ pkgconfig ];
32
33 buildInputs = [ libevdev mtdev udev ]
34 ++ optionals eventGUISupport [ cairo glib gtk3 ]
35 ++ optionals documentationSupport [ doxygen graphviz ]
36 ++ optionals testsSupport [ check valgrind ];
37
38 meta = {
39 description = "Handles input devices in Wayland compositors and provides a generic X.Org input driver";
40 homepage = http://www.freedesktop.org/wiki/Software/libinput;
41 license = licenses.mit;
42 platforms = platforms.unix;
43 maintainers = with maintainers; [ codyopel wkennington ];
44 };
45}