Conan 2.0 发布,开源 C/C++ 包管理器


Conan 是一个去中心化、开源的 C/C++ 包管理器。适用于所有平台,包括 Linux、macOS、Windows、Solaris、FreeBSD、Docker、WSL 等。它可以为任何配置和平台创建、上传和下载二进制文件, 甚至交叉编译,节省大量的开发和持续集成时间。

基于 Conan 1.x 的经验教训,Conan 2.0 带来了许多激动人心的改进。此外,为了使升级更容易,团队还做了很多努力将必要的东西反向移植到 Conan 1.x,使用最新 1.x 将与 2.0 兼容,并且两个版本的二进制文件不会冲突并且能够在同一个服务器存储库中共存。

新的图形模型

Conan 2.0 定义了新的需求特征和包类型,以更好地表示 C 和 C++ 二进制文件产生的关系,比如可执行文件、共享库链接静态库或共享库。

新的公共 Python API

一个新的模块化 Python API 被提供,并被公开和记录。这是一个真正的 API,其构建模块已经用于构建 Conan 的内置命令,但也允许进一步扩展。不同的功能组有不同的子 API,可以实现高级用户流、功能和自动化。

新的构建系统集成

在最新的 Conan 1.X 中引入,Conan 2.0 将使用现代构建系统集成,如 CMakeDepsCMakeToolchain,它们是完全透明的 CMake 集成。这些集成也可以实现更好的 IDE 集成。

新的自定义用户命令

Conan 2.0 允许用自定义的用户命令来扩展 Conan,这些命令是用 python 编写的,可以用 conan xxxx 来调用。这些命令可以通过 conan config install 共享和安装,并且有多层命令和子命令。

新 CLI

Conan 2.0 重新设计了 CLI,以提高一致性,消除歧义,并改善用户体验。新的 CLI 还将所有的信息、警告和错误信息发送到 stderr,而将最终结果保留在 stdout,允许多种输出格式,并使用重定向来创建文件 --format=json > myfile.json。CLI 提供的信息将更加结构化和彻底,以便更容易用于自动化,特别是在 CI/CD 系统中。

新的 package_id

Conan 2.0 定义了一个新的、动态的 package_id,与 Conan 1.X 的局限性相比,这个 package_id将考虑到包的类型和需求类型,根据不同的情况实施更有意义的策略。

compatibility.py

Conan 2.0 有一个新的扩展机制,可以在全局层面上定义二进制兼容性。Conan 缓存中的 compatibility.py文件将被用来定义在某个软件包有某些缺失的二进制文件的情况下应该使用哪些二进制文件的回退。

其他

  • 新的配置和环境管理
  • 多版本缓存
  • 新扩展插件
  • 软件包的签名和验证
  • ……

更多详情可查看:https://github.com/conan-io/conan/releases/tag/2.0.0


相關推薦

2022-12-23

编译,节省大量的开发和持续集成时间。 Conan 1.56 正式发布,更新内容如下: 修复:在用 conan get 打印文件时避免多余的行尾 修复:当路径中有空格时,修复新的 Environment .ps1 文件 错误修复:修复当一个tool_requires 需要

2023-01-15

编译,节省大量的开发和持续集成时间。 Conan 1.57 正式发布,更新内容如下: 功能:为 AutotoolsToolchain 添加了辅助函数:update_configure_args、update_make_args 和update_autoreconf_args,以便毫不费力地更新/调整标志 功能:允许使用 to

2022-10-11

编译,节省大量的开发和持续集成时间。 Conan 1.53 正式发布,更新内容如下: 特性: 在配置文件中实现一个新的 [runenv] 部分,以定义运行时环境 在设置中为 GCC 添加 compiler.version 11.3 增加消息,以帮助那些拥有旧的 CMake

2022-12-09

编译,节省大量的开发和持续集成时间。 Conan 1.55 正式发布,更新内容如下: 特性: 为 AutotoolsToolchain 增加前缀参数 新的 NMakeDeps 生成器 通过 layouts.xxx.buildenv_info 和 layouts.xxx.runenv_info 实现 editable 环境变量 在 settings.yml

2023-07-12

进对 vs_runtime 设置问题。 更新 lua 运行时 最近 Lua 已经发布了 5.4.6 版本,我们对 xmake 中内置的 Lua 运行时也做了升级,跟上游保持同步。 更新日志 新特性 #3821: windows 安装器添加长路径支持选项 #3828: 添加 zypper 包管理器

2023-02-17

JFrog 最新发布了首份年度 Software Artifact State of the Union 报告,基于来自全球 7000+ 不同规模企业的数据;揭露了当今企业开发人员在将软件从设计到生产过程中最常用的软件包和二进制文件。报告评估的 Top 10 顶级软件技术(2021

2023-04-07

发维护。 如果有感兴趣的同学,欢迎报名参与 Xmake 社区发布的项目开发(具体项目待定中),相关详情进展,请关注:Xmake 开源之夏。 更新内容 新特性 #3518: 分析编译和链接性能 #3522: 为 target 添加 has_cflags, has_xxx 等辅

2023-08-24

Xmake 是一个基于 Lua 的轻量级跨平台构建工具。 它非常的轻量,没有任何依赖,因为它内置了 Lua 运行时。 它使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快

2022-08-26

Cemu 是一个任天堂 Wii U 模拟器,能够运行大多数 Wii U 游戏和自制软件。它是用 C/C++ 编写的,并且正在积极开发新功能和修复,以提高兼容性、便利性和可用性。 Cemu 目前仅适用于 64 位 Windows 和 Linux 设备。 正是从 2.0 版本开始

2022-10-26

随着 11 月 1 日 Zig v0.10.0 版本的发布,其新的自托管编译器(self-hosted compiler)也将同步推出。“尽管自托管编译器现已实现,但仍有更多的工作要做。与此同时,更多令人兴奋的功能的大门已经打开,比如 Zig 的官方包管理器。

2022-08-03

Gitea 1.17.0 已正式发布。公告称,这是一个相对较大的版本更新,带来了许多新功能和破坏性变化。在 1.17 开发周期里,总共合并了 645 个 PR。 Gitea 1.17.0 对部分依赖进行了升级,其中包括 Git >= 2.0、docker >= 20.10.6,以及需要 G

2022-11-09

Xmake 是一个基于 Lua 的轻量级跨平台构建工具。 它非常的轻量,没有任何依赖,因为它内置了 Lua 运行时。 它使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快

2024-04-24

Xmake 是一个基于 Lua 的轻量级跨平台构建工具。 它非常的轻量,没有任何依赖,因为它内置了 Lua 运行时。 它使用 xmake.lua 维护项目构建,相比 makefile/CMakeLists.txt,配置语法更加简洁直观,对新手非常友好,短时间内就能快

2023-01-29

stlibpq libpsl 更新内容 新特性 #3228: C++ modules 的安装发布,以及从包中导入 C++ modules 支持 #3257: 增加对 iverilog 和 verilator 的支持 支持 xp 和 vc6.0 #3214: xrepo install 的自动补全支持 改进 #3255: 改进 clang libc++ 模块支持