50 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
			
		
		
	
	
			50 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			Nix
		
	
	
	
	
	
| {
 | |
|   stdenv
 | |
| , lib
 | |
| , cudatoolkit
 | |
| , cudaPackages
 | |
| , autoAddDriverRunpath
 | |
| , strace
 | |
| }:
 | |
| 
 | |
| stdenv.mkDerivation (finalAttrs: {
 | |
|   name = "cudainfo";
 | |
|   src = ./.;
 | |
|   buildInputs = [
 | |
|     cudatoolkit # Required for nvcc
 | |
|     cudaPackages.cuda_cudart.static # Required for -lcudart_static
 | |
|     autoAddDriverRunpath
 | |
|   ];
 | |
|   installPhase = ''
 | |
|     mkdir -p $out/bin
 | |
|     cp -a cudainfo $out/bin
 | |
|   '';
 | |
|   passthru.gpuCheck = stdenv.mkDerivation {
 | |
|     name = "cudainfo-test";
 | |
|     requiredSystemFeatures = [ "cuda" ];
 | |
|     dontBuild = true;
 | |
|     nativeCheckInputs = [
 | |
|       finalAttrs.finalPackage # The cudainfo package from above
 | |
|       strace # When it fails, it will show the trace
 | |
|     ];
 | |
|     dontUnpack = true;
 | |
|     doCheck = true;
 | |
|     checkPhase = ''
 | |
|       if ! cudainfo; then
 | |
|         set -x
 | |
|         cudainfo=$(command -v cudainfo)
 | |
|         ldd $cudainfo
 | |
|         readelf -d $cudainfo
 | |
|         strace -f $cudainfo
 | |
|         set +x
 | |
|       fi
 | |
|     '';
 | |
|     installPhase = "touch $out";
 | |
|   };
 | |
| 
 | |
|   meta = {
 | |
|     platforms = [ "x86_64-linux" ];
 | |
|     maintainers = with lib.maintainers.bsc; [ rarias ];
 | |
|   };
 | |
| })
 |