From: Patrick Steinhardt Date: Thu, 11 Sep 2025 09:16:06 +0000 (+0200) Subject: meson: introduce a "docs" alias to compile documentation only X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=197f0d0f390ef2f1e573a57c27ed7db8df7a46fd;p=thirdparty%2Fgit.git meson: introduce a "docs" alias to compile documentation only Meson does not currently provide a target to compile documentation, only. Instead, users needs to compile the whole project, which may be way more than they really intend to do. Introduce a new "docs" alias to plug this gap. This alias can be invoked e.g. with `meson compile docs`. Signed-off-by: Patrick Steinhardt Signed-off-by: Junio C Hamano --- diff --git a/Documentation/howto/meson.build b/Documentation/howto/meson.build index 81000028c0..ece20244af 100644 --- a/Documentation/howto/meson.build +++ b/Documentation/howto/meson.build @@ -29,7 +29,7 @@ howto_index = custom_target( output: 'howto-index.adoc', ) -custom_target( +doc_targets += custom_target( command: asciidoc_html_options, input: howto_index, output: 'howto-index.html', @@ -51,7 +51,7 @@ foreach howto : howto_sources capture: true, ) - custom_target( + doc_targets += custom_target( command: asciidoc_html_options, input: howto_stripped, output: fs.stem(howto_stripped.full_path()) + '.html', diff --git a/Documentation/meson.build b/Documentation/meson.build index 4404c623f0..f0169fcf9c 100644 --- a/Documentation/meson.build +++ b/Documentation/meson.build @@ -375,7 +375,7 @@ foreach manpage, category : manpages output: fs.stem(manpage) + '.xml', ) - custom_target( + doc_targets += custom_target( command: [ xmlto, '-m', '@INPUT0@', @@ -398,7 +398,7 @@ foreach manpage, category : manpages endif if get_option('docs').contains('html') - custom_target( + doc_targets += custom_target( command: asciidoc_common_options + [ '--backend=' + asciidoc_html, '--doctype=manpage', @@ -450,7 +450,7 @@ if get_option('docs').contains('html') depends: documentation_deps, ) - custom_target( + doc_targets += custom_target( command: [ xsltproc, '--xinclude', @@ -479,7 +479,7 @@ if get_option('docs').contains('html') ] foreach article : articles - custom_target( + doc_targets += custom_target( command: asciidoc_common_options + [ '--backend=' + asciidoc_html, '--out-file=@OUTPUT@', diff --git a/Documentation/technical/meson.build b/Documentation/technical/meson.build index a13aafcfbb..858af811a7 100644 --- a/Documentation/technical/meson.build +++ b/Documentation/technical/meson.build @@ -46,7 +46,7 @@ api_index = custom_target( output: 'api-index.adoc', ) -custom_target( +doc_targets += custom_target( command: asciidoc_html_options, input: api_index, output: 'api-index.html', @@ -56,7 +56,7 @@ custom_target( ) foreach article : api_docs + articles - custom_target( + doc_targets += custom_target( command: asciidoc_html_options, input: article, output: fs.stem(article) + '.html', diff --git a/contrib/contacts/meson.build b/contrib/contacts/meson.build index 73d82dfe52..c8fdb35ed9 100644 --- a/contrib/contacts/meson.build +++ b/contrib/contacts/meson.build @@ -20,7 +20,7 @@ if get_option('docs').contains('man') output: 'git-contacts.xml', ) - custom_target( + doc_targets += custom_target( command: [ xmlto, '-m', '@INPUT@', @@ -39,7 +39,7 @@ if get_option('docs').contains('man') endif if get_option('docs').contains('html') - custom_target( + doc_targets += custom_target( command: asciidoc_common_options + [ '--backend=' + asciidoc_html, '--doctype=manpage', diff --git a/contrib/subtree/meson.build b/contrib/subtree/meson.build index 98dd8e0c8e..46cdbcc30c 100644 --- a/contrib/subtree/meson.build +++ b/contrib/subtree/meson.build @@ -38,7 +38,7 @@ if get_option('docs').contains('man') output: 'git-subtree.xml', ) - custom_target( + doc_targets += custom_target( command: [ xmlto, '-m', '@INPUT@', @@ -57,7 +57,7 @@ if get_option('docs').contains('man') endif if get_option('docs').contains('html') - custom_target( + doc_targets += custom_target( command: asciidoc_common_options + [ '--backend=' + asciidoc_html, '--doctype=manpage', diff --git a/meson.build b/meson.build index 5dd299b496..f7dd6ee30d 100644 --- a/meson.build +++ b/meson.build @@ -2099,11 +2099,18 @@ endif subdir('bin-wrappers') if get_option('docs') != [] + doc_targets = [] subdir('Documentation') endif subdir('contrib') +# Note that the target is intentionally configured after including the +# 'contrib' directory, as some tool there also have their own manpages. +if get_option('docs') != [] + alias_target('docs', doc_targets) +endif + exclude_from_check_headers = [ 'compat/', 'unicode-width.h',