Conan 知识点速查

这个 Conan 快速参考知识点速查显示了它的常用命令使用清单

入门

介绍

Conan 是开源、去中心化和多平台的软件包,管理器来创建和共享您的所有本机二进制文件

安装

$ pip install conan
$ pip install conan --upgrade

初始化配置文件

$ conan config init

显示本地客户端配置

Conan 应用配置

# 查看 Conan 主目录
$ conan config home
# 显示部分或全部配置项
$ conan config get [<section>.<config>]
# 显示完整的 conan.conf 文件
$ conan config get
# 在“日志”部分显示“级别”项
$ conan config get log.level

配置文件的内容(例如默认值)

$ conan profile show default

远程存储库

$ conan remote list

添加和修改配置

安装配置集合

$ conan config install <url>
$ conan config install ./my_config.conf

更改单个配置值

$ conan config set general.revisions_enabled=1

添加遥控器

$ conan remote add my_remote <url>

提供远程凭据

$ conan user -p <password> -r my_remote <username>

显示来自 inspect 或 reference 的信息

显示 conanfile.py 的属性

$ conan inspect <path> -a <attribute>

显示 conanfile.py 的内容以供参考

$ conan get <reference>

显示 recipe 的依赖关系图信息

$ conan info <path_or_reference>

搜索包

在远程搜索包

# 列出本地缓存中的包名称
$ conan search 
$ conan search <package>/<revision>@<user>/<channel>  # 输出取决于给出了多少包引用。
                                          # 支持通配符
               [--table=file.html]        # 将输出保存在 HTML 文件中
               [-r=<remote>]              # 查看远程存储库(默认为本地缓存)

$ conan search mylib/1.0@user/channel     # 显示本地缓存中 mylib/1.0@user/channel 的所有包
$ conan search "zlib/*" -r=all            # 在所有远程中显示所有版本的 zlib

$ conan search zlib -r conan-center

# 显示包的修订:
$ conan search <package>/<revision>@<user>/<channel> --revisions

安装包

仅使用参考安装包

$ conan install <package_reference>

从 conanfile 安装软件包列表

$ cat conanfile.txt
[requires]
zlib/1.2.11
$ conan install <path_to_conanfile>

通过生成器在构建系统中使用包

$ cat conanfile.txt
[requires]
zlib/1.2.11
[generators]
cmake_find_package
msbuild
make

安装需求并生成文件

$ mkdir build && cd build
$ conan install ..

运行您的构建系统(以下之一)

$ cmake .. && cmake --build .
$ msbuild myproject.sln
$ make

创建一个包

从模板创建配方 (conanfile.py)

$ conan new <reference> -m <template>

只需将配方导出到本地缓存

$ conan export <path_to_conanfile>

从 recipe 为一种配置创建包 也隐含地安装和导出步骤

$ conan create . -pr <profile>

检查包裹

完整打印包装配方:

$ conan get <package>/<revision>@<user>/<channel>
$ conan get boost/1.74.0

包装配方的打印属性:

$ conan inspect <package>/<revision>@<user>/<channel>
$ conan inspect boost/1.74.0

请参阅 conan getconan inspect 参考

Lockfiles

创建一个锁文件:

$ conan lock create <package>/conanfile.py --user=<user> --channel=<channel>

conan createconan install 期间使用 lockfile:

$ conan <command> --lockfile conan.lock

查看 conan lock 参考