Re: [libgpiod]: Meson wrap for libgpiod
From: Bartosz Gołaszewski <hidden>
Date: 2021-08-13 07:45:12
pt., 13 sie 2021 o 04:24 Andrew Jeffery [off-list ref] napisał(a):
Hi Bartosz, I use libgpiod as part of supporting various platforms in OpenBMC[1][2], among other things. OpenBMC generally targets ARM SoCs, and this means cross-compiling applications and their dependencies as part of the day-to-day work. While cross-compilation for (complex) userspace can be achieved using distro systems like buildroot and openembedded/bitbake or their SDKs, the meson build system[3] provides dependency resolution and (cross) builds as explicit features through subprojects[4] and the wrap package system[5]. In my experience, these features are compelling. To help me develop userspace applications that depend on libgpiod I've opened a pull-request against meson's wrap database[6] to add libgpiod support for v1.6.3: https://github.com/mesonbuild/wrapdb/pull/130 Meson overlays this reimplementation of the build system along side the source as shipped in the tag, enabling meson dependency management without any impact on the upstream project. However, as you might guess, the wrap implementation is non-trivial as it transliterates the autotools scripts. While maintenance of this approach doesn't require any work on your part, it does have to adapt as the autotools scripts change. As such: How do you feel about switching from autotools to meson for the build system of libgpiod?
My main concern is this: I know autotools and feel comfortable using it. I don't know meson and would most likely struggle trying to maintain this new build system. Does it make any sense to have two build systems supported at the same time? Possibly with meson files in a special 'contrib' directory so that we make it clear it's a secondary build system and may not work when something in the autotools change? Maybe this way I'll get used to it and we'll change eventually? Does this make sense? Bart
If this is something you're interested in we can rebase the work in the pull-request above on libgpiod master and have something that's mostly ready. If you're not interested, I can at least carry on maintaining the wrap, but I felt like it was worth asking the question :) Interested in your thoughts! Andrew [1] https://www.openbmc.org/ [2] https://github.com/openbmc/openbmc/ [3] https://mesonbuild.com/ [4] https://mesonbuild.com/Subprojects.html [5] https://mesonbuild.com/Wrap-dependency-system-manual.html [6] https://mesonbuild.com/Wrapdb-projects.html