如何以使用/ MP选项生成Visual Studio 2013+项目文件的方式配置cmake

时间:2015-11-22 18:26:21

标签: visual-studio-2013 cmake

我有一个包含许多cpp文件(大约400多个)的cmake项目,并且使用/ MP(多线程)编译器选项可以在具有多个内核的CPU上显着加快编译速度。

问题是,每次使用CMake重新生成解决方案文件时,该选项都被禁用,导致编译速度非常慢。我可以通过在Visual Studio中手动更改每个项目的选项(解决方案包含许多不同的项目)来解决这个问题。但是,每次我通过运行CMake重新生成解决方案文件(例如,当我git拉出其他人添加/删除某些文件的更改时),此更改将被覆盖。

如何使其持久化以便CMake始终在VS项目中启用多线程编译?

1 个答案:

答案 0 :(得分:4)

将以下add_compile_options()放在项目主CMakeLists.txt文件的顶部:

cmake_minimum_required(VERSION 2.8.12)
add_compile_options($<$<CXX_COMPILER_ID:MSVC>:/MP>)

或使用较旧的CMake版本&lt; 2.8.12:

project(...)
if (MSVC)
    add_definitions("/MP")
endif()

如果您无法或不想更改主CMakeLists.txt文件,您可以随时手动将标记添加到CMAKE_CXX_FLAGS缓存变量,例如使用CMake's GUI(假设您的CMake项目本身没有强制CMAKE_CXX_FLAGS的值)。

<强>参考