summary refs log tree commit diff
path: root/pkgs/os-specific/linux/nvidia-x11/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/os-specific/linux/nvidia-x11/default.nix')
-rw-r--r--pkgs/os-specific/linux/nvidia-x11/default.nix25
1 files changed, 14 insertions, 11 deletions
diff --git a/pkgs/os-specific/linux/nvidia-x11/default.nix b/pkgs/os-specific/linux/nvidia-x11/default.nix
index 68263c128af..bc88775b02f 100644
--- a/pkgs/os-specific/linux/nvidia-x11/default.nix
+++ b/pkgs/os-specific/linux/nvidia-x11/default.nix
@@ -1,13 +1,16 @@
-{stdenv, fetchurl, kernel, xlibs, gtkLibs, zlib, perl}:
+{ stdenv, fetchurl, kernel ? null, xlibs, gtkLibs, zlib, perl
+, # Whether to build the libraries only (i.e. not the kernel module or
+  # nvidia-settings).  Used to support 32-bit binaries on 64-bit
+  # Linux.
+  libsOnly ? false
+}:
 
-let 
+with stdenv.lib;
 
-  versionNumber = "195.36.24";
-
-in
+let versionNumber = "195.36.24"; in
 
 stdenv.mkDerivation {
-  name = "nvidia-x11-${versionNumber}-${kernel.version}";
+  name = "nvidia-x11-${versionNumber}${optionalString (!libsOnly) "-${kernel.version}"}";
   
   builder = ./builder.sh;
   
@@ -24,7 +27,9 @@ stdenv.mkDerivation {
       }
     else throw "nvidia-x11 does not support platform ${stdenv.system}";
 
-  inherit versionNumber kernel;
+  inherit versionNumber libsOnly;
+
+  kernel = if libsOnly then null else kernel;
 
   dontStrip = true;
 
@@ -32,10 +37,8 @@ stdenv.mkDerivation {
 
   cudaPath = stdenv.lib.makeLibraryPath [zlib stdenv.gcc.gcc];
 
-  programPath = stdenv.lib.makeLibraryPath [
-    gtkLibs.gtk gtkLibs.atk gtkLibs.pango gtkLibs.glib
-    xlibs.libXv
-  ];
+  programPath = optionalString (!libsOnly) (stdenv.lib.makeLibraryPath
+    [ gtkLibs.gtk gtkLibs.atk gtkLibs.pango gtkLibs.glib xlibs.libXv ] );
 
   buildInputs = [ perl ];