It took a bit of work, but I got the ESP32 build working on Windows 10 in both a vagrant virtualbox and the Windows 10 Linux subsystem.
1 issue that is cross platform is with the instructions for esp-idf download. The git checkout <desired hash> command needs to be run from the esp-idf directory. Not a big deal but the instructions could state that.
The next issue is with symlinks, which do not work in Windows. Not only do the symlinks in the modules directory cause an issue, but there are also some in "lib/berkeley-db-1.xx/PORT/include".
For the modules issues I either just delete the file as I don't need it or copy the original over the symlink.
However, for the berkeley-db include issues I found it easiest to just wrap the line in the symlink file in #include <???>.
The Windows 10 Linux subsystem does not have access to the USB port so deployment must be handled separately in Windows. However Vagrant does allow for USB pass-through if set up correctly.
Compiling on Windows 10 with Ubuntu subsystem or Vagrant.
Compiling on Windows 10 with Ubuntu subsystem or Vagrant.
End of line...