为 CMake 项目创建配方,找到其依赖项 find_package

Creating a recipe for a CMake project that finds its dependencies with find_package

我想为我在 Github 上找到的项目制作一个柯南包。本项目为CMake项目,依赖openssl。项目发现openssl正常find_package.

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

您需要 cmake_find_package 个发电机。

from conans import ConanFile

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

    ...

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

如果您是第一次创建包,建议您阅读 how to create a package from official docs, and the best practices from Conan Center Index

更新:使用CMakeDeps

柯南 2.0 进行了许多改进,包括一种新的生成器方法。 CMakeDeps 是需要 xxx-config.cmake 时的新方法。它尚未在入门文档中记录,但它的参考带来了一个非常简单的示例。