69 lines
1.7 KiB
Nix
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"
|
|
'';
|
|
};
|
|
};
|
|
}
|