CMake命令find_package如何使用变量<name> _DIR </name>

时间:2012-07-12 10:03:57

标签: cmake

我对CMake命令find_package有疑问。

例如,当我想使用OpenCV时,我可以设置变量OpenCV_DIROpenCV_DIR也有默认值。但是哪个命令生成此变量OpenCV_DIR,何时生成?

2 个答案:

答案 0 :(得分:3)

在幕后,find_package命令正在运行CMake文件。当CMake文件被CMake文件调用时,将运行此文件。这些文件(例如,FindOpenCV.cmake)设置了有问题的变量。

当我遇到find_package命令的问题时,通常会通过阅读相应的FindWhateverPackage.cmake文件来获得一些清晰度。

答案 1 :(得分:0)

find_package以“模块”或“配置”模式运行。默认情况下,它会尝试第一种模式,如果找不到请求的包,它会尝试第二种模式。在此模式下,它会创建缓存变量_DIR。 Link to documentation

如果找到OpenCVConfig.cmake,

FindOpenCV也会设置此变量,以获取更多信息see here