【问题标题】:How to abort processing CMakeLists for current directory如何中止处理当前目录的 CMakeLists
【发布时间】:2009-10-02 21:59:42
【问题描述】:

我的项目结构如下:

src/CMakeLists.txt
src/test/component1/CMakeLists.txt
src/test/component2/CMakeLists.txt

对于测试,我使用的是 Qt - 但是,我想确保如果 Qt(或其他一些特定于测试的包未找到)我只是跳过该包。

我试过了

find_package(Qt4 QUIET COMPONENTS QtCore QtTestLib)
if (NOT QT4_FOUND)
    message(SEND_ERROR "Qt4 not found - skipping building tests")
endif (NOT QT4_FOUND)

但这并不像我想要的那样工作,因为这仍然会阻止生成 Makefile。我能想到的唯一方法是将 CMakeLists 文件的整个正文放入条件正文中。

有没有办法说“跳过处理这个 CMakeLists 的其余部分”?

【问题讨论】:

    标签: cmake


    【解决方案1】:

    来自 CMake documentation

    • return:从目录或函数返回。

      return()

    从目录或函数返回。 遇到此命令时, 导致当前函数的进程 或要停止和控制的目录是 返回函数的调用者, 或父目录(如果有)。笔记 宏不是函数,并且 不像函数那样处理返回 会的。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-06-08
      • 1970-01-01
      • 1970-01-01
      • 2023-01-08
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多