summary refs log tree commit diff
path: root/pkgs/os-specific/linux/nvidia-x11/settings.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/os-specific/linux/nvidia-x11/settings.nix')
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/settings.nix41
1 files changed, 35 insertions, 6 deletions
diff --git a/pkgs/os-specific/linux/nvidia-x11/settings.nix b/pkgs/os-specific/linux/nvidia-x11/settings.nix
index 9c8f3f9cd74a..ddc190a08e66 100644
--- a/pkgs/os-specific/linux/nvidia-x11/settings.nix
+++ b/pkgs/os-specific/linux/nvidia-x11/settings.nix
@@ -1,19 +1,44 @@
 nvidia_x11: sha256:
 
-{ stdenv, lib, fetchurl, pkgconfig, m4, jansson, gtk2, dbus, gtk3, libXv, libXrandr, libvdpau
+{ stdenv, lib, fetchurl, pkgconfig, m4, jansson, gtk2, dbus, gtk3, libXv, libXrandr, libvdpau, libXext
 , librsvg, wrapGAppsHook
 , withGtk2 ? false, withGtk3 ? true
 }:
 
-stdenv.mkDerivation rec {
-  name = "nvidia-settings-${nvidia_x11.version}";
-  inherit (nvidia_x11) version;
-
+let
   src = fetchurl {
-    url = "https://download.nvidia.com/XFree86/nvidia-settings/${name}.tar.bz2";
+    url = "https://download.nvidia.com/XFree86/nvidia-settings/nvidia-settings-${nvidia_x11.version}.tar.bz2";
     inherit sha256;
   };
 
+  libXNVCtrl = stdenv.mkDerivation {
+    name = "libXNVCtrl-${nvidia_x11.version}";
+    inherit (nvidia_x11) version;
+    inherit src;
+
+    buildInputs = [ libXrandr libXext ];
+
+    preBuild = ''
+      cd src/libXNVCtrl
+    '';
+
+    installPhase = ''
+      mkdir -p $out/lib
+      mkdir -p $out/include/NVCtrl
+
+      cp libXNVCtrl.a $out/lib
+      cp NVCtrl.h     $out/include/NVCtrl
+      cp NVCtrlLib.h  $out/include/NVCtrl
+    '';
+  };
+
+in
+
+stdenv.mkDerivation rec {
+  name = "nvidia-settings-${nvidia_x11.version}";
+  inherit (nvidia_x11) version;
+  inherit src;
+
   nativeBuildInputs = [ pkgconfig m4 ];
 
   buildInputs = [ jansson libXv libXrandr libvdpau nvidia_x11 gtk2 dbus ]
@@ -52,6 +77,10 @@ stdenv.mkDerivation rec {
       $out/bin/$binaryName
   '';
 
+  passthru = {
+    inherit libXNVCtrl;
+  };
+
   meta = with stdenv.lib; {
     homepage = "http://www.nvidia.com/object/unix.html";
     description = "Settings application for NVIDIA graphics cards";