首页 > 解决方案 > 为 CMake 项目创建一个配方,使用 find_package 查找其依赖项

问题描述

我想为我在 Github 上找到的一个项目制作一个柯南包。该项目是一个 CMake 项目,依赖于 openssl。该项目使用普通的 find_package 找到 openssl。

我的食谱显然声明了 openssl 依赖项,但我挣扎的是如何在项目的 CMake 中获取 find_package(openssl) 以找到柯南获得的 openssl?

标签: conan

解决方案


你需要cmake_find_package生成器。

from conans import ConanFile

class Foo(ConanFile):
    requires = "openssl/1.1.1l"
    generators = "cmake", "cmake_find_package"

    ...

这将为Findxxx.cmake您的所有依赖项生成。

如果您是第一次创建包,我建议您阅读如何从官方文档中创建包,以及来自柯南中心索引的最佳实践。

更新:使用CMakeDeps

Conan 2.0 进行了许多改进,包括生成器的新方法。CMakeDeps在需要xxx-config.cmake. 它还没有开始记录,但它的参考带来了一个非常简单的例子。


推荐阅读