Re: meson documentation build open issues

Peter Eisentraut <peter@eisentraut.org>

From: Peter Eisentraut <peter@eisentraut.org>
To: Andres Freund <andres@anarazel.de>, Christoph Berg <myon@debian.org>, Andrew Dunstan <andrew@dunslane.net>, Tom Lane <tgl@sss.pgh.pa.us>, pgsql-hackers <pgsql-hackers@postgresql.org>
Date: 2023-11-09T14:39:32Z
Lists: pgsql-hackers
On 09.11.23 00:21, Andres Freund wrote:
> Example output:

This is very nice!

> $ 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

ok

> 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

This should probably read "Install everything other than documentation", 
to mirror "all" above.  (Otherwise one might think it installs just the 
backend.)

>    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

There is a mismatch between "docs" and "install-docs".  (As was 
previously discussed, I'm in the camp that "docs" should be html + man.)

>    install-quiet                Like "install", but installed files are not displayed
>    install-world                Install postgres, including multi-page HTML and man page documentation

Suggest "Install everything, including documentation" (matches "world").

>    uninstall                    Remove installed files
> 
> Other Targets:
>    clean                        Remove all build products
>    test                         Run all enabled tests (including contrib)
>    world                        Build everything, including documentation

Shouldn't that be under "Code Targets"?

>    help                         List important targets




Commits

  1. docs: meson: Change what 'docs' target builds

  2. meson: Add 'world' target

  3. meson: Document build targets, add 'help' target

  4. meson: docs: Add {html,man} targets, rename install-doc-*

  5. docs: Document --with-selinux/-Dselinux options centrally

  6. meson: Change default of 'selinux' feature option to auto

  7. meson: Fix doc installation path computation

  8. meson: Install missing example files

  9. meson: docs: Install all manpages, not just ones in man1

  10. meson: docs: Allow configuring simple/website style

  11. docs: html: load stylesheet via custom.css.source

  12. docs: html: copy images to output as part of xslt build

  13. meson: docs: Preparatory cleanups

  14. docs: Remove support for 'htmlhelp' format

  15. meson: add install-{docs,doc-html,doc-man} targets

  16. meson: add install-{quiet, world} targets

  17. meson: make install_test_files more generic, rename to install_files

  18. meson: rename html_help target to htmlhelp