C++ 使用Conan打包时如何避免两次列出依赖项?
我目前正在尝试将一个项目打包为柯南软件包。该项目已经在管理其与柯南本身的依赖关系,因此有一个C++ 使用Conan打包时如何避免两次列出依赖项?,c++,dependency-management,conan,C++,Dependency Management,Conan,我目前正在尝试将一个项目打包为柯南软件包。该项目已经在管理其与柯南本身的依赖关系,因此有一个conanfile.txt,其中列出了其依赖关系。我在回购交易中这样做 现在我想对这个项目进行打包,但我不知道如何简单地将conanfile.txt作为项目依赖项的参考,以及是否可以利用它已经存在的事实,而不是在conanfile.py中重新列出所有依赖项。我可以通过删除conanfile.txt和跳过它,但这会迫使我在配方中对实际的build()步骤进行更复杂的处理,这是我想要避免的。我还想让开发库的人
conanfile.txt
,其中列出了其依赖关系。我在回购交易中这样做
现在我想对这个项目进行打包,但我不知道如何简单地将conanfile.txt
作为项目依赖项的参考,以及是否可以利用它已经存在的事实,而不是在conanfile.py
中重新列出所有依赖项。我可以通过删除conanfile.txt
和跳过它,但这会迫使我在配方中对实际的build()
步骤进行更复杂的处理,这是我想要避免的。我还想让开发库的人能够按照他们喜欢的方式来构建它,除了依赖关系管理之外,不一定通过柯南
有没有办法从Conan配方中获取项目依赖项,而不是在Conan配方的conanfile.txt
和requires
变量中列出两次依赖项?如果可能的话,我希望避免读取conanfile.txt
并手动将依赖项逐行输入requires
变量
我知道我可能正在寻找一种不适合柯南设计和/或包装一般工作方式的方法。您可以使用
conanfile.txt
,但我强烈建议改用conanfile.py
。
您还可以运行conan install.
,并安装conanfile.py
中列出的所有依赖项。由于命令install
不会运行build()
部分,因此我看不出问题所在
无论如何,您可以在conanfile.py
中创建一个基类,加载conanfile.txt
内容并过滤需求。显然,这听起来比只使用conanfile.py
要复杂得多
就功能而言,柯南不可能同时加载这两个文件。默认情况下,它将
conanfile.py
并忽略conanfile.txt
。您不能同时使用参数或变量进行强制。您没有说其他,但为了清楚起见,您可以使用.txt或.py显式(conan install../conanfile.txt
),当两者都存在时。如果您使用cmake构建项目,您可以在conanfile.py
中列出所有依赖项。使用cmake构建项目时,只需要依赖项,并跳过build()
步骤。正如您将conanfile.txt
传递给您的cmake一样。这种方法可以避免将依赖项列出两次。。。