Conan 1.7:Python 需求、Python 3.7 支持、SCM 反馈和可用性增强
暑假已经结束,我们带着新的 Conan 版本回归。我们进行了大量的内部重构,为适应众多最受期待的功能铺平了道路。以下是总结
引入 Python 需求
我们最受期待的功能之一现已在本次发布中实现。Python 需求改进了跨多个配方使用 Python 代码的可用性,使之能够子类化 ConanFile 并将其重用为 Conan 依赖项。
以下是使用 Python 需求的配方示例
from conans import python_requires
base = python_requires("MyBase/0.1@user/channel")
class PkgTest(base.MyBase):
pass
如您所见,它就像导入新的 python_requires 模块并在全局范围内使用它来要求 Python 配方的引用一样简单。
还可以不子类化 ConanFile 而只是重用函数
from conans import ConanFile, python_requires
base = python_requires("MyBuild/0.1@user/channel")
class PkgTest(ConanFile):
...
def build(self):
base.my_build(self.settings)
这已作为一项**实验性功能**发布,因此非常欢迎您的反馈。有关更多信息,请阅读更新的文档。
支持 Python 3.7
继Python 2.7 弃用通知之后,我们在本次发布中增加了对Python 3.7的支持。这应该在所有支持的平台上与当前的 Conan 要求一起使用。请进行测试,如果并非如此,请在问题跟踪器中报告。
根据您的反馈改进和修复 SCM
在Conan 1.4中发布的 SCM 功能正在获得越来越多的关注,并且我们感谢用户反馈和贡献,继续对其进行改进。
现在,SCM 会复制.git 文件夹,类似于git clone
,并在检出引用的修订版后正确初始化子模块,而不是立即在克隆后初始化为默认的*HEAD*
。
SVN 支持也正在开发中,将在下一个版本中提供。
其他可用性增强
-
您现在可以使用查询参数过滤上传:
conan upload --query
。 -
MSBuild 构建帮助程序中添加了许多增强功能。您现在可以并行运行构建并为 x86 架构设置正确的工具链。添加了一个新参数以包含自定义属性,例如
/p:MyCustomProperty=true
。 -
通过缓存远程请求提高了版本范围解析速度。
-
CMake 生成器现在管理 C++20 标志。