python313Packages.kasa-crypt: 0.4.4 -> 0.5.0 (#375396)
[NixPkgs.git] / pkgs / development / libraries / libuiohook / default.nix
blobe39c2addfac43d74be43ba5677a44b713e73fb8f
2   lib,
3   stdenv,
4   fetchFromGitHub,
5   nixosTests,
6   cmake,
7   pkg-config,
8   AppKit,
9   ApplicationServices,
10   Carbon,
11   libX11,
12   libxkbcommon,
13   xinput,
14   xorg,
17 stdenv.mkDerivation rec {
18   pname = "libuiohook";
19   version = "1.2.2";
21   src = fetchFromGitHub {
22     owner = "kwhat";
23     repo = pname;
24     rev = version;
25     sha256 = "1qlz55fp4i9dd8sdwmy1m8i4i1jy1s09cpmlxzrgf7v34w72ncm7";
26   };
28   nativeBuildInputs = [
29     cmake
30     pkg-config
31   ];
33   buildInputs =
34     if stdenv.hostPlatform.isDarwin then
35       [
36         AppKit
37         ApplicationServices
38         Carbon
39       ]
40     else
41       [
42         libX11
43         libxkbcommon
44         xinput
45       ]
46       ++ (with xorg; [
47         libXau
48         libXdmcp
49         libXi
50         libXinerama
51         libXt
52         libXtst
53         libXext
54         libxkbfile
55       ]);
57   outputs = [
58     "out"
59     "test"
60   ];
62   # We build the tests, but they're only installed when using the "test" output.
63   # This will produce a "uiohook_tests" binary which can be run to test the
64   # functionality of the library on the current system.
65   # Running the test binary requires a running X11 session.
66   cmakeFlags = [
67     "-DENABLE_TEST:BOOL=ON"
68   ];
70   postInstall = ''
71     mkdir -p $test/share
72     cp ./uiohook_tests $test/share
73   '';
75   meta = with lib; {
76     description = "C library to provide global keyboard and mouse hooks from userland";
77     homepage = "https://github.com/kwhat/libuiohook";
78     license = licenses.gpl3Only;
79     platforms = platforms.all;
80     maintainers = with maintainers; [ anoa ];
81   };
83   passthru.tests.libuiohook = nixosTests.libuiohook;