【发布时间】:2016-12-13 10:34:59
【问题描述】:
我正在开发一个 C++ 包“dep”,我想在项目“app 1”和“app 2”中使用它,同时开发“dep”、“app 1”和“app 2”。当前的工作流程包括调用
-
conan export在“dep”中,以及 -
conan install --build在“应用程序 1”和“应用程序 2”中
对于“dep”中所做的每一个小改动。这个过程很繁琐,每次都会导致“dep”完全重建。
我知道柯南中的“test_package”功能,但它要求项目“app 1”和“app 2”与“dep”驻留在同一棵树中,这不是一个选项。
在 Python 的 setuptools 中,可以使用“python setup.py develop”来安装一个包,这样任何更改都可以立即用于依赖它的任何包。是否可以在柯南中做类似的事情,在构建“app 1”和“app 2”之前更新“dep”(如果有任何更改)?
【问题讨论】:
-
我不完全理解您对“test_package”的意思要求项目 app1 和 app2 与“dep”在同一棵树中。
-
如果我对documentation的理解正确,可以使用“test_package”命令快速构建“dep”并测试一个包(例如“app 1”)。这接近我想要实现的,即轻松构建“dep”中的任何更改,然后构建“app 1”,然后运行“app 1”以查看是否一切正常。但是在我的例子中,“app 1”不能放在“dep”中的“test_package”文件夹中,如文档示例中所示。
-
也许你误解了“test_package”。它能够创建一个包,并使用任何所需数量的应用程序或包的测试来测试一个包。它的目的不是构建一个有用的应用程序,而只是测试一切是否正确构建和链接。如果 app1 和 app2 是您的“产品”或有用的应用程序,那么它们当然应该是独立的。所以关于“--build=missing”的答案可能已经足够好了。
标签: c++ deployment dependencies package-managers conan