Thanks for the report, please see below:
Quote:Where is the correct place in Visual Micro to pass Arduino build.flags / compiler.cpp.extra_flags for ESP32?
Generally these are best placed in the vMicro > Project Properties > Configuration Extra Flags (broken down by all recipes, core, library or project) as your message mentions.
Quote:Is there a platform.local.txt / boards.local.txt workflow that Visual Micro respects when building from VS?
Yes a local board.txt file can be added to the project (vMicro > Add Code > Add Local Board.txt), which can be used to override any platform or board properties for the project you are working in. We also support the standard Arduino platform.local.txt and boards.local.txt if they need to be overridden at the board package level, however these are lost each time the project is upgraded and affect all projects consuming that board package. The project specific board.txt file is often the simplest and avoids the cross project issues and board package update issues.
Quote:Can per-source-file compiler options be defined in the .vcxproj or a Visual Micro project file without being overwritten?
As above - the local board.txt can be used, or the Project Properties, both remain within the project.
Quote:Is limiting parallel compile jobs the only supported mitigation for GCC ICEs in large ESP32 projects?
Currently I believe this to be the case, and the standard MSVC compiler options are not consumed in Visual Micro as you have found with your investigation.
Local Board.txt Documentation: https://www.visualmicro.com/page/Local-Project-Boardtxt-Examples.aspx Project Properties Documentation: https://www.visualmicro.com/page/User-Guide.aspx?doc=Project-Properties-Referenc... Let me know if I have missed anything, or if you have a further issue with these settings.