首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我能否在没有错误的情况下停止CMake处理?

我能否在没有错误的情况下停止CMake处理?
EN

Stack Overflow用户
提问于 2019-07-24 23:56:35
回答 1查看 3.3K关注 0票数 1

我需要能够从一个CMake函数或宏中停止CMake处理。我不想只停止处理当前文件,但是会停止所有CMake处理。现在,我正在使用message(FATAL_ERROR "Foo")文档 for message声明它做的正是我所需要的:

CMake错误,停止处理和生成

但是,我希望能够在不产生错误的情况下做到这一点。我也不需要留言。我只想完全退出。有办法这样做吗?

EN

回答 1

Stack Overflow用户

发布于 2019-07-25 00:15:41

如果CMakeLists.txt层次结构相当浅,则可以调用一次或两次return() (取决于您是调用add_subdirectory()还是在宏/函数中),以返回到调用文件或函数并退出CMake处理。

如果您的项目层次结构更复杂,并且希望从任意位置退出CMakes,则不存在本机CMake命令来支持该命令。但是,您可以使用自己的解决方案(诚然,有点吓人)来终止cmake

代码语言:javascript
复制
function(exit_cmake)
  if(UNIX)
    set(KILL_COMMAND "killall")
    execute_process(COMMAND ${KILL_COMMAND} -9 cmake
      WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
    )
  else()
    set(KILL_COMMAND "taskkill")
    execute_process(COMMAND ${KILL_COMMAND} /IM cmake.exe /F
      WORKING_DIRECTORY ${CMAKE_CURRENT_LIST_DIR}
    )
  endif()
endfunction()

如果将其包含在顶级CMake文件中,则可以从CMakes中的任何位置调用它以静默退出。

警告:这将终止所有当前正在运行的CMake进程,而不仅仅是当前进程。因为您强制进程终止,所以您的CMake文件/缓存可能处于奇怪的状态。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57192628

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档