cmake和python项目的通用conan配方。
autorecipes的Python项目详细描述
用于C/C++和python项目的泛型版本。
C/C++
如果您的项目
- 使用CMake,
- 并安装package configuration file
- 定义变量<PACKAGE_NAME>_COMPONENTS
- 有一个组件列表,
- 并且为每一个定义一个目标<package_name>::<component>,
然后,您应该可以复制此配方以将其打包为conan:
fromconansimportpython_requiresCMakeConanFile=python_requires('autorecipes/[*]@jfreeman/testing').cmake()classRecipe(CMakeConanFile):name=CMakeConanFile.__dict__['name']version=CMakeConanFile.__dict__['version']
Python
如果您的项目
然后,您应该可以复制此配方以将其打包为conan:
fromconansimportpython_requiresPythonConanFile=python_requires('autorecipes/[*]@jfreeman/testing').python()classRecipe(PythonConanFile):name=PythonConanFile.__dict__['name']version=PythonConanFile.__dict__['version']
常见问题解答
为什么需要从中复制name和version属性 基阶级?
conan解析配方,查找name和version属性, 而不是仅仅执行它。因此,我们必须复制这些属性才能过去 那张支票。
此外,这些属性是descriptors。使用点访问它们 符号,比如CMakeConanFile.name,根据类计算它们 CMakeConanFile而不是你的配方,但是它们需要 键入以正确工作。
我可以覆盖一些属性吗?
是的。这些基类只提供默认值。