diff --git a/meson.build b/meson.build index 71b3ca471..4c913ff86 100644 --- a/meson.build +++ b/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'), diff --git a/meson/generate-manpages.py b/meson/generate-manpages.py new file mode 100644 index 000000000..ce2ca2828 --- /dev/null +++ b/meson/generate-manpages.py @@ -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)) diff --git a/subprojects/extensions-tool/meson.build b/subprojects/extensions-tool/meson.build index 5460f626d..18a38a023 100644 --- a/subprojects/extensions-tool/meson.build +++ b/subprojects/extensions-tool/meson.build @@ -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()