build: include documentation in meson dist

Previously, the tarball generated by `meson dist` did not contain the
autogenerated documentation due to the way meson works (packaging the
latest revision control commit). This introduces a dist script which
builds & copies the generated documentation into the distribution
tarball.

https://gitlab.freedesktop.org/NetworkManager/NetworkManager/-/merge_requests/1811
This commit is contained in:
Jan Vaclav 2023-12-18 10:45:19 +01:00 committed by Íñigo Huguet
parent d37431e2db
commit 1c41066a40
2 changed files with 40 additions and 1 deletions

View file

@ -978,9 +978,13 @@ endif
if enable_docs
assert(enable_introspection, '-Ddocs=true requires -Dintrospection=true')
assert(meson.version().version_compare('>= 0.46.0'), '-Ddocs requires meson >= 0.46')
assert(meson.version().version_compare('>= 0.49.0'), '-Ddocs requires meson >= 0.49')
subdir('man')
subdir('docs')
meson.add_dist_script(
'tools/meson-dist-data.sh',
'--build-root', build_root
)
endif
configure_file(

35
tools/meson-dist-data.sh Executable file
View file

@ -0,0 +1,35 @@
#!/bin/bash
set -e
ensure_var_path() {
if [ "${!1}" = "" ]; then
echo "$0: Required variable $1 is not set, aborting" >&2
exit 1
fi
if [ ! -d "${!1}" ]; then
echo "$0: Path '${!1}' in $1 does not exist or is not directory, aborting" >&2
exit 1
fi
}
copy_from_build() {
cp -Tr "$MESON_BUILD_ROOT/$1" "$MESON_DIST_ROOT/$1"
}
if [ "$MESON_BUILD_ROOT" = "" ]; then
if [ "$1" = "--build-root" ]; then
MESON_BUILD_ROOT="$2"
fi
fi
ensure_var_path "MESON_DIST_ROOT"
ensure_var_path "MESON_BUILD_ROOT"
ensure_var_path "MESON_SOURCE_ROOT"
ninja -C "$MESON_BUILD_ROOT" all libnm-doc NetworkManager-doc
mkdir -p "$MESON_DIST_ROOT/docs/"
copy_from_build /docs/api/
copy_from_build /docs/libnm/
copy_from_build /man/