我的项目结构如下:
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的剩余部分”?
答案 0 :(得分:7)
来自CMake documentation
return:从目录或函数返回。
return()
从目录或函数返回。 遇到这个命令时,它 导致当前功能的过程 或停止和控制的目录是 返回函数的调用者, 或者父目录(如果有的话)。注意 一个宏不是一个功能和 不像函数那样处理返回 确实