61 lines
2 KiB
Nix
61 lines
2 KiB
Nix
{
|
|
inputs = {
|
|
nixpkgs.url = "github:NixOS/nixpkgs/nixos-25.05";
|
|
nixpkgs-unstable.url = "github:NixOS/nixpkgs/nixos-unstable";
|
|
flake-utils.url = "github:numtide/flake-utils";
|
|
nix-jetbrains-plugins.url = "github:theCapypara/nix-jetbrains-plugins";
|
|
};
|
|
|
|
outputs = { self, nixpkgs, nixpkgs-unstable, flake-utils, nix-jetbrains-plugins }:
|
|
flake-utils.lib.eachDefaultSystem (system: let
|
|
pkgs = import nixpkgs {
|
|
inherit system;
|
|
config.allowUnfree = true;
|
|
};
|
|
pkgs-unstable = import nixpkgs-unstable {
|
|
inherit system;
|
|
config.allowUnfree = true;
|
|
};
|
|
|
|
pluginList = [
|
|
"be.ugent.piedcler.dodona"
|
|
"com.github.copilot"
|
|
"com.google.tools.ij.aiplugin"
|
|
"IdeaVIM"
|
|
];
|
|
|
|
mkShell = pkgs.mkShell.override {
|
|
stdenv = pkgs.stdenvAdapters.useMoldLinker pkgs.stdenv;
|
|
};
|
|
in {
|
|
devShells.default = pkgs.mkShell {
|
|
packages = (with pkgs; [
|
|
python311Full
|
|
|
|
# CUDA
|
|
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
|
|
ncurses5 stdenv.cc binutils
|
|
]) ++ (with pkgs-unstable; [
|
|
uv
|
|
]) ++ (with nix-jetbrains-plugins.lib."${system}"; [
|
|
# Editor of your choice
|
|
(buildIdeWithPlugins pkgs-unstable.jetbrains "pycharm-professional" pluginList)
|
|
]);
|
|
|
|
# CUDA
|
|
CUDA_PATH = pkgs.cudatoolkit;
|
|
# ImportError: libstdc++.so.6: cannot open shared object file: No such file or directory
|
|
LD_LIBRARY_PATH = "${pkgs.linuxPackages.nvidia_x11}/lib:${pkgs.ncurses5}/lib:${pkgs.libGL}/lib/:${pkgs.stdenv.cc.cc.lib}/lib/:${pkgs.glibc}/lib";
|
|
EXTRA_LDFLAGS = "-L/lib -L${pkgs.linuxPackages.nvidia_x11}/lib";
|
|
EXTRA_CCFLAGS = "-I/usr/include";
|
|
|
|
# Stop uv from downloading Python binaries automatically if needed.
|
|
UV_PYTHON_DOWNLOADS = "never";
|
|
};
|
|
});
|
|
}
|