{ description = "dependencies for parallel processing in c"; inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; }; outputs = { self, nixpkgs, ... }: let system = "x86_64-linux"; pkgs = import nixpkgs { inherit system; }; nvidiaPackage = pkgs.linuxPackages.nvidiaPackages.stable; in { devShells.${system}.default = pkgs.mkShell { buildInputs = with pkgs; [ gcc gnumake imagemagick_light typst typstyle zip unzip feh # exercise 1: 1D wave equation plotting utils gnuplot ffmpeg mpi python3 pandoc bc llvmPackages.openmp # cuda stuff ffmpeg fmt.dev cudaPackages.cuda_cudart cudatoolkit nvidiaPackage cudaPackages.cudnn libGLU libGL xorg.libXi xorg.libXmu freeglut xorg.libXext xorg.libX11 xorg.libXv xorg.libXrandr zlib ncurses stdenv.cc binutils uv ]; shellHook = '' echo welcome! echo "setting up cuda stuff" export LD_LIBRARY_PATH="${nvidiaPackage}/lib:$LD_LIBRARY_PATH" export CUDA_PATH=${pkgs.cudatoolkit} export EXTRA_LDFLAGS="-L/lib -L${nvidiaPackage}/lib" export EXTRA_CCFLAGS="-I/usr/include" export CMAKE_PREFIX_PATH="${pkgs.fmt.dev}:$CMAKE_PREFIX_PATH" export PKG_CONFIG_PATH="${pkgs.fmt.dev}/lib/pkgconfig:$PKG_CONFIG_PATH" ''; }; }; }