15

我有一个项目结构,如:

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 的其余部分”?

4

1 回答 1

14

来自 CMake文档

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

    return()

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

于 2009-11-04T09:48:07.400 回答