【发布时间】:2015-08-21 14:15:26
【问题描述】:
我试图了解 cmake 如何使用 FindXXX.cmake 文件查找包。例如,OpenNI 库在此处定义了文件 FindOpenNI.cmake:https://github.com/PointCloudLibrary/pcl/blob/master/cmake/Modules/FindOpenNI.cmake
现在,在该文件的底部,有以下内容:
if(OPENNI_FOUND)
# Add the include directories
set(OPENNI_INCLUDE_DIRS ${OPENNI_INCLUDE_DIR})
message(STATUS "OpenNI found (include: ${OPENNI_INCLUDE_DIRS}, lib: ${OPENNI_LIBRARY})")
endif(OPENNI_FOUND)
我不明白变量OPENNI_FOUND 的定义位置,因为这是文件中提到它的第一个点。
我原以为这个文件本身是用来查找 OpenNI 的,方法是按照文件内容中的指示搜索目录。但是,似乎OPENNI_FOUND 之前必须声明过。因此,我很困惑:FindOpenNI.cmake 被用于查找 OpenNI,但在此过程中,它被赋予了变量OPENNI_FOUND,它本身告诉 cmake 是否找到了 OpenNI。
那么 cmake 是如何真正找到 OpenNI 的呢?使用这个文件?还是其他方式?
谢谢:)
【问题讨论】:
标签: c++ linux ubuntu cmake makefile