使用柯南打包时如何避免列出两次依赖?



我目前正在尝试将项目打包为柯南包。该项目已经使用柯南本身管理其依赖项,因此有一个列出其依赖项的conanfile.txt。我正在按照文档建议的方式在回购中执行此操作。

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

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

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

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

无论如何,您可以在conanfile.py中创建一个基类,用于加载conanfile.txt内容并筛选需求。忘记了,这听起来比只使用conanfile.py更复杂。

在功能方面,没有办法,柯南不会加载这两个文件。默认情况下,它将conanfile.py并忽略conanfile.txt。您不能通过参数或变量来强制。

最新更新