Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

C++ Libraries ecosystem using CMake and Ryppl

Tags:

c++

cmake

I am interested in building a cross-platform C++ Library and distributing it in source form. I want the consumers of this library to be able to acquire it, build it and consume it inside their software very easily on whatever platform they are working on and for whatever platform they are targeting. At the same time while building my library, I also want to be able to consume other popular OSS libraries through a similar mechanism.

I see that CMake and Ryppl were created with these intentions in mind and to some extent they do solve some of these problems, especially the build problem. But I don't quite know how exactly to go about achieving the above mentioned goals. Is it OK to settle on CMake as the build solution? How do I solve the library acquisition and distribution problem? Simply host the sources somewhere and let people discover, download and build them? Or is there a better way?

like image 787
Raman Sharma Avatar asked Nov 12 '22 21:11

Raman Sharma


1 Answers

At the time of writing there is no accepted solution that handles everything you want. CMake gives you cross-platform builds and git (with submodules) gives you a way to manage source-level dependencies if all other projects are using CMake. But, in practice, many common dependencies you project wil need don't use CMake, or even Git.

Ryppl is meant to solve this, but progress is slow because the challenge is such a hard one.

Arguably, the most successful solution so far is to write header-only libraries. This is common practice and means your users just include your files, and their build system of choice takes care of everthing. There are no binary dependencies to manage.

like image 54
thehouse Avatar answered Nov 15 '22 06:11

thehouse