[glib/meson-for-merge] meson: Build all docs



commit 0df9aab0537dd61e2ee637c3b6ddc9d9d60bcddf
Author: Patrick Griffis <tingping tingping se>
Date:   Wed Dec 7 05:28:33 2016 -0500

    meson: Build all docs

 docs/reference/gio/meson.build                   |  216 ++++++++++++++++++++++
 docs/reference/gio/xml/gtkdocentities.ent.in     |    8 +
 docs/reference/gio/xml/meson.build               |   14 ++
 docs/reference/glib/meson.build                  |  123 ++++++++++++
 docs/reference/glib/xml/gtkdocentities.ent.in    |    8 +
 docs/reference/glib/xml/meson.build              |   14 ++
 docs/reference/gobject/meson.build               |   82 ++++++++
 docs/reference/gobject/xml/gtkdocentities.ent.in |    8 +
 docs/reference/gobject/xml/meson.build           |   14 ++
 meson.build                                      |   27 +++-
 10 files changed, 512 insertions(+), 2 deletions(-)
---
diff --git a/docs/reference/gio/meson.build b/docs/reference/gio/meson.build
new file mode 100644
index 0000000..01db208
--- /dev/null
+++ b/docs/reference/gio/meson.build
@@ -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
diff --git a/docs/reference/gio/xml/gtkdocentities.ent.in b/docs/reference/gio/xml/gtkdocentities.ent.in
new file mode 100644
index 0000000..f12c9ff
--- /dev/null
+++ b/docs/reference/gio/xml/gtkdocentities.ent.in
@@ -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@">
diff --git a/docs/reference/gio/xml/meson.build b/docs/reference/gio/xml/meson.build
new file mode 100644
index 0000000..6d1e295
--- /dev/null
+++ b/docs/reference/gio/xml/meson.build
@@ -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
+)
diff --git a/docs/reference/glib/meson.build b/docs/reference/glib/meson.build
new file mode 100644
index 0000000..86adb92
--- /dev/null
+++ b/docs/reference/glib/meson.build
@@ -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
diff --git a/docs/reference/glib/xml/gtkdocentities.ent.in b/docs/reference/glib/xml/gtkdocentities.ent.in
new file mode 100644
index 0000000..f12c9ff
--- /dev/null
+++ b/docs/reference/glib/xml/gtkdocentities.ent.in
@@ -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@">
diff --git a/docs/reference/glib/xml/meson.build b/docs/reference/glib/xml/meson.build
new file mode 100644
index 0000000..6d1e295
--- /dev/null
+++ b/docs/reference/glib/xml/meson.build
@@ -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
+)
diff --git a/docs/reference/gobject/meson.build b/docs/reference/gobject/meson.build
new file mode 100644
index 0000000..2eca238
--- /dev/null
+++ b/docs/reference/gobject/meson.build
@@ -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
diff --git a/docs/reference/gobject/xml/gtkdocentities.ent.in 
b/docs/reference/gobject/xml/gtkdocentities.ent.in
new file mode 100644
index 0000000..f12c9ff
--- /dev/null
+++ b/docs/reference/gobject/xml/gtkdocentities.ent.in
@@ -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@">
diff --git a/docs/reference/gobject/xml/meson.build b/docs/reference/gobject/xml/meson.build
new file mode 100644
index 0000000..6d1e295
--- /dev/null
+++ b/docs/reference/gobject/xml/meson.build
@@ -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
+)
diff --git a/meson.build b/meson.build
index 139dd91..0cd9927 100644
--- a/meson.build
+++ b/meson.build
@@ -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')


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]