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

Use Meson in CI #162

Open Martinsos opened 3 years ago

Martinsos commented 3 years ago

Now that we have Meson as build tool, we would like to use it as main build tool in the CI.

Here are some suggestions on how to do this:

https://github.com/Martinsos/edlib/pull/161#discussion_r501868799 https://github.com/Martinsos/edlib/pull/161#discussion_r501992301

cdunn2001 commented 3 years ago

I'm simplifying the travisci setup for jsoncpp.

I have to say that homebrew makes OSX setup so easy, I'd recommend it. I don't think you need to bother with pyp for ninja. No real advantage on OSX.

Actually, the whole meson/ninja setup is pretty easy. cmake is harder.

I'd recommend copying our travis/appveyor stuff, but your linux/cmake build is already faster than ours. (I think ours is slower only because we use cpp-coveralls for code-coverage.) In theory, one big advantage of our current setup over yours is sudo: false. Without sudo, TravisCI can use a VM for your build, so it finds an available host quicker. At least, that used to be true. Today, it seems like everything is pretty quick.

So here is what I recommend for now: Add meson to your homebrew section of .travis.yml for OSX (where you already have ninja), and build your code twice on OSX in a single job: Once with cmake and once with meson. That's very quick (< 1min) and easy to maintain.

Good luck!