allow mixing different toolset
Currently I'm trying to migrate a big project (300+ library) from msvc solution to cmake, (use ninja generator to build, msvc ide generator for development) some of them built by intel compiler. for the msvc ide generator, I've found CMAKE_GENERATOR_TOOLSET apply to whole solution, so I have to use external project for different compiler projects, but when these projects have complex dependencies on each other, it gets hard to maintenance. I wonder if CMAKE_GENERATOR_TOOLSET can be used as scoped variable, for example when I set this variable in a folder, all sub-folder use it as default. so we can generate one IDE solution contains all projects, just with different PlatformToolset property. and I also wonder if CMAKE_C/CXX_COMPILER(and linker ) can be used in such way, so we can easily generate all projects in one ninja build. another usage of this is to build parts of whole projects with clang-cl, clang-cl have address sanitizer function ,but can not perfectly build every cpp which written for msvc, allow mixing compiler can greatly increasing cmake's flexibility in such scenario