您的位置:首页 > 其它

find_package()的查找*.cmake的顺序

2018-02-09 17:21 477 查看
1、
find_package(<Name>)
命令首先会在模块路径中寻找
Find<name>.cmake
,这是查找库的一个典型方式。具体查找路径依次为CMake:
变量
${CMAKE_MODULE_PATH}
中的所有目录。如果没有,然后再查看它自己的模块目录 /share/cmake-x.y/Modules/ (
$CMAKE_ROOT
的具体值可以通过CMake中
message
命令输出)。这称为模块模式。

2、 如果没找到这样的文件,
find_package()
会在
~/.cmake/packages/
/usr/local/share/
中的各个包目录中查找,寻找
<库名字的大写>Config.cmake
或者
<库名字的小写>-config.cmake
(比如库
Opencv
,它会查找
/usr/local/share/OpenCV
中的
OpenCVConfig.cmake
opencv-config.cmake
)。**这称为配置模式。

**不管使用哪一种模式,只要找到
*.cmake
*.cmake
里面都会定义下面这些变量:

<NAME>_FOUND
<NAME>_INCLUDE_DIRS or <NAME>_INCLUDES
<NAME>_LIBRARIES or <NAME>_LIBRARIES or <NAME>_LIBS
<NAME>_DEFINITIONS

注:FIND_PACKAGE(Protobuf)//调用外部自定义cmake模块,简单理解就是外面已经有一个写好cmake脚本(和CmakeLists.txt语法一样),你想在某个CMakeLists.txt中直接调用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: