meson: Build all docs

This commit is contained in:
Patrick Griffis 2016-12-07 05:28:33 -05:00 committed by Matthias Clasen
parent c61a72f4bc
commit 0df9aab053
10 changed files with 512 additions and 2 deletions

View File

@ -0,0 +1,216 @@
if get_option('with-docs')
subdir('xml')
ignore_headers = [
'fam',
'fen',
'gdbus-2.0',
'gvdb',
'inotify',
'kqueue',
'libasyncns',
'tests',
'win32',
'xdgmime',
'gappinfoprivate.h',
'gapplicationimpl.h',
'gasynchelper.h',
'gcontenttypeprivate.h',
'gcontextspecificgroup.h',
'gcredentialsprivate.h',
'gdbus-daemon-generated.h',
'gdbusactiongroup-private.h',
'gdbusauth.h',
'gdbusauthmechanismanon.h',
'gdbusauthmechanismexternal.h',
'gdbusauthmechanism.h',
'gdbusauthmechanismsha1.h',
'gdbusdaemon.h',
'gdbusprivate.h',
'gdelayedsettingsbackend.h',
'gdummyfile.h',
'gdummyproxyresolver.h',
'gdummytlsbackend.h',
'gfileattribute-priv.h',
'gfileinfo-priv.h',
'ghttpproxy.h',
'giomodule-priv.h',
'gioprivate.h',
'giowin32-priv.h',
'glocaldirectorymonitor.h',
'glocalfileenumerator.h',
'glocalfile.h',
'glocalfileinfo.h',
'glocalfileinputstream.h',
'glocalfileiostream.h',
'glocalfilemonitor.h',
'glocalfileoutputstream.h',
'glocalvfs.h',
'gmountprivate.h',
'gnativevolumemonitor.h',
'gnetworkingprivate.h',
'gnetworkmonitorbase.h',
'gnetworkmonitornetlink.h',
'gnetworkmonitornm.h',
'gnotificationbackend.h',
'gnotification-private.h',
'gpollfilemonitor.h',
'gregistrysettingsbackend.h',
'gresourcefile.h',
'gsettingsbackendinternal.h',
'gsettings-mapping.h',
'gsettingsschema-internal.h',
'gsocketinputstream.h',
'gsocketoutputstream.h',
'gsocks4aproxy.h',
'gsocks4proxy.h',
'gsocks5proxy.h',
'gsubprocesslauncher-private.h',
'gthreadedresolver.h',
'gunionvolumemonitor.h',
'gunixmount.h',
'gunixresolver.h',
'gunixvolume.h',
'gunixvolumemonitor.h',
'gwin32appinfo.h',
'gwin32inputstream.h',
'gwin32mount.h',
'gwin32outputstream.h',
'gwin32registrykey.h',
'gwin32resolver.h',
'gwin32volumemonitor.h',
'thumbnail-verify.h',
'xdp-dbus.h',
]
# FIXME: More win32 headers were added to fix building gio-scan
# FIXME: ExampleAnimal docs aren't built
docpath = join_paths(glib_datadir, 'gtk-doc', 'html')
version_conf = configuration_data()
version_conf.set('VERSION', meson.project_version())
configure_file(
input: 'version.xml.in',
output: 'version.xml',
configuration: version_conf
)
gnome.gtkdoc('gio',
main_xml : 'gio-docs.xml',
namespace : 'g',
gobject_typesfile : 'gio.types',
mode : 'none',
dependencies : [libgio_dep, libgobject_dep, libglib_dep],
src_dir : [
# TODO: Cleanup upstream
join_paths(meson.source_root(), 'gio'),
join_paths(meson.build_root(), 'gio'),
],
scan_args : [
'--rebuild-types',
'--deprecated-guards=G_DISABLE_DEPRECATED',
'--ignore-decorators=G_GNUC_WARN_UNUSED_RESULT',
'--ignore-headers=' + ' '.join(ignore_headers),
],
content_files : [
'overview.xml',
'migrating-posix.xml',
'migrating-gnome-vfs.xml',
'migrating-gconf.xml',
'migrating-gdbus.xml',
'gio-querymodules.xml',
'glib-compile-schemas.xml',
'glib-compile-resources.xml',
'gapplication.xml',
'gsettings.xml',
'gresource.xml',
'gdbus.xml',
'gdbus-codegen.xml',
],
expand_content_files : [
'overview.xml',
'migrating-posix.xml',
'migrating-gnome-vfs.xml',
'migrating-gconf.xml',
'migrating-gdbus.xml',
'gdbus-codegen.xml',
],
html_assets : [
'gvfs-overview.png',
'menu-example.png',
'menu-model.png',
],
fixxref_args: [
'--html-dir=' + docpath,
'--extra-dir=' + join_paths(meson.current_build_dir(), '../glib/html'),
'--extra-dir=' + join_paths(meson.current_build_dir(), '../gobject/html'),
],
install: true
)
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('gdbus-codegen-man',
input: 'gdbus-codegen.xml',
output: 'gdbus-codegen.1',
command: xsltproc_command,
install: true,
install_dir: man1_dir,
)
endif

View File

@ -0,0 +1,8 @@
<!ENTITY package "@PACKAGE@">
<!ENTITY package_bugreport "@PACKAGE_BUGREPORT@">
<!ENTITY package_name "@PACKAGE_NAME@">
<!ENTITY package_string "@PACKAGE_STRING@">
<!ENTITY package_tarname "@PACKAGE_TARNAME@">
<!ENTITY package_url "@PACKAGE_URL@">
<!ENTITY package_version "@PACKAGE_VERSION@">
<!ENTITY package_api_version "@PACKAGE_API_VERSION@">

View File

@ -0,0 +1,14 @@
ent_conf = configuration_data()
ent_conf.set('PACKAGE', 'glib')
ent_conf.set('PACKAGE_BUGREPORT', 'https://bugzilla.gnome.org/enter_bug.cgi?product=glib')
ent_conf.set('PACKAGE_NAME', 'glib')
ent_conf.set('PACKAGE_STRING', 'glib')
ent_conf.set('PACKAGE_TARNAME', 'glib')
ent_conf.set('PACKAGE_URL', 'FIXME')
ent_conf.set('PACKAGE_VERSION', glib_version)
ent_conf.set('PACKAGE_API_VERSION', glib_api_version)
configure_file(
input: 'gtkdocentities.ent.in',
output: 'gtkdocentities.ent',
configuration: ent_conf
)

View File

@ -0,0 +1,123 @@
if get_option('with-docs')
subdir('xml')
ignore_headers = [
'gallocator.h',
'gdatasetprivate.h',
'glibintl.h',
'gbsearcharray.h',
'glib-private.h',
'gmoduleconf.h',
'gthreadprivate.h',
'gunibreak.h',
'gunicomp.h',
'gunidecomp.h',
'gunichartables.h',
'glib_probes.h',
'glib_trace.h',
'libcharset.h',
'gdebug.h',
'gprintfint.h',
'gmirroringtable.h',
'gscripttable.h',
'glib-mirroring-tab',
'gnulib',
'pcre',
'update-pcre',
'gbytesprivate.h',
'gvariant-internal.h',
'gvariant-serialiser.h',
'gvariant-core.h',
'gvarianttypeinfo.h',
'gwakeup.h',
'gtranslit-data.h',
'glib-init.h',
'gconstructor.h',
'valgrind.h',
]
docpath = join_paths(glib_datadir, 'gtk-doc', 'html')
version_conf = configuration_data()
version_conf.set('GLIB_VERSION', meson.project_version())
configure_file(
input: 'version.xml.in',
output: 'version.xml',
configuration: version_conf
)
gnome.gtkdoc('glib',
main_xml : 'glib-docs.xml',
namespace : 'g',
mode : 'none',
src_dir : [
# TODO: Cleanup upstream
join_paths(meson.source_root(), 'glib'),
join_paths(meson.build_root(), 'glib'),
join_paths(meson.source_root(), 'gmodule'),
join_paths(meson.build_root(), 'gmodule'),
],
dependencies : libglib_dep,
scan_args : [
'--rebuild-types',
'--deprecated-guards=G_DISABLE_DEPRECATED',
'--ignore-decorators=GLIB_VAR|G_GNUC_WARN_UNUSED_RESULT',
'--ignore-headers=' + ' '.join(ignore_headers),
],
content_files : [
'cross.xml',
'running.xml',
'building.xml',
'changes.xml',
'compiling.xml',
'programming.xml',
'resources.xml',
'regex-syntax.xml',
'glib-gettextize.xml',
'gtester.xml',
'gtester-report.xml',
'gvariant-varargs.xml',
'gvariant-text.xml',
],
expand_content_files : [
'compiling.xml',
],
html_assets : [
'file-name-encodings.png',
'mainloop-states.gif',
'Sorted_binary_tree_breadth-first_traversal.svg',
'Sorted_binary_tree_inorder.svg',
'Sorted_binary_tree_postorder.svg',
'Sorted_binary_tree_preorder.svg',
],
fixxref_args: [
'--html-dir=' + docpath,
# TODO: gobject/gio extra dirs
],
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,
)
endif

View File

@ -0,0 +1,8 @@
<!ENTITY package "@PACKAGE@">
<!ENTITY package_bugreport "@PACKAGE_BUGREPORT@">
<!ENTITY package_name "@PACKAGE_NAME@">
<!ENTITY package_string "@PACKAGE_STRING@">
<!ENTITY package_tarname "@PACKAGE_TARNAME@">
<!ENTITY package_url "@PACKAGE_URL@">
<!ENTITY package_version "@PACKAGE_VERSION@">
<!ENTITY package_api_version "@PACKAGE_API_VERSION@">

View File

