81 lines
1.3 KiB
Nix
81 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
|
|
];
|
|
|
|
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
|
|
'';
|
|
}
|