繁体   English   中英

cmake如何找到包裹?

[英]How does cmake find a package?

我试图了解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? 使用这个文件? 还是其他方式?

谢谢 :)

是的,CMake使用您提到的文件来查找OpenNI。 OPENNI_FOUND变量由find_package_handle_standard_args()函数设置。 这是万事俱备的地方,请参阅文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM