自动生成Find Cmake并安装它以进行导入

Man*_*ero 4 c++ cmake

有没有办法自动创建一个FindXXX.cmake,其中XXX是我的Cmake项目?我看到许多项目他们手动创建了FindXXX.cmake,但我相信可以自动创建它.

而且,我应该在Linux上安装我的项目?

谢谢!

Com*_*sMS 9

看看CMake的项目配置文件机制(以及CMakePackageConfigHelper模块;您可能还想看一下这个wiki页面).

查找脚本对于查找不了解CMake的依赖项非常有用.另一方面,如果依赖关系也使用CMake构建,您可以让CMake为您自动生成项目配置文件,作为该项目构建过程的一部分.此配置文件将允许您从封闭项目中引用该项目的目标,就好像它们是作为封闭项目的CMake运行的一部分构建的一样.这比使用查找脚本更强大,因为它允许在传统查找脚本可用的debug/ optimized选项之外对配置进行不同的处理.

在Windows上,以这种方式生成配置文件的项目将使用CMake注册自己,这样构建在同一台机器上的依赖项目可以自动找到它们而无需任何其他配置.如果您在非Windows平台上构建(或者您在不同的计算机上构建两个库),则必须将配置文件放在默认目录(用于find_package描述搜索哪些目录的文档)或明确指向CMake到该位置使用CMAKE_MODULE_PATH.

现代CMake感知库应该总是比传统的查找脚本更喜欢这种方法.这样做的库的一个突出例子是Qt5.

  • 请参阅最新文档:http://www.cmake.org/cmake/help/v3.0/manual/cmake-packages.7.html (3认同)

arr*_*owd 2

CMake 支持使用configure_file()命令进行模板化。

find_package()命令的文档中列出了 CMake 搜索 FindXXX.cmake 模块的标准目录。