Martinsos / edlib

Lightweight, super fast C/C++ (& Python) library for sequence alignment using edit (Levenshtein) distance.
http://martinsos.github.io/edlib
MIT License
493 stars 162 forks source link

Figure out if we should remove CMake #164

Open Martinsos opened 3 years ago

Martinsos commented 3 years ago

With Meson, we don't need CMake. However, it might be useful to have it, so people can more easily use Edlib in their CMake projects. On the other hand, that means we have to maintain it which is not great. So what do we do? I would gladly drop it, but I don't know what effect would it have on Edlib users.

This has been discussed here: https://github.com/Martinsos/edlib/pull/161#issuecomment-705203253 .

ekg commented 3 years ago

I've found CMake useful. It is another thing to maintain, but it will help others who aren't using meson.

cjw85 commented 3 years ago

For my money it should be kept. I'm unconvinced that meson is as popular as it's proponents sometimes claim, and or better or worse cmake is more the entrenched standard. (I just did a quick search for stats but couldn't find any).

cjw85 commented 3 years ago

Not the most scientific experiment but grepping through bioconda recipes their are 497 occurences of "cmake" and only 31 of "meson". The meson hits appear to be exclusively PacBio related software.

Martinsos commented 3 years ago

@ekg and @cjw85 thanks for pitching in! What have you found CMake useful regarding, would you mind elaborating in more details? I am asking because I am wondering if Meson could easily replace that use case or not. CMake is certainly much more used than Meson, but Meson seems to be much easier to maintain / read. Is it adding Edlib to other CMake projects? While I actually don't understand all of the context well, from what I understood this can also be done via pkg-config, which Meson generates -> is that much harder?

ekg commented 3 years ago

During an average workday, I probably build 2-3 new pieces of C/C++ code. 2/3 of them use Make, and 1/3 uses CMake. I'm surprised to have never run into meson. I won't doubt that it's better than CMake (it wouldn't be hard) but it's worth noting that getting the right CMake executable set up is already a point of difficulty for users.

I have also included edlib in other CMake-based projects. It's easy to do. Will I be able to use meson with minimal changes and do the same kind of inclusion?

On Mon, Oct 12, 2020, 01:27 Martin Šošić notifications@github.com wrote:

@ekg https://github.com/ekg and @cjw85 https://github.com/cjw85 thanks for pitching in! What have you found CMake useful regarding, would you mind elaborating in more details? I am asking because I am wondering if Meson could easily replace that use case or not. CMake is certainly much more used than Meson, but Meson seems to be much easier to maintain / read.

— You are receiving this because you were mentioned. Reply to this email directly, view it on GitHub https://github.com/Martinsos/edlib/issues/164#issuecomment-706784920, or unsubscribe https://github.com/notifications/unsubscribe-auth/AABDQEPJN2NMVOIV55JRAWDSKI5PDANCNFSM4SK7F4MQ .

cjw85 commented 3 years ago

I'd echo Erik's comments, other than not being surprised about not running into meson: I'm not surprised because its simply not widely used (as far as I can tell, the only other time I've come across it was this PR). Maybe Erik's surprise is based on it appearing nicer to use and why aren't we all using it?

Because of this unfamiliarity I can't really comment on how meson interacts with other projects using other build systems.

I should be clear I'm not saying "don't use meson", I'm all for breaking the mould of entrenched standards; but I do think it would be a mistake to drop CMake, or at least not include in your README how to use edlib within projects using CMake (you already have some great docs there).

Martinsos commented 3 years ago

@ekg wow that is some interesting kind of workday, when you build couple of new pieces of C/C++ code every day!!

@ekg and @cjw85 I get what you are saying. On one hand I would like to drop CMake and go just with Meson because it seems easier to maintain. On the other hand, I don't want to make it harder for people to use Edlib and fact is, CMake is the dominant solution and having CMake in Edlib enables easy integration. Solution could be what @cjw85 mentioned: If I could provide easy way for CMake users to plug in Edlib built with Meson, then they would not loose anything. Good docs might be enough for this, however right now I also don't know enough I would have to research it, so for now I will certainly leave CMake.

@ekg when you said you included edlib in other CMake-based projects and it's easy to do -> how do you do it? Is it as described in Edlib docs, or smth different?

What about plugging edlib in Cmake project via pkg-config, is that something you would be comfortable with / have ever done?