[PATCH] doc: add install_tag to meson

luca.boccassi at gmail.com luca.boccassi at gmail.com
Mon Dec 23 14:21:13 CET 2024


From: "bluca at debian.org" <bluca at debian.org>

This allows building and installing only the documentation, without
recompiling the whole project, using:

meson build -Denable_docs=true
meson compile -C build doc
meson install -C build --no-rebuild --tags doc

In Debian/Ubuntu the documentation is built separately from the binaries,
in a separate architecture-independent build job, so that it has to be
done only once, instead of once per supported architecture.

Signed-off-by: Luca Boccassi <bluca at debian.org>
---
This requires meson 0.60, so there's a warning printed as the minimum
defined is 0.57, but it's harmless, and the feature is only used when
explicitly invoked with --tags, which simply has to be done with newer
meson versions. If install --tags is not used, then there's no issue.

 doc/api/meson.build    | 3 +++
 doc/guides/meson.build | 1 +
 2 files changed, 4 insertions(+)

diff --git a/doc/api/meson.build b/doc/api/meson.build
index ac6eb8236d..9b66dce4f3 100644
--- a/doc/api/meson.build
+++ b/doc/api/meson.build
@@ -27,6 +27,7 @@ example = custom_target('examples.dox',
         depfile: 'examples.dox.d',
         install: get_option('enable_docs'),
         install_dir: htmldir,
+        install_tag: 'doc',
         build_by_default: get_option('enable_docs'))
 
 # set up common Doxygen configuration
@@ -76,6 +77,7 @@ doxy_html_build = custom_target('doxygen-html',
         command: [generate_doxygen, '@OUTPUT@', doxygen, '@INPUT@'],
         install: get_option('enable_docs'),
         install_dir: htmldir,
+        install_tag: 'doc',
         build_by_default: get_option('enable_docs'))
 
 doc_targets += doxy_html_build
@@ -90,6 +92,7 @@ doxy_man_build = custom_target('doxygen-man',
         command: [generate_doxygen, '@OUTPUT@', doxygen, '@INPUT@'],
         install: get_option('enable_docs'),
         install_dir: get_option('datadir'),
+        install_tag: 'doc',
         build_by_default: get_option('enable_docs'))
 
 doc_targets += doxy_man_build
diff --git a/doc/guides/meson.build b/doc/guides/meson.build
index f8bbfba9f5..04bfbd1326 100644
--- a/doc/guides/meson.build
+++ b/doc/guides/meson.build
@@ -22,6 +22,7 @@ html_guides = custom_target('html_guides',
         depfile: '.html.d',
         build_by_default: get_option('enable_docs'),
         install: get_option('enable_docs'),
+        install_tag: 'doc',
         install_dir: htmldir)
 
 doc_targets += html_guides
-- 
2.45.2



More information about the dev mailing list