Files
TDT4200/flake.nix
2025-10-25 15:36:24 +02:00

69 lines
1.7 KiB
Nix

{
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"
'';
};
};
}