如何禁用cmake的Visual Studio宏,该宏提示用户在CMakeLists.tx发生更改时重新加载解决方案

时间:2011-11-05 05:55:01

标签: visual-studio visual-studio-2010 cmake

由于Visual Studio 2010已损坏,并且在通过CMake从外部进行更改时不会自动重新加载解决方案,因此kitware的工作人员制作了这个宏,提示您重新加载整个解决方案,而不是像Visual Studio那样为每个项目按重新加载。如果它确实有效,那将是很好的。

在VC 10中,这个宏被破坏并进一步阻塞了ide。我有另一个自动重新加载外部更改的项目/解决方案(VSCommands加载项)的解决方案,并希望禁用cmake的宏。有谁知道吗?

2 个答案:

答案 0 :(得分:4)

以下是我在LLVM'CMakeLists.txt中找到的内容:

# Workaround for MSVS10 to avoid the Dialog Hell
# FIXME: This could be removed with future version of CMake.
if(MSVC_VERSION EQUAL 1600)
  set(LLVM_SLN_FILENAME "${CMAKE_CURRENT_BINARY_DIR}/LLVM.sln")
  if( EXISTS "${LLVM_SLN_FILENAME}" )
    file(APPEND "${LLVM_SLN_FILENAME}" "\n# This should be regenerated!\n")
  endif()
endif()

看来,这段代码会更新.sln文件,并强制Visual Studio立即重新加载整个解决方案,而不是询问每个项目。

答案 1 :(得分:3)

要“禁用”运行的CMake宏以提示解决方案重新加载,您可以编辑标有“请勿编辑此宏”的宏...

在Visual Studio中,从菜单中选择“工具>宏>宏IDE ...”,在CMakeVSMacros2.Macros模块中注释掉“ReloadProjects”和“StopBuild”宏的主体,然后甚至当CMake调用这些宏,它们没有效果。

也许你可以这样做,并且还尝试关于该主题的CMake错误报告中提到的VS插件:http://public.kitware.com/Bug/view.php?id=11258#c27652