@ -0,0 +1,14 @@
ent_conf = configuration_data()
ent_conf.set('PACKAGE', 'glib')
ent_conf.set('PACKAGE_BUGREPORT', 'https://bugzilla.gnome.org/enter_bug.cgi?product=glib')
ent_conf.set('PACKAGE_NAME', 'glib')
ent_conf.set('PACKAGE_STRING', 'glib')
ent_conf.set('PACKAGE_TARNAME', 'glib')
ent_conf.set('PACKAGE_URL', 'FIXME')
ent_conf.set('PACKAGE_VERSION', glib_version)
ent_conf.set('PACKAGE_API_VERSION', glib_api_version)
configure_file(
input: 'gtkdocentities.ent.in',
output: 'gtkdocentities.ent',
configuration: ent_conf
)

View File

@ -0,0 +1,82 @@
if get_option('with-docs')
subdir('xml')
ignore_headers = [
'tests',
'gatomicarray.h',
'gobject_trace.h',
'gtype-private.h'
]
docpath = join_paths(glib_datadir, 'gtk-doc', 'html')
version_conf = configuration_data()
version_conf.set('GLIB_VERSION', meson.project_version())
configure_file(
input: 'version.xml.in',
output: 'version.xml',
configuration: version_conf
)
gnome.gtkdoc('gobject',
main_xml : 'gobject-docs.xml',
namespace : 'g',
gobject_typesfile : 'gobject.types',
mode : 'none',
dependencies : [libgobject_dep, libglib_dep],
src_dir : [
# TODO: Cleanup upstream
join_paths(meson.source_root(), 'gobject'),
join_paths(meson.build_root(), 'gobject'),
],
scan_args : [
'--deprecated-guards=G_DISABLE_DEPRECATED',
'--ignore-decorators=G_GNUC_INTERNAL|G_GNUC_WARN_UNUSED_RESULT',
'--ignore-headers=' + ' '.join(ignore_headers),
],
content_files : [
'glib-mkenums.xml',
'glib-genmarshal.xml',
'gobject-query.xml',
'tut_gobject.xml',
'tut_gsignal.xml',
'tut_gtype.xml',
'tut_howto.xml',
'tut_intro.xml',
'tut_tools.xml'
],
html_assets : [
'images/glue.png'
],
fixxref_args: [
'--html-dir=' + docpath,
'--extra-dir=' + join_paths(meson.current_build_dir(), '../glib/html'),
],
install: true
)
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,
)
endif

View File

@ -0,0 +1,8 @@
<!ENTITY package "@PACKAGE@">
<!ENTITY package_bugreport "@PACKAGE_BUGREPORT@">
<!ENTITY package_name "@PACKAGE_NAME@">
<!ENTITY package_string "@PACKAGE_STRING@">
<!ENTITY package_tarname "@PACKAGE_TARNAME@">
<!ENTITY package_url "@PACKAGE_URL@">
<!ENTITY package_version "@PACKAGE_VERSION@">
<!ENTITY package_api_version "@PACKAGE_API_VERSION@">

View File

@ -0,0 +1,14 @@
ent_conf = configuration_data()
ent_conf.set('PACKAGE', 'glib')
ent_conf.set('PACKAGE_BUGREPORT', 'https://bugzilla.gnome.org/enter_bug.cgi?product=glib')
ent_conf.set('PACKAGE_NAME', 'glib')
ent_conf.set('PACKAGE_STRING', 'glib')
ent_conf.set('PACKAGE_TARNAME', 'glib')
ent_conf.set('PACKAGE_URL', 'FIXME')
ent_conf.set('PACKAGE_VERSION', glib_version)
ent_conf.set('PACKAGE_API_VERSION', glib_api_version)
configure_file(
input: 'gtkdocentities.ent.in',
output: 'gtkdocentities.ent',
configuration: ent_conf
)

View File

@ -28,6 +28,7 @@ host_system = host_machine.system()
#add_global_arguments('-Werror', language : 'c') # FIXME
glib_version = meson.project_version()
glib_api_version = '2.0'
version_arr = glib_version.split('.')
major_version = version_arr[0]
minor_version = version_arr[1]
@ -1361,6 +1362,28 @@ configure_file(input : 'config.h.meson',
output : 'config.h',
configuration : glib_conf)
if get_option('with-docs')
subdir('docs/reference/glib')
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')
xsltproc_command = [
xsltproc,
'--nonet',
'--stringparam', 'man.output.quietly', '1',
'--stringparam', 'funcsynopsis.style', 'ansi',
'--stringparam', 'man.th.extra1.suppress', '1',
'--stringparam', 'man.authors.section.enabled', '0',
'--stringparam', 'man.copyright.section.enabled', '0',
'-o', '@OUTPUT@',
'http://docbook.sourceforge.net/release/xsl/current/manpages/docbook.xsl',
'@INPUT@',
]
man1_dir = get_option('mandir') + '/man1'
endif
gnome = import('gnome')
subdir('docs/reference/glib')
subdir('docs/reference/gobject')
subdir('docs/reference/gio')