尽管由于 1.26 版本的延迟发布,此版本周期较短,但我们仍然有一些很棒的新增功能与大家分享。

更透明的 CMake 集成

此版本延续了之前版本中 components 功能的开发工作。 cmake_find_package_multi 生成器在此版本中学会了创建和管理 CMake 组件。现在,使用此生成器,可以在 CMake 中显式链接单个组件,同时享受 multi 生成器的优势,该生成器可以在像 Visual Studio 这样的多配置环境中处理多个配置(Debug、Release)。

这是朝着与 CMake 完全透明集成迈出的又一步,并且很有可能此生成器在将来会成为默认的推荐生成器,尤其是在上一个 Conan 1.26 版本中发布的新 toolchain() 功能成熟之后。

新的扩展点:自定义模板

Conan 提供了一些非常流行的扩展机制:自定义设置、python-requires、钩子等。

Conan 1.27 版本引入了一个新的扩展点:可以自定义并提供您自己的某些命令模板

   $ conan new --template=<folder>

这将允许为 conan new 中涉及的所有文件使用模板,而不仅仅是 conanfile.py

   $ conan search <pkg-ref> --table=file.html

用于创建最终文件的 HTML 模板将是 <cache>/templates/output/search_table.html 中的模板(如果存在)。

同样,命令

   $ conan info <pkg-ref|path> --graph=file.html

将使用 <cache>/templates/output/info_graph.html 中的 HTML 模板。使用这些模板,您可以自定义输出文件、使用公司徽标进行品牌化、以不同的方式可视化内容等。

模板是一种强大的机制,我们将来可能会考虑进一步的应用,例如将生成器或其他文件模板化。

Conan 配置改进

Conan 1.27 添加了一个高度请求的功能:可以直接在 conan.conf 中声明所需的 Conan 版本。这允许团队强制所有成员并确保所有使用 Conan 的机器升级到所需的 Conan 版本。该功能很简单,只需添加

   required_conan_version = >=1.26

到 conan.conf 文件中。

conan config install 命令还学习了 2 个新参数

   $ conan config install --list

这将列出所有已安装的配置,如果调用不带参数的 conan config install,则这些配置将再次安装。

由于有时某些已安装的配置可能不再可用或可能已损坏,因此也可以使用以下命令从存储列表中删除这些配置:

   $ conan config install --remove=index

indexconan config install --list 提供的整数。

这些新命令是在基于 config_install_interval conan.conf 实用程序的计划配置安装获得高度关注和早期采用之后,根据检测到的需求而进行的后续开发。我们还将在后续版本中完善此功能,例如,在没有互联网连接时不会阻塞。

稳定 SCM 和版本

这并不是一个真正的新功能,但我们很高兴地宣布,在 scm 功能和 revisions 广泛采用之后,它们被宣布为稳定版本,并且从现在开始不会引入任何重大更改。

当与启用的 scm_to_conandata 配置一起使用时, scm 功能已稳定其行为。使用此功能, conanfile.py 永远不会被修改,并且评估 scm 属性并捕获存储库的提交和/或 URL 的结果将存储在 conandata.yml 文件中,同时确保密码不会被存储。



像往常一样,我们无法在本博文中介绍此版本中的所有内容,因此请访问 变更日志 以获取完整列表。

我们期待收到您的反馈。请升级并向 Github 问题 提交您的问题。享受 Conan 1.27!