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

Generate Find Cmake automatically and install it for importing

本文关键字:导入 安装 Find Cmake 自动生成      更新时间:2023-10-16

是否有办法创建一个FindXXX。其中XXX是我的cmake项目?我看到很多项目都创建了FindXXX。我可以手动创建,但我相信可以自动创建。

在Linux上我应该在哪里安装我的项目?

谢谢!

看看CMake的项目配置文件机制(以及cmakepackageconfighter模块;你可能也想看看这个wiki页面)。

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

在Windows上,以这种方式生成配置文件的项目将在CMake中注册自己,这样在同一台机器上构建的不同项目可以自动找到它们,而无需任何额外的配置。如果你在非windows平台上构建(或者你在不同的机器上构建两个库),你必须将配置文件放在默认目录中(find_package的文档描述了搜索哪些目录),或者使用CMAKE_MODULE_PATH显式地指向CMake的位置。

现代cmake意识库应该总是更喜欢这种方法,而不是传统的查找脚本。Qt5就是一个很好的例子。

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

CMake查找FindXXX的标准目录。Cmake模块列在find_package()命令的文档中