[PATCH v3 06/11] meson: wire up generation of distribution archive
- From
Patrick Steinhardt <ps@pks.im>
- Date
- Jan 22, 2025, 12:05 UTC
- Message-ID
- <20250122-b4-pks-meson-additions-v3-6-5a51eb5d3dcd@pks.im>
- In-Reply-To
- <20250122-b4-pks-meson-additions-v3-0-5a51eb5d3dcd@pks.im>
Meson knows to generate distribution archives via `meson dist`. In addition to generating the archive itself, this target also knows to compile and execute tests from that archive, which helps to ensure that the result is an adequate drop-in replacement for the versioned project.
While this already works as-is, one omission is that we don't propagate the commit that this is built from into the resulting archive. This can be fixed though by adding a distribution script that propagates the version into the "version" file, which GIT-VERSION-GEN knows to read if present.
Use GIT-VERSION-GEN to populate that file. As the script is executed in the build directory, not in the directory where we generate the archive, we have to use a shell to resolve the "MESON_DIST_ROOT" environment variable.
Signed-off-by: Patrick Steinhardt <ps@pks.im> --- meson.build | 13 +++++++++++++ 1 file changed, 13 insertions(+)
diff --git a/meson.build b/meson.build index ab4f229436..a59072edf5 100644 --- a/meson.build +++ b/meson.build @@ -1947,6 +1947,19 @@ devenv.set('GIT_BUILD_DIR', meson.current_build_dir()) devenv.prepend('PATH', meson.current_build_dir() / 'bin-wrappers') meson.add_devenv(devenv) +# Generate the 'version' file in the distribution tarball. This is used via +# `meson dist -C <builddir>` to populate the source archive with the Git +# version that the archive is being generated from. +meson.add_dist_script( + shell, + '-c', + '"$1" "$2" "$3" --format="@GIT_VERSION@" "$MESON_DIST_ROOT/version"', + 'GIT-VERSION-GEN', + shell, + meson.current_source_dir() / 'GIT-VERSION-GEN', + meson.current_source_dir(), +) + summary({ 'curl': curl.found(), 'expat': expat.found(),
-- 2.48.1.321.gbf1f004a4a.dirty