build: Pre-generate man pages at dist time
The man pages don't change very often, but draw in both docbook and asciidoc. The latter is particularly problematic, as some distros still ship only a python2 version of the tool. Address this by generating the man pages at dist time, and including the result in the tarball. Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1553>
This commit is contained in:
10
meson.build
10
meson.build
@ -37,6 +37,7 @@ gst_req = '>= 0.11.92'
|
||||
nm_req = '>= 1.10.4'
|
||||
secret_req = '>= 0.18'
|
||||
|
||||
fs = import('fs')
|
||||
gnome = import('gnome')
|
||||
i18n = import('i18n')
|
||||
|
||||
@ -126,8 +127,12 @@ else
|
||||
endif
|
||||
|
||||
if get_option('man')
|
||||
a2x = find_program('a2x')
|
||||
subdir('man')
|
||||
if fs.exists('man/gnome-shell.1')
|
||||
install_man('man/gnome-shell.1')
|
||||
else
|
||||
a2x = find_program('a2x')
|
||||
subdir('man')
|
||||
endif
|
||||
endif
|
||||
|
||||
mutter_typelibdir = mutter_dep.get_pkgconfig_variable('typelibdir')
|
||||
@ -287,6 +292,7 @@ if get_option('gtk_doc')
|
||||
endif
|
||||
|
||||
meson.add_install_script('meson/postinstall.py')
|
||||
meson.add_dist_script('meson/generate-manpages.py')
|
||||
|
||||
summary_options = {
|
||||
'networkmanager': get_option('networkmanager'),
|
||||
|
24
meson/generate-manpages.py
Normal file
24
meson/generate-manpages.py
Normal file
@ -0,0 +1,24 @@
|
||||
#!/usr/bin/env python3
|
||||
|
||||
import os
|
||||
from pathlib import PurePath
|
||||
from asciidocapi import AsciiDocAPI
|
||||
|
||||
man_pages = [
|
||||
'man/gnome-shell.1',
|
||||
'subprojects/extensions-tool/man/gnome-extensions.1',
|
||||
]
|
||||
|
||||
sourceroot = os.environ.get('MESON_SOURCE_ROOT')
|
||||
distroot = os.environ.get('MESON_DIST_ROOT')
|
||||
|
||||
asciidoc = AsciiDocAPI()
|
||||
|
||||
for man_page in man_pages:
|
||||
page_path = PurePath(man_page)
|
||||
src = PurePath(sourceroot, page_path.with_suffix('.txt'))
|
||||
dst = PurePath(distroot, page_path)
|
||||
stylesheet = src.with_name('stylesheet.xsl')
|
||||
|
||||
asciidoc.options('--xsl-file', os.fspath(stylesheet))
|
||||
asciidoc.execute(os.fspath(src), outfile=os.fspath(dst))
|
@ -6,6 +6,7 @@ project('gnome-extensions-tool', 'c',
|
||||
|
||||
gio_req = '>= 2.56.0'
|
||||
|
||||
fs = import('fs')
|
||||
gnome = import('gnome')
|
||||
i18n = import('i18n')
|
||||
|
||||
@ -46,9 +47,12 @@ if bash_completion.found()
|
||||
endif
|
||||
|
||||
if get_option('man')
|
||||
a2x = find_program('a2x')
|
||||
|
||||
subdir('man')
|
||||
if fs.exists('man/gnome-extensions.1')
|
||||
install_man('man/gnome-extensions.1')
|
||||
else
|
||||
a2x = find_program('a2x')
|
||||
subdir('man')
|
||||
endif
|
||||
endif
|
||||
|
||||
if not meson.is_subproject()
|
||||
|
Reference in New Issue
Block a user