diff options
Diffstat (limited to 'pkgs/development/libraries/libuiohook/default.nix')
-rw-r--r-- | pkgs/development/libraries/libuiohook/default.nix | 71 |
1 files changed, 71 insertions, 0 deletions
diff --git a/pkgs/development/libraries/libuiohook/default.nix b/pkgs/development/libraries/libuiohook/default.nix new file mode 100644 index 00000000000..3f1f48317fd --- /dev/null +++ b/pkgs/development/libraries/libuiohook/default.nix @@ -0,0 +1,71 @@ +{ lib +, stdenv +, fetchFromGitHub +, nixosTests +, cmake +, pkg-config +, AppKit +, ApplicationServices +, Carbon +, libX11 +, libxkbcommon +, xinput +, xorg +}: + +stdenv.mkDerivation rec { + pname = "libuiohook"; + version = "1.2.2"; + + src = fetchFromGitHub { + owner = "kwhat"; + repo = pname; + rev = version; + sha256 = "1qlz55fp4i9dd8sdwmy1m8i4i1jy1s09cpmlxzrgf7v34w72ncm7"; + }; + + nativeBuildInputs = [ cmake pkg-config ]; + + buildInputs = + if stdenv.isDarwin then [ AppKit ApplicationServices Carbon ] + else [ + libX11 + libxkbcommon + xinput + ] ++ + (with xorg; [ + libXau + libXdmcp + libXi + libXinerama + libXt + libXtst + libXext + libxkbfile + ]); + + outputs = [ "out" "test" ]; + + # We build the tests, but they're only installed when using the "test" output. + # This will produce a "uiohook_tests" binary which can be run to test the + # functionality of the library on the current system. + # Running the test binary requires a running X11 session. + cmakeFlags = [ + "-DENABLE_TEST:BOOL=ON" + ]; + + postInstall = '' + mkdir -p $test/share + cp ./uiohook_tests $test/share + ''; + + meta = with lib; { + description = "A C library to provide global keyboard and mouse hooks from userland"; + homepage = "https://github.com/kwhat/libuiohook"; + license = licenses.gpl3Only; + platforms = platforms.all; + maintainers = with maintainers; [ anoa ]; + }; + + passthru.tests.libuiohook = nixosTests.libuiohook; +} |