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 将使用现代构建系统集成,如 CMakeDeps
和 CMakeToolchain
,它们是完全透明的 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

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
Deno 1.31 发布,支持 package.json
Deno 是一个简单、现代和安全的 JavaScript 和 TypeScript 的运行时,它使用 V8 并以 Rust 构建。 Deno 1.31 正式发布,值得关注的更新包括: 支持package.json Deno 现在会自动检测到 package.json 并使用它来安装和解决使用的依赖关系 Node-API 的稳定化 Deno 1.31 稳定了 Node-API(又称 N-API),这意味着在使用依赖 Node-API 的 npm 包时,不再需要 -unstable 标志 兼容层现在是运行时的一部分 Deno 1.31 通过将 Node.js 的兼容层直接移入 Deno 运行时本身,给运行时带来了重大改进 远程模块中支持 npm 指定器 以前,导入一个依赖 npm 包的远程模块需要 -unstable 标志,现在这不再是必要的了 对DenoAPI 的改变 此版本稳定了两个 API:[Deno.Command](<https://deno.land/api@v1.31.0?s=Deno.Command>) 和 Deno.osUptime(),这意味着使用这些 AP...
- 下一篇
Bun v0.5.7 发布,Zig 编写的 JavaScript 运行时
Bun是采用Zig 语言编写的高性能 “全家桶” JavaScript 运行时,官方称其为 "all-in-oneJavaScript runtime"。所谓 "all in one",是因为 Bun 提供了打包、转译、安装和运行 JavaScript & TypeScript 项目的功能,内置原生打包器 (native bundler)、转译器、task runner、npm 客户端,以及fetch、WebSocket等 Web API。 Bun 最近发布了 0.5.7 版本,主要变化: 支持FormData FormData是标准的 Web API,用于处理分段上传中的表单字段和文件。 const formData = new FormData(); formData.set("attachment-id", crypto.randomUUID()); formData.set("attachment", Bun.file("./package.json")); const response = await fetch("https://example.com/u...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- CentOS7安装Docker,走上虚拟化容器引擎之路
- Docker安装Oracle12C,快速搭建Oracle学习环境
- SpringBoot2全家桶,快速入门学习开发网站教程
- CentOS7设置SWAP分区,小内存服务器的救世主
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Hadoop3单机部署,实现最简伪集群
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- SpringBoot2配置默认Tomcat设置,开启更多高级功能