flakes/c/flake.nix
2025-09-22 09:54:38 +02:00

67 lines
1.7 KiB
Nix

{
description = "C Flake";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
flake-utils.url = "github:numtide/flake-utils";
};
outputs = { self, flake-utils, nixpkgs }:
flake-utils.lib.eachDefaultSystem (system:
let
pkgs = import nixpkgs {
inherit system;
config.allowUnfree = true;
};
in {
devShells.default = pkgs.mkShell {
packages = with pkgs; [
#cmake
gcc
#gccStdenv
gnumake
# valgrind
#astyle
# CUDA https://nixos.wiki/wiki/CUDA#cudatoolkit.2C_cudnn.2C_and_related_packages
# git gitRepo gnupg autoconf curl
# procps gnumake util-linux m4 gperf unzip
# cudatoolkit linuxPackages.nvidia_x11
# libGLU libGL
# xorg.libXi xorg.libXmu freeglut
# xorg.libXext xorg.libX11 xorg.libXv xorg.libXrandr zlib
# xorg.libXinerama
# ncurses5 stdenv.cc binutils
#
# glib
# glibc
#
# intel-ocl
# intel-compute-runtime
# opencl-clhpp
# opencl-clang
# opencl-headers
# ocl-icd
#
# pkgconf
# waylandpp
# xorg.libXcursor
# You might want to use your own IDE.
#(jetbrains.plugins.addPlugins jetbrains.clion [ "github-copilot" ])
#vscodium
];
shellHook = ''
export CUDA_PATH=${pkgs.cudatoolkit}
# export LD_LIBRARY_PATH=${pkgs.linuxPackages.nvidia_x11}/lib:${pkgs.ncurses5}/lib
# export LD_LIBRARY_PATH="${pkgs.stdenv.cc.cc.lib}/lib"
export LD_LIBRARY_PATH="${pkgs.libGL}/lib/:${pkgs.stdenv.cc.cc.lib}/lib/:${pkgs.glibc}/lib"
export EXTRA_LDFLAGS="-L/lib -L${pkgs.linuxPackages.nvidia_x11}/lib"
export EXTRA_CCFLAGS="-I/usr/include"
'';
};
});
}