我们计划为我们的 C++ 代码建立柯南存储库。我们只想向开发人员公开依赖项列表 (lib/version@user/channel),而不是我们放在 conanfile.py 中的逻辑检查。这个包装器将暴露给用户。他们不需要知道详细的逻辑和构建步骤。
有没有办法在 conanfile.py 之外实现需求(依赖列表),并让用户可以使用该列表,以便他们可以选择他们想要使用的库版本 - 类似的东西(不一样,虽然)到 Maven 世界中的 pom.xml?
最佳答案
@amit-jaim 的上述回答非常好。我想指出一些进一步的细节:
有必要
exports
.list文件,因为在缓存中使用conanfile时也会用到它conanfile 可以做得更像 pythonic
代码可能是这样的:
from conans import ConanFile, load
class HelloConan(ConanFile):
name = "Hello"
version = "0.1"
exports = "deps.list"
def requirements(self):
for r in load("deps.list").splitlines():
self.requires(r)
如果您希望能够从当前 conanfile 以外的目录运行 conan create
,则需要获取 conanfile 的当前位置,例如:
def requirements(self):
f = os.path.join(os.path.dirname(__file__), "deps.list")
for r in load(f).splitlines():
self.requires(r)
关于c++ - 将依赖列表(需求)与 conanfile.py 分开,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51823483/