7 ms·
It is supported. You create the packages using "conan create" from any place with a recipe, which puts the packages into your local conan data directory (called
by simfoo 8y ago
It is supported. You create the packages using "conan create" from any place with a recipe, which puts the packages into your local conan data directory (called the cache).
Any other recipe can then depend on any package that is already in the cache.
- adgasf 8y agoDoes this not assume the package is already on your system?
- simfoo 8y agoNo, conan create builds a package from a recipe. Provided you cloned sources form a git remote, you can locally build the conan package without conan ever hitting your network. You can even just export any recipes into your local cache without manually building the package and then let conan do the work when you require the package as a dependency (using --build all)
- adgasf 8y agoI didn't realize that a recipe was distinct from a package. In most systems there is only one concept: packages. So to see if I have this right: With Conan, to use a package from GitHub, I must download the recipe and add it to my local cache ("cache" seems like the wrong term here, maybe "registry" would be better?) and then I can install it? What about the transitive dependencies? Do I need to repeat the process for each of those?
- simfoo 8y agoThere are no conan packages on Github, usually you can find recipes along (or separate) the sources. Yeah, the term conan "cache" may be a bit misleading, as it is not only a cache but really your "local remote". As soon as a recipe is in your cache, you can depend on it from your own recipes/conan builds. The actual building of the package may happen during the registration of the recipe or during resolve time when you depend on a certain package configuration. Any transitive dependencies will be resolved and, in case of --build missing, the packages will be built automatically according to the recipe. So no, you do not need to build any dependency packages (including transitive dependencies)
- entelechy 8y agoBut all those dependency packages will be resolved against a conan server not against the origin eg. github. Furthermore I'd need to put every version of the package into the conan cache. This is impractical if a complex dependency graph as it would require the user to solve a SAT problem just to determine which packages and versions to put into the conan cache to avoid pulling from the conan server.