如何通过CMake为多目标生成Visual Studio解决方案?

时间:2013-11-18 08:15:12

标签: c++ visual-studio cmake native

Visual Studio,从VS2010开始,支持multi-targetting的概念,其中可以为编译器,库和前面的Visual Studio版本包含一个解决方案,并为其构建。例如,2010 IDE可用于使用v90(2008)工具集进行构建;在2012年,IDE可用于使用v90,v100,v110和v110_xp工具链进行构建,等等。

问题是这个;如何配置一个CMake构建系统,已经设置为Visual Studio N生成解决方案,用Visual Studio N的编译器等构建,以允许在IDE中使用Visual Studio N-M进行构建。

虽然工具集选择应仅仅通过-T工具集工作,但问题是这反过来又引发了cmake-2.8 / Modules / CMakeTestCXXCompiler.cmake的失败,声称cl.exe无法编译一个简单的程序。但是,在Visual Studio版本中选择工具集时,情况并非如此。 Visual Studio 2012中的v110_xp。与Visual Studio版本中的工具集相比,Visual Studio版本中的工具集似乎有些复杂。

是否有人在此用例中具有CMake的具体经验,为以前版本的工具集生成解决方案,以便在当前版本的Visual Studio的IDE中使用?

1 个答案:

答案 0 :(得分:1)

CMake的命令行选项-T(工具集选择)涵盖了这一点,自CMake 2.8.11起可用。语法很简单:

cmake ... -T "the string VS uses to identify the toolset" ...

所以,例如:

cmake ... -T v90 ...

请注意,到目前为止,此选项在GUI中没有专用小部件。