summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNirbheek Chauhan <nirbheek@centricular.com>2017-03-21 16:38:47 +0530
committerMatthias Clasen <mclasen@redhat.com>2017-07-13 19:03:39 -0400
commit88e437873ad1444e6f93b8c47145b1c9eea9c592 (patch)
treead716f2cf60a91948c05800a7da3cd226f8ffcbc
parent5549a1d0c387d320f6141d46e34db58d1d041f84 (diff)
downloadglib-88e437873ad1444e6f93b8c47145b1c9eea9c592.tar.gz
meson: Detect with-docs and with-man automatically
By default, only build man pages and gtk-doc if the build-deps were found. To force-enable, pass -Dwith-docs=yes and -Dwith-man=yes. Also use a foreach loop for man pages instead of listing them all manually
-rw-r--r--docs/reference/gio/meson.build86
-rw-r--r--docs/reference/glib/meson.build36
-rw-r--r--docs/reference/gobject/meson.build36
-rw-r--r--meson.build11
-rw-r--r--meson_options.txt4
5 files changed, 42 insertions, 131 deletions
diff --git a/docs/reference/gio/meson.build b/docs/reference/gio/meson.build
index 57dcac3e0..7f0467726 100644
--- a/docs/reference/gio/meson.build
+++ b/docs/reference/gio/meson.build
@@ -1,4 +1,4 @@
-if get_option('with-docs')
+if get_option('with-docs') != 'no'
subdir('xml')
ignore_headers = [
@@ -146,76 +146,16 @@ if get_option('with-docs')
endif
-if get_option('with-man')
- custom_target('gapplication-man',
- input: 'gapplication.xml',
- output: 'gapplication.1',
- command: xsltproc_command,
- install: true,
- install_dir: man1_dir,
- )
-
- custom_target('gio-querymodules-man',
- input: 'gio-querymodules.xml',
- output: 'gio-querymodules.1',
- command: xsltproc_command,
- install: true,
- install_dir: man1_dir,
- )
-
- custom_target('glib-compile-schemas-man',
- input: 'glib-compile-schemas.xml',
- output: 'glib-compile-schemas.1',
- command: xsltproc_command,
- install: true,
- install_dir: man1_dir,
- )
-
- custom_target('glib-compile-resources-man',
- input: 'glib-compile-resources.xml',
- output: 'glib-compile-resources.1',
- command: xsltproc_command,
- install: true,
- install_dir: man1_dir,
- )
-
- custom_target('gsettings-man',
- input: 'gsettings.xml',
- output: 'gsettings.1',
- command: xsltproc_command,
- install: true,
- install_dir: man1_dir,
- )
-
- custom_target('gresource-man',
- input: 'gresource.xml',
- output: 'gresource.1',
- command: xsltproc_command,
- install: true,
- install_dir: man1_dir,
- )
-
- custom_target('gdbus-man',
- input: 'gdbus.xml',
- output: 'gdbus.1',
- command: xsltproc_command,
- install: true,
- install_dir: man1_dir,
- )
-
- custom_target('gio',
- input: 'gio.xml',
- output: 'gio.1',
- command: xsltproc_command,
- install: true,
- install_dir: man1_dir,
- )
-
- custom_target('gdbus-codegen-man',
- input: 'gdbus-codegen.xml',
- output: 'gdbus-codegen.1',
- command: xsltproc_command,
- install: true,
- install_dir: man1_dir,
- )
+if get_option('with-man') != 'no' and xsltproc.found()
+ manpages = ['gapplication', 'gio-querymodules', 'glib-compile-schemas',
+ 'glib-compile-resources', 'gsettings', 'gresource', 'gdbus',
+ 'gio', 'gdbus-codegen']
+ foreach page : manpages
+ custom_target(page + '-man',
+ input: page + '.xml',
+ output: page + '.1',
+ command: xsltproc_command,
+ install: true,
+ install_dir: man1_dir)
+ endforeach
endif
diff --git a/docs/reference/glib/meson.build b/docs/reference/glib/meson.build
index b76b9e4e8..3babb3ee0 100644
--- a/docs/reference/glib/meson.build
+++ b/docs/reference/glib/meson.build
@@ -1,4 +1,4 @@
-if get_option('with-docs')
+if get_option('with-docs') != 'no'
subdir('xml')
ignore_headers = [
@@ -90,28 +90,14 @@ if get_option('with-docs')
install: true)
endif
-if get_option('with-man')
- custom_target('glib-gettextize-man',
- input: 'glib-gettextize.xml',
- output: 'glib-gettextize.1',
- command: xsltproc_command,
- install: true,
- install_dir: man1_dir,
- )
-
- custom_target('gtester-man',
- input: 'gtester.xml',
- output: 'gtester.1',
- command: xsltproc_command,
- install: true,
- install_dir: man1_dir,
- )
-
- custom_target('gtester-report-man',
- input: 'gtester-report.xml',
- output: 'gtester-report.1',
- command: xsltproc_command,
- install: true,
- install_dir: man1_dir,
- )
+if get_option('with-man') != 'no' and xsltproc.found()
+ manpages = ['glib-gettextize', 'gtester', 'gtester-report']
+ foreach page : manpages
+ custom_target(page + '-man',
+ input: page + '.xml',
+ output: page + '.1',
+ command: xsltproc_command,
+ install: true,
+ install_dir: man1_dir)
+ endforeach
endif
diff --git a/docs/reference/gobject/meson.build b/docs/reference/gobject/meson.build
index fc3de24a0..f486a259c 100644
--- a/docs/reference/gobject/meson.build
+++ b/docs/reference/gobject/meson.build
@@ -1,4 +1,4 @@
-if get_option('with-docs')
+if get_option('with-docs') != 'no'
subdir('xml')
ignore_headers = [
@@ -51,28 +51,14 @@ if get_option('with-docs')
)
endif
-if get_option('with-man')
- custom_target('glib-mkenums-man',
- input: 'glib-mkenums.xml',
- output: 'glib-mkenums.1',
- command: xsltproc_command,
- install: true,
- install_dir: man1_dir,
- )
-
- custom_target('glib-genmarshal-man',
- input: 'glib-genmarshal.xml',
- output: 'glib-genmarshal.1',
- command: xsltproc_command,
- install: true,
- install_dir: man1_dir,
- )
-
- custom_target('gobject-query-man',
- input: 'gobject-query.xml',
- output: 'gobject-query.1',
- command: xsltproc_command,
- install: true,
- install_dir: man1_dir,
- )
+if get_option('with-man') != 'no' and xsltproc.found()
+ manpages = ['glib-mkenums', 'glib-genmarshal', 'gobject-query']
+ foreach page : manpages
+ custom_target(page + '-man',
+ input: page + '.xml',
+ output: page + '.1',
+ command: xsltproc_command,
+ install: true,
+ install_dir: man1_dir)
+ endforeach
endif
diff --git a/meson.build b/meson.build
index d218b20ae..5ee927c16 100644
--- a/meson.build
+++ b/meson.build
@@ -1434,12 +1434,11 @@ configure_file(input : 'config.h.meson',
output : 'config.h',
configuration : glib_conf)
-if get_option('with-docs') and not meson.version().version_compare('>= 0.37.0')
- error('In order to build docs you must have Meson >= 0.37.0')
-endif
-
-if get_option('with-man')
- xsltproc = find_program('xsltproc')
+if get_option('with-man') != 'no'
+ xsltproc = find_program('xsltproc', required : false)
+ if not xsltproc.found() and get_option('with-man') == 'yes'
+ error('man pages enabled and xsltproc not found')
+ endif
xsltproc_command = [
xsltproc,
'--nonet',
diff --git a/meson_options.txt b/meson_options.txt
index f62220672..f70d54a43 100644
--- a/meson_options.txt
+++ b/meson_options.txt
@@ -1,5 +1,5 @@
-option('with-docs', type : 'boolean', value : false)
-option('with-man', type : 'boolean', value : true)
+option('with-docs', type : 'combo', choices : ['auto', 'yes', 'no'], value : 'auto')
+option('with-man', type : 'combo', choices : ['auto', 'yes', 'no'], value : 'auto')
option('enable-libmount', type : 'combo', choices : ['auto', 'yes', 'no'], value : 'yes')
option('enable-dtrace', type : 'boolean', value : false,
description : 'include tracing support for dtrace')