你对cmake的理解有误。cmake不是让你生成一个工程文件以后,就用check in工程文件,不管cmake了。而是在使用的时候用cmake建立工程文件。所以,你并不需要生成多个版本的工程文件,而是具体在需要编译的机器上(这显然是已经装好了某个版本的vs),才用cmake -G建立工程。不同的人可以建立不同版本的工程。
我的习惯是,在目录树中有个build目录,和源代码平级。cmake放在build/cmake里,在用个脚本根据系要建立具体的工程,比如build/vc140_win_x64、build/vc120_win_x86、build/gcc48_android_arm,等。CMakeLists.txt那些会check in,生成的vcxproj, makefile等,只在本地。