Open dankamongmen opened 4 years ago
I've been added to the Conan EAP by @jgsogo. He's a good man, and thorough.
hey @grendello just wondering if you've ever wrapped something up for conan
Nope, I prefer to use direct dependencies in the form of distro provided packages. At least on Linux, which has a number of very decent packaging solutions. Conan (or others) would be useful if we want to target distros which have no decent package management system (Slack...?) or for Windows. For macOS (when it works) we'll probably want to write a Homebrew recipe (I did that for other software before) and be done with it.
Hi!
Using dependencies installed in the system via any system package manager is suitable if there aren't conflicts or you don't want to test the library/application using different versions of those dependencies (assuming those dependencies can be installed system-wide).
With Conan (or any other package manager) it is really easy to override dependencies in the graph and check if they work as expected... or to cross-compile for other architectures, or use different compiler versions. Basically it makes it possible to isolate the project from the running machine, dependencies of this project won't interfere with any other running application or any other project being developed in the same machine.
Of course, you get these advantages paying a bit of complexity... but IMHO, it is worth it.
@jgsogo using package manager like Conan can easily get you in trouble when you want to package your app using a distro packaging approach. Using Conan et.al. is fine when you statically link against those libraries, but then again you get in trouble with projects like Debian which practically requires linking against the provided libraries. And if the library doesn't exist, it needs to be packaged for Debian before your software can be included in the repository. I'm not saying Conan and friends are bad, they do have their uses (especially on systems without any real package management or with software that's not intended to be distributed in a distro-specific manner) - but caution should be taken not to make your software non-distributable in a "standard" way.
That's really good feedback, @grendello. It is possible to proxy a system library using a Conan recipe, but those are not the kind of Conan recipes that are gathering attention from our community right now. I totally agree Conan et al. are more useful for development than distribution right now.
@jgsogo i'm definitely looking to get a conan recipe up and going. i spent two hours or so on it back about a month ago, and put it aside as it seemed more complex than any other packaging i'd been doing. i fully intend to get back on it, though i would absolutely love for someone else to do it, too =].
If you submit a PR with a first version of the recipe to https://github.com/conan-io/conan-center-index we can help you with the details, or we can merge it if it is good enough and then improve it in the future. We have a very active community of users 😺 .
If you submit a PR with a first version of the recipe to https://github.com/conan-io/conan-center-index we can help you with the details, or we can merge it if it is good enough and then improve it in the future. We have a very active community of users .
i will take advantage of this friendly offer today!
I now have a recipe which builds notcurses and a test program, and successfully launches the latter. We require
"libunistring/0.9.10" and "openimageio/2.2.7.0" (i didn't see ffmpeg/libav). i'm gonna go ahead and submit this, and get some feedback.
Just did a bunch of work on our conan recipe, and we're almost there. Just need to break libnotcurses and libnotcurses++ into different Components, and we ought be done.
We might as well wait for 2.1.6 to drop, since we'll need a third Component for notcurses-core
at that point. Once 2.1.6 is cut, though, let's add the two new Components and request a fresh review.
ok @jgsogo , i've got two problems left:
tinfo
from recipe ncurses
, not full ncurses
. linking with the latter will fail. it seems i ought be able to require
ncurses.tinfo
to do this, but it always fails. any suggestions?import
in test_package/conanfile.py
, but i need that for os
, and all the other conanfile.py
s through the tree seem to be doing this. what's up?went ahead and updated our outstanding patch to 2.3.1, and let's see what happens.
Conan is one of several emerging C/C++ "package managers" ala those used by node, go, and rust. We should get Notcurses in there early (NCURSES is already present):
https://conan.io/center/ https://github.com/conan-io/conan-center-index/blob/master/docs/how_to_add_packages.md