Cmake中find_package命令的搜索模式之配置模式
(Configmode)
  前⾯有介绍过find_package的两种搜索模式之⼀模块模式(请参考Cmake命令之find_package介绍和模块模式),本⽂将介绍另外⼀种模式:配置模式。
⼀、配置模式下的.cmake⽂件
  该模式下,CMake会搜索<lowercasePackageName>-ake⽂件或<PackageName&ake⽂件。如果find_package命令中指定了具体的版本,也会搜索<lowercasePackageName>-ake或<PackageName&ake⽂件,因此配置模式下通常会提供配置⽂件和版本⽂件(注意形式上要保持⼀致),并且作为包的⼀部分⼀起提供给使⽤者。
  同样的,当find_package调⽤返回时,⼀系列跟包相关的变量也会提供给调⽤者。例如<PackageName>_FOUND标识包是否
到、<PackageName>_DIR变量⽤于指⽰包配置⽂件所在的位置。实际上,返回的变量并没有特别的限制,但是还是建议遵循模块模式的标准变量名称的命名规则。
⼆、配置模式的配置⽂件⽣成
  ⼀个配置⽂件⽅式提供的包由包配置⽂件(必须包含,名为<lowercasePackageName>-ake⽂件或<PackageName&ake)和包版本⽂件(可选,名为<lowercasePackageName>-ake或<PackageName&ake)组成。配置⽂件和版本⽂件的命名要配对出现,也就是:
<lowercasePackageName>-ake
<lowercasePackageName>-ake
或者是:
<lowercasePackageName&ake
<lowercasePackageName&ake
  仍然是以我们⾃⼰编写的mymath库为例,假设mymath库提供了如下的⽂件:find查命令的使用
/XXX/ # ⽣成libmymath.a的cmake配置
/
XXX/mymath/mymath.h
/XXX/mymath/libmymath.a
/XXX/mymath/mymath/ake
/XXX/mymath/mymath/ake
2.1 配置⽂件ake
  ake⽂件有两种⽅式可以⽣成:
在CMake中include(CMakePackageConfigHelpers),⽤CMakePackageConfigHelpers提供的configure_package_config_file()来⽣成。
直接通过set设置对应的变量,本⽂采⽤这种⽅式提供,如下:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。