欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Conan 中的“包”概念

程序员文章站 2022-07-14 08:27:09
...

Conan 作为 C++ 包管理软件,最重要的功能就是“包”,因此我们需要仔细看看其包管理的基本概念。

定义:“包” 与 “二进制包”

Conan 最主要的功能就是可以管理好预编译好的二进制文件用于后续打包。关于“包”这里有两层定义:“包”(package recipe)、 “二进制包”(binary package)。

区别 “包”(package recipe) “二进制包”(binary package)
概念 逻辑定义 实际使用
从属关系 1:N 1:N
定义 包名/版本@用户/渠道 settings & options

过程:如何从“包” 变成 “二进制包”

Conan 中的“包”概念

setting 和 option 的区别:setting 是 Conan 给出标准配置项,option 是包的自定义配置项。

方法:3 种打包方式

  • package_info():1 config (1 build) -> 1 package
  • package_info():N configs -> 1 package
  • build_id():N configs (1 build) -> N packages

技巧:基于“配置文件”进行打包

我们知道在 Conan 中,可以通过设置不同的 setting 和 option 生成不同的“二进制包”(binary package)。通过“配置文件”(profiles)就可以方便的进行管理。

一个配置文件的定义:

[settings]
#setting=value
os_build=Linux
arch_build=x86_64
os=Macos
arch=x86_64
compiler=clang
compiler.version=3.5
compiler.libcxx=libstdc++11
build_type=Release


[options]
#MyLib:shared=True
*:shared=True

[env]
#env_var=value
CC=/usr/bin/clang
CXX=/usr/bin/clang++

[build_requires]
#tool/aaa@qq.com/channel
Tool2/aaa@qq.com/channel, Tool3/aaa@qq.com/channel
*: Tool4/aaa@qq.com/channel
相关标签: Conan package