containers / composefs

a file system for mounting container images
GNU General Public License v2.0
421 stars 29 forks source link

Add meson as an alternative to autotools with corresponding CI #300

Closed jluebbe closed 2 months ago

jluebbe commented 2 months ago

This adds support for meson as an alternative build system to autotools.

jluebbe commented 2 months ago

I've noticed that autotools builds both a shared and a static library, so I've updated this PR to do that as well.

cgwalters commented 2 months ago

Tried this out, it's so much faster than autotools! Nice!

Doing a diff -uNr between the two builds, I see:

--- /tmp/composefs-autotools/usr/lib64/pkgconfig/composefs.pc   2024-06-28 09:50:22.074577014 -0400
+++ /tmp/composefs-meson/usr/lib64/pkgconfig/composefs.pc       2024-06-28 09:49:34.856786643 -0400
@@ -1,13 +1,10 @@
 prefix=/usr
-exec_prefix=${prefix}
-libdir=/usr/lib64
 includedir=${prefix}/include
+libdir=${prefix}/lib64

-Name: Composefs
+Name: composefs
 Description: library for generating and using composefs images
 Version: 1.0.4
-Requires: 
-Requires.private:  libcrypto
+Requires.private: libcrypto
 Libs: -L${libdir} -lcomposefs
-Libs.private: -lcrypto
 Cflags: -I${includedir}

Which looks totally fine to me. Digging into the differences via diffoscope on the generated binaries and shared libraries, everything I see looks like it's an artifact of either:

But that's all fine.

Thanks so much for doing this! I'm still in favor of dropping autotools; will file a tracker issue where we can debate that.