扩展

Conan 可以通过几种方式进行扩展,使用自定义用户代码

  • python_requires 允许将通用的 recipe 代码放入一个 recipe 包中,其他 recipes 可以通过声明 python_requires = "mypythoncode/version" 来重用。

  • 借助 Python 和 Conan 公共 API 的强大功能,您可以创建自己的自定义 Conan 命令来解决自身需求。

  • 如果您使用的构建系统不受内置 Conan 工具支持,那么也可以创建自己的自定义 Conan 生成器。这些生成器可以从 python_requires 使用,或者全局安装。

  • hooks 是“recipe”方法(如 pre_build()post_build())的“前”和“后”扩展,可用于通过正交功能(如质量检查、二进制分析、日志记录等)来补充 recipes。

  • 二进制兼容性 compatibility.py 扩展允许编写自定义规则,用于定义不同设置和选项之间的自定义二进制兼容性。

  • cmd_wrapper.py 扩展允许将任意命令包装器注入到任何 self.run() recipe 命令调用中,这对于注入并行化工具等包装器非常有用。

  • 包签名扩展允许在上传和安装时分别对包进行签名和验证。

  • Deployers(部署器)是一种机制,用于方便地将文件从一个文件夹(通常是 Conan 缓存)复制到用户文件夹。

注意

除了本文档中列出的内置 Conan 扩展之外,还有一个包含 Conan 扩展的存储库,例如自定义命令和部署器,可用于不同的目的,例如 artifactory 任务、Conan Center Index 等。

您可以在 GitHub 存储库 中找到更多关于如何使用这些扩展的信息。

目录