搜索

pdf文档 Conan 2.9 Documentation

4.99 MB 795 页 0 下载 90 浏览 0 评论 0 收藏
语言 格式 评分
英语
.pdf
3
摘要
Conan 2.9.3 documentation introduces several key improvements and new features. The package_id mechanism has been enhanced to dynamically consider package types and requirements, ensuring more accurate dependency resolution. A new compatibility.py extension allows global binary compatibility definitions. Lockfiles have been simplified and made more flexible, supporting multiple configurations and constraints. The configuration system has been updated to use a structured [conf] format, improving environment management. Additionally, the cache system now supports multiple revisions, and new extensions plugins have been introduced for profile checking, command wrapping, and package signing. The documentation also details changes in Conan 2.0, including new build system integrations, public Python API, and improved reproducibility controls.
AI总结
### Conan 2.9 Documentation 总结 #### 1. 版本概述 Conan 2.9.3 是 Conan 2 系列的最新版本,于 2024 年 12 月 3 日发布。该版本引入了许多新功能和改进,旨在提升依赖管理、构建系统集成和二进制管理的效率和灵活性。 --- #### 2. 主要新功能与改进 ##### 2.1 新包 ID 机制 - Conan 2 引入了动态的 `package_id` 机制,取代了 Conan 1.X 的静态模式。 - 新的 `package_id` 根据依赖类型和版本策略生成唯一标识,支持更灵活的依赖管理: - **全模式(full_mode)**:任何静态库的二进制变化都会触发依赖应用的重新构建。 - **minor_mode**:当依赖库的版本仅发生次要变化时,可避免不必要的重新构建。 - 支持更通用的版本格式(不限于 SemVer 的三个字段)。 ##### 2.2 兼容性文件(compatibility.py) - 新增全局二进制兼容性机制,通过 `compatibility.py` 文件定义兼容性策略。 - 默认提供 C++ 标准和可执行文件兼容性支持,用户可自定义扩展。 - 通过 `conan config install` 可共享和管理兼容性配置。 ##### 2.3 锁文件改进 - 锁文件(lockfiles)简化为有序的依赖引用列表,支持灵活的依赖管理: - 单一锁文件可适用于多种配置。 - 支持合并锁文件、部分定义锁文件、严格的依赖约束等。 - 提供更灵活的版本控制和依赖解析方式。 ##### 2.4 配置与环境管理 - 新的 `[conf]` 配置系统取代了旧的环境变量配置方式,支持更结构化的配置: - 配置信息可从 Conan 配置文件(profiles)传递到 Conan 配方或构建系统(如 CMake)。 - 支持布尔值、字符串和列表等更复杂的配置类型。 - 环境管理工具(如 `ROSEnv`)提供更清晰的环境变量传递机制。 ##### 2.5 多版本缓存 - 缓存系统全面 redesign,支持存储多个依赖版本。 - 使用哈希缩短缓存路径,无需手动启用 `short_paths`。 - 并发任务需使用独立缓存,避免冲突。 ##### 2.6 扩展插件 - 新增扩展插件机制,支持以下功能: - **配置检查器**:验证配置文件的合法性(如编译器版本与 C++ 标准的兼容性)。 - **命令包装器**:允许自定义构建命令,支持增量构建工具(如 IncrediBuild)。 - **签名插件**:实现依赖包的签名与验证,增强供应链安全。 ##### 2.7 包不可变性优化 - 基于修订版本(revisions)的包不可变性优化: - 提升依赖下载、安装和上传效率。 - 同一修订版本的包在缓存和服务器中仅需传输一次。 ##### 2.8 其他新功能 - 新增 `package_id` 策略:支持自定义依赖关系的版本触发规则。 - 新增 `tools.graph:skip_build` 和 `tools.graph:skip_test` 配置,可跳过工具依赖和测试依赖的构建。 - 新增 `conan new` 默认参数:简化包创建流程(`-d name=mypkg -d version=0.1`)。 --- #### 3. 安装与使用 - **安装方式**: - 推荐使用 `pip` 或 `pipx` 安装(支持离线安装)。 - 可从源码编译安装。 - **使用场景**: - 支持跨平台(Windows、Linux、macOS、Android 等)和多种构建系统(CMake、MSBuild 等)。 - 提供 ConanCenter 社区包库,包含 1500 多个经过验证的依赖包。 --- #### 4. 生产环境注意事项 - **默认远程仓库更新**: - 自 Conan 2.9.2 起,默认远程仓库已更新为 `https://center2.conan.io`,旧仓库 `https://center.conan.io` 已冻结。 - **依赖管理建议**: - 生产环境中建议避免无约束地依赖 ConanCenter,以确保构建的可重复性。 --- #### 5. 更新日志 - **2.9.3**: - 修复 `is_test` 计算影响组件检查的问题。 - **2.9.2**: - 默认远程仓库更新为 `center2.conan.io`。 - 修复环境变量 `CMAKE_TOOLCHAIN_FILE` 的引号问题。 - **2.9.1**: - 修复 `deduce_subsystem` 和 `profile.py` 的兼容性问题。 - **2.9.0**: - 新增多操作系统和编译器版本支持。 - 新增 `conan new` 默认参数简化用户体验。 --- #### 6. 总结 Conan 2.9.3 提供了更强大、更灵活的依赖管理和构建工具集,特别在包 ID 策略、兼容性管理、锁文件和多版本缓存方面有显著改进。对于需要跨平台和多构建系统支持的项目,Conan 2.9.3 是一个值得信赖的选择。
P1
P2
P3
P4
P5
P6
P7
P8
P9
P10
P11
P12
下载文档到本地,方便使用
- 可预览页数已用完,剩余 783 页请下载阅读 -
文档评分
请文明评论,理性发言.