使用柯南包装时,如何避免两次列出依赖关系?

时间:2019-12-13 16:55:31

标签: c++ dependency-management conan

我目前正在尝试将项目打包为柯南打包文件。该项目已经通过Conan本身管理其依赖项,因此有一个conanfile.txt列出了其依赖项。我正在how the documentation suggests doing it之后进行回购。

现在,我想打包这个项目,但是我想不出什么简单的方法来简单地让conanfile.txt成为项目依赖项的参考,以及是否有可能利用已经存在的事实。而不是重新列出conanfile.py中的所有依赖项。我可以通过删除conanfile.txtusing the conanfile.py as a consumer来跳过它,但是这迫使我想避免在配方中对实际build()步骤进行更复杂的处理。我还想让开发库的人们能够按照他们喜欢的方式来构建它,除了依赖管理之外,不一定要通过柯南。

是否有办法从柯南配方中获取项目依赖关系,而不是在柯南配方的conanfile.txtrequires变量中列出两次依赖关系?如果可能的话,我想避免阅读conanfile.txt并手动将依赖项逐行输入requires变量中。

我知道我可能正在寻找一种不适合柯南设计和/或包装应该如何正常工作的方式。

1 个答案:

答案 0 :(得分:1)

您可以使用conanfile.txt,但是我强烈建议您使用conanfile.py。 您也可以运行conan install .,并安装conanfile.py中列出的所有依赖项。由于命令install不会运行您的build()部分,因此我看不到问题。

无论如何,您可以在conanfile.py中创建基类,以加载conanfile.txt内容并过滤需求。显然,这听起来比仅使用conanfile.py要复杂。

就功能而言,柯南无法加载两个文件。默认情况下,它将conanfile.py并忽略conanfile.txt。您不能同时使用参数或变量。