Files
agent-sandbox/devenv.nix
T
2026-10-12 16:14:34 -04:00

82 lines
1.3 KiB
Nix

{
pkgs,
config,
...
}:
let
win = pkgs.pkgsCross.mingwW64;
win32 = pkgs.pkgsCross.mingw32;
in
{
packages = with pkgs; [
win.stdenv.cc
win32.stdenv.cc
wineWow64Packages.full
gcc
clang
clang-tools
cmake
gdb
git
jq
ripgrep
curl
wget
coreutils
findutils
less
pkg-config
tree
unzip
lld
xxd
rtk
];
languages = {
rust.enable = true;
c.enable = true;
cplusplus.enable = true;
java.enable = true;
javascript = {
enable = true;
npm.enable = true;
};
python = {
enable = true;
venv.enable = true;
};
};
env = {
WINEPREFIX = "${config.env.DEVENV_ROOT}/wineprefix";
};
scripts = {
"clang-msvc".exec = ''
clang-cl -v -fuse-ld=lld -target x86_64-pc-windows-msvc \
-vctoolsdir $DEVENV_ROOT/xwin/crt -winsdkdir $DEVENV_ROOT/xwin/sdk \
"$@" \
/link /subsystem:console
'';
};
enterShell = ''
if [[ ! -e ${config.env.DEVENV_ROOT}/wineprefix ]]; then
wineboot
fi
if [[ ! -e ${config.env.DEVENV_ROOT}/workspaces ]]; then
mkdir ./workspaces
fi
if [[ ! -e ${config.env.DEVENV_ROOT}/xwin ]]; then
cargo install xwin
xwin --accept-license --arch x86,x86_64 splat --preserve-ms-arch-notation --output ./xwin
fi
'';
}