librapid icon indicating copy to clipboard operation
librapid copied to clipboard

Conan Support

Open samuel-emrys opened this issue 4 years ago • 6 comments

Hey! This library looks really cool. For your awareness, I've raised a request for a recipe for this library to be created for the Conan Center Index . Conan is a C++ package manager that I think would help distribute your library with dependency management, especially with respect to pulling openblas in. If you're interested in supporting a conan recipe, I'm sure they would love to receive a pull request.

samuel-emrys avatar Oct 28 '21 22:10 samuel-emrys

This looks like something that could be really useful! Thanks for setting this up!

Pencilcaseman avatar Oct 29 '21 09:10 Pencilcaseman

I should probably do this at some point... gotta clean things up first but I have not forgotten this :)

Pencilcaseman avatar Jun 17 '22 22:06 Pencilcaseman

There's one slight problem with the conan package.

Currently, there's no CUDA recipe for conan due to the licensig issue of redistributing CUDA binaries. Also, conan (conan-center-index) does not allow the redistribution of pre-built libraries, everything must be built from sources.

I could provide a conan recipe for librapid, but by the first look, some modules may not be supported out of the box via conan central repository.

poretga99 avatar Aug 07 '23 08:08 poretga99

I haven't yet had enough time to look into Conan and what it supports/allows, but other than CUDA and OpenBLAS, all of LibRapid can be compiled from source. The prebuilt OpenBLAS binaries are cloned from https://github.com/LibRapid/BuildOpenBLAS which periodically updates and updates the code. If Conan supports cloning git repos, this should be fine (?).

With regards to CUDA, I think packaging the binaries directly would be a bad idea due to device incompatibilities and the fact that the CUDA binaries are well over 1GB. Would it be possible to simply link with CUDA if it's detected on the system already? That's what the current CMakeLists.txt script does.

But yea, if you could set up a Conan recipe that'd be awesome!

Pencilcaseman avatar Aug 07 '23 14:08 Pencilcaseman

I see that conan recipe openBLAS already exists, therefore this shouldn't be a problem.

Regarding CUDA, we can leave an option for conan recipe, which lets user enable it and compile with CUDA, but the default conan recipe must keep it disabled.

I'll take a look the next week :)

poretga99 avatar Aug 07 '23 14:08 poretga99

Awesome! Let me know how it goes and if I can help with anything.

I may clean up the CMakeLists file soon as well, but the logic will remain the same. Not sure if that affects anything but thought I'd let you know.

Pencilcaseman avatar Aug 07 '23 15:08 Pencilcaseman