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.
This commit is contained in:
Daniel Eklöf 2021-07-24 13:09:25 +02:00
parent b8d68afbb9
commit 7c686208a1
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
4 changed files with 18 additions and 6 deletions

View file

@ -34,6 +34,7 @@
* Window title in the CSDs * Window title in the CSDs
(https://codeberg.org/dnkl/foot/issues/638). (https://codeberg.org/dnkl/foot/issues/638).
* `-Ddocs=disabled|enabled|auto` meson command line option.
### Changed ### Changed

View file

@ -64,7 +64,7 @@ In addition to the dev variant of the packages above, you need:
* ninja * ninja
* wayland protocols * wayland protocols
* ncurses (needed to generate terminfo) * 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) * llvm (for PGO builds with Clang)
* [tllist](https://codeberg.org/dnkl/tllist) [^1] * [tllist](https://codeberg.org/dnkl/tllist) [^1]
@ -130,11 +130,15 @@ Available compile-time options:
| Option | Type | Default | Description | Extra dependencies | | Option | Type | Default | Description | Extra dependencies |
|-------------------------------|---------|-----------------------|---------------------------------------|--------------------| |-------------------------------|---------|-----------------------|---------------------------------------|--------------------|
| `-Ddocs` | feature | `auto` | Builds and install documentation | scdoc |
| `-Dime` | bool | `true` | Enables IME support | None | | `-Dime` | bool | `true` | Enables IME support | None |
| `-Dgrapheme-clustering` | feature | `auto` | Enables grapheme clustering | libutf8proc | | `-Dgrapheme-clustering` | feature | `auto` | Enables grapheme clustering | libutf8proc |
| `-Dterminfo` | feature | `auto` | Build terminfo files | `tic` (ncurses) | | `-Dterminfo` | feature | `auto` | Build terminfo files | `tic` (ncurses) |
| `-Dterminfo-install-location` | string | `${datadir}/terminfo` | Where to install the terminfo files | None | | `-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 The two `terminfo` options are related, but control different aspects
of how the terminfo files are built, installed and used. of how the terminfo files are built, installed and used.

View file

@ -238,20 +238,25 @@ else
terminfo_install_location = 'disabled' terminfo_install_location = 'disabled'
endif endif
install_data(
'LICENSE', 'README.md', 'CHANGELOG.md',
install_dir: join_paths(get_option('datadir'), 'doc', 'foot'))
install_data( install_data(
'foot.desktop', 'foot-server.desktop', 'foot.desktop', 'foot-server.desktop',
install_dir: join_paths(get_option('datadir'), 'applications')) 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('completions')
subdir('doc')
subdir('icons') subdir('icons')
summary( summary(
{ {
'Documentation': scdoc.found(),
'IME': get_option('ime'), 'IME': get_option('ime'),
'Grapheme clustering': utf8proc.found(), 'Grapheme clustering': utf8proc.found(),
'Terminfo': tic.found(), 'Terminfo': tic.found(),

View file

@ -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('ime', type: 'boolean', value: true, description: 'IME (Input Method Editor) support')
option('grapheme-clustering', type: 'feature', option('grapheme-clustering', type: 'feature',