Conan 1.27 版本发布:自定义模板、配置改进以及更透明的 CMake 集成
尽管由于 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
index
是 conan 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!