New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Replace build system with meson #24
Conversation
If that is of interest, meson is fairly easy to hook up with CI tools such as travis: https://mesonbuild.com/Continuous-Integration.html |
I disagree on having an alternative build system: you should replace it completely. Please follow the conventions we use on dav1d, for the meson file, though. Including proper licensing, warning levels, windows_flags and version_api +abi numbering |
Fair enough, however I wouldn't feel comfortable proposing a patch doing that without testing on all the target platforms, and that's a larger time commitment than I'm ready to make right now :)
I'll take a look, though it would be more helpful if you could make specific comments inline instead of asking me to infer conventions from a seemingly-unrelated project's build system ;) |
You can still propose a patch and we will test it on all platforms. |
I agree: we will test it. |
a7d493c
to
2decad5
Compare
There you go, removed autotools, took as much inspiration as I could from the dav1d build system, but some things you asked were not applicable (eg the previous build system didn't use a soname). Hope that's useful. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks a lot for your work on this! I did a quick review and noted some things inline.
Of course it did, but it was set to 0, which is OK for a new library.
It is, Thanks very much. |
Anyway, this looks very nice, and in the right direction. |
hrm sorry got confused with so version for a second here (that was in answer to your ABI numbering request) :) |
2decad5
to
0d89f59
Compare
It seems there is still no (so)version set for the library. cc @jbkempf Unfortunately there is a little gotcha, libtool versioning works different from what one would expect so with version 0:0:0 on macOS you end up with:
This is extremely confusing as the version in the file name does not match the compatibility version or current version… With meson setting a version of 0.0.0 like so:
results in
as one might expect. Of course this means that when we now set version 0.0.0 in meson, the filename will match with autotools-built versions but the actual version information will be different… |
I don't think we care, for now, tbh. |
Is there anything more I can do to help this go ahead, or is it simply a matter of someone finding time to test on the relevant platforms? I'll be testing this on a Windows (10) later, what other platforms will require testing? |
Had to patch a few things here and there, but my branch now builds with MSVC, and both executables work just fine :) Side note: I needed |
Can we maybe split MSVC support into a new PR? |
I don't think we should mix these two things into one discussion… |
cf99714
to
fca8c6e
Compare
@ePirat no problem, though I'll propose things sequentially then. Removed my MSVC changes from the branch. |
I've also tested with msys2 mingw64, the current state of the branch builds just fine there |
LGTM. To me, this is good enough to merge, for now. |
So, someone care to press the green button ? :) |
fca8c6e
to
9e8f8bc
Compare
9e8f8bc
to
47ba15c
Compare
Had forgotten to set install: true on the targets we want installed |
ping :) |
Why did you add an uninstalled pc file? Did we have one before? It doesn't seem so. |
Additionally meson has no support for uninstalled pc files yet (afaik) using the proper module so I would prefer to not add one before meson supports that. And personally I do not see the need for the uninstalled pc file variant. |
There was no uninstalled PC file before no, but it's a nice practice. I don't depend on it anyway |
47ba15c
to
f187e1a
Compare
@ePirat , removed, don't think this is worth an argument :) There's one other sore point however which I'd like to solve to be able to use libmicrodns as a subproject: renaming the |
ping :) |
🎉 |
whee! |
Meson is a fast, user-friendly build system, and many projects have already adopted it as a replacement for autotools.
This port has only been tested on Linux for now, I believe it should build fine on Windows / Mac but haven't tested these platforms so take it with a grain of salt.
I hope this is a welcome proposal :)