This is based on the discussion here: microsoft/vscode-cmake-tools#1875
Ultimately, Unification may require that we modify how custom configuration providers work, so all configurations are provided up front. Configurations for all files are needed by EdgeSystem to build the include graph (amoung other reasons). Regarding microsoft/vscode-cmake-tools#1875 , included in those configurations could be an indication of which project (build target) is currently active. Source selection for header files could use that information to prefer sources from the current active configuration.