doc: add install_tag to meson

Message ID 20241223132220.138227-1-luca.boccassi@gmail.com (mailing list archive)
State New
Delegated to: Thomas Monjalon
Headers
Series doc: add install_tag to meson |

Checks

Context Check Description
ci/checkpatch warning coding style issues
ci/loongarch-compilation success Compilation OK
ci/loongarch-unit-testing success Unit Testing PASS
ci/Intel-compilation success Compilation OK
ci/intel-Testing success Testing PASS
ci/intel-Functional success Functional PASS
ci/github-robot: build success github build: passed
ci/iol-broadcom-Performance success Performance Testing PASS
ci/iol-mellanox-Performance success Performance Testing PASS
ci/iol-unit-amd64-testing success Testing PASS
ci/iol-unit-arm64-testing success Testing PASS
ci/iol-intel-Functional success Functional Testing PASS
ci/iol-sample-apps-testing success Testing PASS
ci/iol-compile-arm64-testing success Testing PASS
ci/iol-intel-Performance success Performance Testing PASS
ci/iol-marvell-Functional success Functional Testing PASS
ci/iol-abi-testing success Testing PASS
ci/iol-compile-amd64-testing success Testing PASS

Commit Message

Luca Boccassi Dec. 23, 2024, 1:21 p.m. UTC
From: "bluca@debian.org" <bluca@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@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(+)
  

Comments

Bruce Richardson Jan. 6, 2025, 10:29 a.m. UTC | #1
On Mon, Dec 23, 2024 at 01:21:13PM +0000, luca.boccassi@gmail.com wrote:
> From: "bluca@debian.org" <bluca@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@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(+)
> 
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
  

Patch

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