Conan 1.5 已于 上周发布,其中包含了一些为 1.4 版本宣布的功能的进展。此版本的功能并不多,但仍然有一些很棒的新内容要分享!

来自不同远程的二进制文件

在几个版本之前引入的 conan search <pkg_pattern> --remote all 在所有远程中执行引用搜索时非常方便。感谢贡献者,您现在也可以以相同的方式在所有远程中搜索二进制文件

$ conan search <pkg-ref> -r=all

由于知道在哪个远程中存在您需要的二进制文件非常有用,因此如果您无法混合来自不同远程的二进制文件,此功能将无法完成。所以,这正是我们所做的。

$ conan install libwebp/1.0.0@bincrafters/stable

libwebp/1.0.0@bincrafters/stable: Not found in local cache, looking in remotes...
libwebp/1.0.0@bincrafters/stable: Trying with 'conan-center'...
...
libwebp/1.0.0@bincrafters/stable: Installing package

Requirements
    libwebp/1.0.0@bincrafters/stable from 'conan-center' - Downloaded
Packages
    libwebp/1.0.0@bincrafters/stable:36cedbf3473b284f710724d0897d2340d94bb47e - Download

libwebp/1.0.0@bincrafters/stable: Retrieving package 36cedbf3473b284f710724d0897d2340d94bb47e from remote 'conan-center'
...
libwebp/1.0.0@bincrafters/stable: Package installed 36cedbf3473b284f710724d0897d2340d94bb47e


$ conan install libwebp/1.0.0@bincrafters/stable -s arch=x86 -r upload_repo

libwebp/1.0.0@bincrafters/stable: Installing package
Requirements
    libwebp/1.0.0@bincrafters/stable from 'conan-center' - Cache
Packages
    libwebp/1.0.0@bincrafters/stable:dc94cc7e740b35dfaacd21a10cbbcb541a20125e - Download
Cross-build from 'Windows:x86_64' to 'Windows:x86'
libwebp/1.0.0@bincrafters/stable: Retrieving package dc94cc7e740b35dfaacd21a10cbbcb541a20125e from remote 'upload_repo'
libwebp/1.0.0@bincrafters/stable: Package installed dc94cc7e740b35dfaacd21a10cbbcb541a20125e

依赖图中的构建需求

在对依赖图进行大量重构后,您现在可以在其中看到 build_requires 的表示。此功能在 conan info --graph 中可见(以颜色表示)。

Conan graph with build requires

通过这些更改,conan installconan info 命令现在在输出中显示了配方和二进制文件状态的扩展信息。

...
libwebp/1.0.0@bincrafters/stable: Installing package
Requirements
    libwebp/1.0.0@bincrafters/stable from 'conan-center' - Downloaded
Packages
    libwebp/1.0.0@bincrafters/stable:36cedbf3473b284f710724d0897d2340d94bb47e - Download

配方中的依赖项声明顺序也得到尊重(只要它不破坏依赖项图顺序)。

SCM改进

在针对新的 SCM 功能收到大量新问题反馈后,我们进行了一些改进以使其变得更好。现在,递归克隆子模块 有了一个新的 submodule 参数。

现在,您还可以将 exportsexports_sourcesscm 属性一起使用。 conan create 将首先复制导出内容和导出源,然后应用 SCM,最后应用 source() 方法(如果您想使用最新的进行修补,例如)。

这还将管理符号链接,并且在本地开发时,不会从本地存储库复制被 gitignore 忽略的文件。

请继续提供反馈!

其他亮点

  • 我们发布了 工作区 并收到了很多反馈。敬请关注改进!

  • conan user 命令现在能够显示已认证的用户,并包含一个用于 JSON 输出的 --json 参数。

  • SystemPackageTools 现在还支持 Manjaro。

  • 默认的 settings.yml 文件中有一个新的 Macos 版本子设置,用于考虑“最小 OSX 版本”配置。