Yes, CMake doesn't know your compiler setup.
Sure it does. I told it at configuration time. It has plenty of options to detect compiler setups; detecting system options is half of its purpose.
Also it is not logical to put the compiler setup in the project,
because the purpose of the project (original one) is to be computer independent,
so you can move the project and it will work on your friends machine,
if he has the correct compiler and libraries.
cmakelists.txt etc. is portable, but CMake does not
generate projects that are portable from machine to machine, or even directory to directory. If you want to move stuff around, you have to generate everything all over again. This is standard and accepted practice in the CMake universe. So at generation time, there is no reason not to hardwire the compiler that is going to be used. In fact any other course of action from a CMake standpoint is pretty much insane. If you want a project for a different compiler, you generate a completely different project in a completely different directory, not touching the original source directory in any way.
CMake also remains as part of your generated build system, i.e. you must have CMake installed on your machine and it's called by the IDE when building. In contrast, Premake generates completely standalone project files that don't need Premake any more. So, what you say may be correct for a Premake build culture.
There is nothing we can do here.
I will hunt possible CMake bugs some other time. Sorta blew the time budget for fiddling with things for now. I do know that CMake did not configure the build for vc9. Code::Blocks did that. I think it's unreasonable for C::B to do that when I auto-detected a vc10 compiler. If C::B has to have "dumb" defaults for labor saving reasons, I think "no compiler" is a better default than a wrong compiler, and then force the user to configure a compiler. An error diagnostic that names the compiler being sought would help too. If I had seen "I cannot find Microsoft Visual C++ 2005 or 2008" rather than just "I can't find the compiler," I would have been tipped off a lot sooner.