From 7c686208a18f93ec1f955c289045251af5ef6056 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Ekl=C3=B6f?= Date: Sat, 24 Jul 2021 13:09:25 +0200 Subject: [PATCH] meson: add -Ddocs=disabled|enabled|auto command line option When enabled (the default, if scdoc is found), we build and install the man pages, example foot.ini, readme, changelog and license files. --- CHANGELOG.md | 1 + INSTALL.md | 6 +++++- meson.build | 15 ++++++++++----- meson_options.txt | 2 ++ 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 84d333f9..1857c631 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -34,6 +34,7 @@ * Window title in the CSDs (https://codeberg.org/dnkl/foot/issues/638). +* `-Ddocs=disabled|enabled|auto` meson command line option. ### Changed diff --git a/INSTALL.md b/INSTALL.md index d51275f3..1d0366c1 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -64,7 +64,7 @@ In addition to the dev variant of the packages above, you need: * ninja * wayland protocols * ncurses (needed to generate terminfo) -* scdoc (for man page generation) +* scdoc (for man page generation, not needed if documentation is disabled) * llvm (for PGO builds with Clang) * [tllist](https://codeberg.org/dnkl/tllist) [^1] @@ -130,11 +130,15 @@ Available compile-time options: | Option | Type | Default | Description | Extra dependencies | |-------------------------------|---------|-----------------------|---------------------------------------|--------------------| +| `-Ddocs` | feature | `auto` | Builds and install documentation | scdoc | | `-Dime` | bool | `true` | Enables IME support | None | | `-Dgrapheme-clustering` | feature | `auto` | Enables grapheme clustering | libutf8proc | | `-Dterminfo` | feature | `auto` | Build terminfo files | `tic` (ncurses) | | `-Dterminfo-install-location` | string | `${datadir}/terminfo` | Where to install the terminfo files | None | +Documentation includes the man pages, the example `foot.ini`, readme, +changelog and license files. + The two `terminfo` options are related, but control different aspects of how the terminfo files are built, installed and used. diff --git a/meson.build b/meson.build index 09d86ff7..4d0b8f13 100644 --- a/meson.build +++ b/meson.build @@ -238,20 +238,25 @@ else terminfo_install_location = 'disabled' endif -install_data( - 'LICENSE', 'README.md', 'CHANGELOG.md', - install_dir: join_paths(get_option('datadir'), 'doc', 'foot')) install_data( 'foot.desktop', 'foot-server.desktop', install_dir: join_paths(get_option('datadir'), 'applications')) -install_data('foot.ini', install_dir: join_paths(get_option('datadir'), 'foot')) + +scdoc = dependency('scdoc', native: true, required: get_option('docs')) +if scdoc.found() + install_data( + 'LICENSE', 'README.md', 'CHANGELOG.md', + install_dir: join_paths(get_option('datadir'), 'doc', 'foot')) + install_data('foot.ini', install_dir: join_paths(get_option('datadir'), 'foot')) + subdir('doc') +endif subdir('completions') -subdir('doc') subdir('icons') summary( { + 'Documentation': scdoc.found(), 'IME': get_option('ime'), 'Grapheme clustering': utf8proc.found(), 'Terminfo': tic.found(), diff --git a/meson_options.txt b/meson_options.txt index 57b5721a..c8273155 100644 --- a/meson_options.txt +++ b/meson_options.txt @@ -1,3 +1,5 @@ +option('docs', type: 'feature', description: 'Build and install documentation (man pages, example foot.ini, readme, changelog, license etc).') + option('ime', type: 'boolean', value: true, description: 'IME (Input Method Editor) support') option('grapheme-clustering', type: 'feature',