{ 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 ''; }