Re: meson documentation build open issues

From: Andres Freund <andres(at)anarazel(dot)de>
To: Christoph Berg <myon(at)debian(dot)org>, Peter Eisentraut <peter(dot)eisentraut(at)enterprisedb(dot)com>, Andrew Dunstan <andrew(at)dunslane(dot)net>, Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>, pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: meson documentation build open issues
Date: 2023-11-08 23:21:21
Message-ID: 20231108232121.ww542mt6lfo6f26f@awork3.anarazel.de
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Hi,

I really like the idea of an 'help' target that prints the targets. It seemed
annoying to document such targets in both the sgml docs and the input for a
the help target. Particularly due to the redundancies between id attributes,
the target name etc.

First I generated the list of targets from within meson.build, only to later
realize that that would not work when building the docs via make. So I instead
added doc/src/sgml/meson-targets.txt which is lightly postprocessed for the
'help' target, and slightly more processed when building the docs.

That does have some downsides, e.g. it'd be more complicated to only print
targets if a relevant option is enabled. But I think it's acceptable that way.

Example output:

$ ninja help
[0/1 1 0%] Running external command help (wrapped by meson to set env)
Code Targets:
all Build everything other than documentation
backend Build backend and related modules
bin Build frontend binaries
contrib Build contrib modules
pl Build procedual languages

Documentation Targets:
docs Build documentation in multi-page HTML format
doc-html Build documentation in multi-page HTML format
doc-man Build documentation in man page format
doc/src/sgml/postgres-A4.pdf Build documentation in PDF format, with A4 pages
doc/src/sgml/postgres-US.pdf Build documentation in PDF format, with US letter pages
doc/src/sgml/postgres.html Build documentation in single-page HTML format
alldocs Build documentation in all supported formats

Installation Targets:
install Install postgres, excluding documentation
install-doc-html Install documentation in multi-page HTML format
install-doc-man Install documentation in man page format
install-docs Install documentation in multi-page HTML and man page formats
install-quiet Like "install", but installed files are not displayed
install-world Install postgres, including multi-page HTML and man page documentation
uninstall Remove installed files

Other Targets:
clean Remove all build products
test Run all enabled tests (including contrib)
world Build everything, including documentation
help List important targets

Because of the common source, some of the descriptions in the state of this
patch are a bit shorter than in the preceding commit. But I don't think that
hurts much.

Greetings,

Andres Freund

Attachment Content-Type Size
v2-0001-meson-Change-default-of-selinux-feature-option-to.patch text/x-diff 1.0 KB
v2-0002-docs-Document-with-selinux-Dselinux-options-centr.patch text/x-diff 2.7 KB
v2-0003-meson-docs-Add-doc-html-man-targets.patch text/x-diff 1.2 KB
v2-0004-meson-Add-world-target.patch text/x-diff 739 bytes
v2-0005-docs-meson-Add-documentation-for-important-build-.patch text/x-diff 7.3 KB
v2-0006-meson-Add-help-target-build-docs-from-a-common-so.patch text/x-diff 13.2 KB
v2-0007-meson-Add-Dpkglibdir-option.patch text/x-diff 2.8 KB

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Heikki Linnakangas 2023-11-08 23:48:59 Re: ResourceOwner refactoring
Previous Message Michael Paquier 2023-11-08 23:13:42 Re: speed up a logical replica setup