如何中止处理当前目录的CMakeLists

时间:2009-10-02 21:59:42

标签: cmake

我的项目结构如下:

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

1 个答案:

答案 0 :(得分:7)

来自CMake documentation

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

         

    return()

  •   
     

从目录或函数返回。   遇到这个命令时,它   导致当前功能的过程   或停止和控制的目录是   返回函数的调用者,   或者父目录(如果有的话)。注意   一个宏不是一个功能和   不像函数那样处理返回   确实