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:
parent
88ac08b542
commit
9ef9a5ff8a
10
meson.build
10
meson.build
@ -37,6 +37,7 @@ gst_req = '>= 0.11.92'
|
|||||||
nm_req = '>= 1.10.4'
|
nm_req = '>= 1.10.4'
|
||||||
secret_req = '>= 0.18'
|
secret_req = '>= 0.18'
|
||||||
|
|
||||||
|
fs = import('fs')
|
||||||
gnome = import('gnome')
|
gnome = import('gnome')
|
||||||
i18n = import('i18n')
|
i18n = import('i18n')
|
||||||
|
|
||||||
@ -126,8 +127,12 @@ else
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
if get_option('man')
|
if get_option('man')
|
||||||
a2x = find_program('a2x')
|
if fs.exists('man/gnome-shell.1')
|
||||||
subdir('man')
|
install_man('man/gnome-shell.1')
|
||||||
|
else
|
||||||
|
a2x = find_program('a2x')
|
||||||
|
subdir('man')
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
mutter_typelibdir = mutter_dep.get_pkgconfig_variable('typelibdir')
|
mutter_typelibdir = mutter_dep.get_pkgconfig_variable('typelibdir')
|
||||||
@ -287,6 +292,7 @@ if get_option('gtk_doc')
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
meson.add_install_script('meson/postinstall.py')
|
meson.add_install_script('meson/postinstall.py')
|
||||||
|
meson.add_dist_script('meson/generate-manpages.py')
|
||||||
|
|
||||||
summary_options = {
|
summary_options = {
|
||||||
'networkmanager': get_option('networkmanager'),
|
'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'
|
gio_req = '>= 2.56.0'
|
||||||
|
|
||||||
|
fs = import('fs')
|
||||||
gnome = import('gnome')
|
gnome = import('gnome')
|
||||||
i18n = import('i18n')
|
i18n = import('i18n')
|
||||||
|
|
||||||
@ -46,9 +47,12 @@ if bash_completion.found()
|
|||||||
endif
|
endif
|
||||||
|
|
||||||
if get_option('man')
|
if get_option('man')
|
||||||
a2x = find_program('a2x')
|
if fs.exists('man/gnome-extensions.1')
|
||||||
|
install_man('man/gnome-extensions.1')
|
||||||
subdir('man')
|
else
|
||||||
|
a2x = find_program('a2x')
|
||||||
|
subdir('man')
|
||||||
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
if not meson.is_subproject()
|
if not meson.is_subproject()
|
||||||
|
Loading…
Reference in New Issue
Block a user