我们计划为我们的 C++ 代码设置 conan 存储库。我们只想向开发人员公开依赖项列表(lib/version@user/channel),而不是我们放在 conanfile.py 中的逻辑 我们正在计划这样做,因为我们正在创建一个围绕 conan 的包装器,它将有几个逻辑和检查。此包装器将向用户公开。他们不需要知道详细的逻辑和构建步骤。
有没有办法在 conanfile.py 之外实现需求(依赖项列表),并使列表可供用户使用,以便他们可以选择他们想要使用的库版本 - 类似(但不一样)到Maven 世界中的 pom.xml ?
最佳答案
@amit-jaim 的上述答案非常好。我想指出一些进一步的细节:
exports
,因为在缓存中使用conanfile时也会用到代码可能是这样的:
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/