[gtk: 1/2] meson: allow building man pages without the documentation



commit 758830e7c33573b5393e03137dab659768695f5a
Author: Christoph Reiter <creiter src gnome org>
Date:   Sat May 25 18:27:32 2019 +0200

    meson: allow building man pages without the documentation
    
    The 'documentation' option also guarded the man page build. Instead
    if skipping the whole docs subdir skip the specific gtkdoc calls, so that the
    man page build still works.
    
    This brings it in line with the gtk3 meson build.

 docs/reference/gdk/meson.build | 42 ++++++++++++------------
 docs/reference/gsk/meson.build | 48 ++++++++++++++-------------
 docs/reference/gtk/meson.build | 74 ++++++++++++++++++++++--------------------
 docs/reference/meson.build     | 24 +++++++-------
 docs/tools/meson.build         |  2 +-
 meson.build                    |  7 ++--
 6 files changed, 102 insertions(+), 95 deletions(-)
---
diff --git a/docs/reference/gdk/meson.build b/docs/reference/gdk/meson.build
index 6df0882ec7..39ce4b3d42 100644
--- a/docs/reference/gdk/meson.build
+++ b/docs/reference/gdk/meson.build
@@ -99,24 +99,26 @@ if wayland_enabled
   src_dir += [ gdkwayland_inc ]
 endif
 
-configure_file(input: 'version.xml.in', output: 'version.xml', configuration: version_conf)
+if get_option('documentation')
+  configure_file(input: 'version.xml.in', output: 'version.xml', configuration: version_conf)
 
-gnome.gtkdoc('gdk4',
-             mode: 'none',
-             main_xml: 'gdk4-docs.xml',
-             src_dir: src_dir,
-             dependencies: libgtk_dep,
-             gobject_typesfile: join_paths(meson.current_source_dir(), 'gdk4.types'),
-             scan_args: [
-               '--ignore-decorators=_GDK_EXTERN|G_GNUC_WARN_UNUSED_RESULT',
-               '--ignore-headers=' + ' '.join(private_headers),
-             ],
-             fixxref_args: [
-               '--html-dir=@0@'.format(docpath),
-               '--extra-dir=@0@'.format(join_paths(glib_docpath, 'glib')),
-               '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gobject')),
-               '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gio')),
-               '--extra-dir=@0@'.format(cairo_docpath),
-             ],
-             html_assets: images,
-             install: true)
+  gnome.gtkdoc('gdk4',
+               mode: 'none',
+               main_xml: 'gdk4-docs.xml',
+               src_dir: src_dir,
+               dependencies: libgtk_dep,
+               gobject_typesfile: join_paths(meson.current_source_dir(), 'gdk4.types'),
+               scan_args: [
+                 '--ignore-decorators=_GDK_EXTERN|G_GNUC_WARN_UNUSED_RESULT',
+                 '--ignore-headers=' + ' '.join(private_headers),
+               ],
+               fixxref_args: [
+                 '--html-dir=@0@'.format(docpath),
+                 '--extra-dir=@0@'.format(join_paths(glib_docpath, 'glib')),
+                 '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gobject')),
+                 '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gio')),
+                 '--extra-dir=@0@'.format(cairo_docpath),
+               ],
+               html_assets: images,
+               install: true)
+endif
diff --git a/docs/reference/gsk/meson.build b/docs/reference/gsk/meson.build
index 8ef9a7cc48..7e33a9bad3 100644
--- a/docs/reference/gsk/meson.build
+++ b/docs/reference/gsk/meson.build
@@ -34,27 +34,29 @@ private_headers = [
 images = [
 ]
 
-configure_file(input: 'version.xml.in', output: 'version.xml', configuration: version_conf)
+if get_option('documentation')
+  configure_file(input: 'version.xml.in', output: 'version.xml', configuration: version_conf)
 
-gnome.gtkdoc('gsk4',
-             mode: 'none',
-             main_xml: 'gsk4-docs.xml',
-             src_dir: [
-               gskinc,
-            ],
-             dependencies: libgtk_dep,
-             gobject_typesfile: join_paths(meson.current_source_dir(), 'gsk4.types'),
-             scan_args: [
-               '--ignore-decorators=_GDK_EXTERN',
-               '--ignore-headers=' + ' '.join(private_headers),
-             ],
-             fixxref_args: [
-               '--html-dir=@0@'.format(docpath),
-               '--extra-dir=@0@'.format(join_paths(glib_docpath, 'glib')),
-               '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gobject')),
-               '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gio')),
-               '--extra-dir=@0@'.format(cairo_docpath),
-              '--extra-dir=../gdk',
-             ],
-             html_assets: images,
-             install: true)
+  gnome.gtkdoc('gsk4',
+               mode: 'none',
+               main_xml: 'gsk4-docs.xml',
+               src_dir: [
+                 gskinc,
+               ],
+               dependencies: libgtk_dep,
+               gobject_typesfile: join_paths(meson.current_source_dir(), 'gsk4.types'),
+               scan_args: [
+                 '--ignore-decorators=_GDK_EXTERN',
+                 '--ignore-headers=' + ' '.join(private_headers),
+               ],
+               fixxref_args: [
+                 '--html-dir=@0@'.format(docpath),
+                 '--extra-dir=@0@'.format(join_paths(glib_docpath, 'glib')),
+                 '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gobject')),
+                 '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gio')),
+                 '--extra-dir=@0@'.format(cairo_docpath),
+                 '--extra-dir=../gdk',
+               ],
+               html_assets: images,
+               install: true)
+endif
diff --git a/docs/reference/gtk/meson.build b/docs/reference/gtk/meson.build
index 609cf28faf..3f8bae6ad2 100644
--- a/docs/reference/gtk/meson.build
+++ b/docs/reference/gtk/meson.build
@@ -381,9 +381,6 @@ expand_content_files = [
   'tree_widget.sgml',
 ]
 
-configure_file(input: 'version.xml.in', output: 'version.xml', configuration: version_conf)
-configure_file(input: 'getting_started.xml.in', output: 'getting_started.xml', configuration: src_dir_conf)
-
 types_conf = configuration_data()
 if os_win32
   types_conf.set('DISABLE_ON_W32', '%')
@@ -397,39 +394,44 @@ else
   types_conf.set('DISABLE_ON_QUARTZ', '')
 endif
 
-gnome.gtkdoc('gtk4',
-             mode: 'none',
-             main_xml: 'gtk4-docs.xml',
-             src_dir: [
-               gtkinc,
-            ],
-             dependencies: libgtk_dep,
-             gobject_typesfile: configure_file(
-               input: 'gtk4.types.in',
-               output: 'gtk4.types',
-               configuration: types_conf,
-             ),
-             scan_args: [
-               '--ignore-decorators=_GDK_EXTERN|G_GNUC_WARN_UNUSED_RESULT',
-               '--ignore-headers=' + ' '.join(private_headers),
-             ],
-             mkdb_args: [
-               '--default-includes=gtk/gtk.h',
-             ],
-             fixxref_args: [
-               '--html-dir=@0@'.format(docpath),
-               '--extra-dir=@0@'.format(join_paths(glib_docpath, 'glib')),
-               '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gobject')),
-               '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gio')),
-               '--extra-dir=@0@'.format(cairo_docpath),
-               '--extra-dir=@0@'.format(gdkpixbuf_docpath),
-              '--extra-dir=../gdk',
-              '--extra-dir=../gsk',
-             ],
-             content_files: content_files,
-             expand_content_files: expand_content_files,
-             html_assets: images,
-             install: true)
+if get_option('documentation')
+  configure_file(input: 'version.xml.in', output: 'version.xml', configuration: version_conf)
+  configure_file(input: 'getting_started.xml.in', output: 'getting_started.xml', configuration: src_dir_conf)
+
+  gnome.gtkdoc('gtk4',
+               mode: 'none',
+               main_xml: 'gtk4-docs.xml',
+               src_dir: [
+                 gtkinc,
+               ],
+               dependencies: libgtk_dep,
+               gobject_typesfile: configure_file(
+                 input: 'gtk4.types.in',
+                 output: 'gtk4.types',
+                 configuration: types_conf,
+               ),
+               scan_args: [
+                 '--ignore-decorators=_GDK_EXTERN|G_GNUC_WARN_UNUSED_RESULT',
+                 '--ignore-headers=' + ' '.join(private_headers),
+               ],
+               mkdb_args: [
+                 '--default-includes=gtk/gtk.h',
+               ],
+               fixxref_args: [
+                 '--html-dir=@0@'.format(docpath),
+                 '--extra-dir=@0@'.format(join_paths(glib_docpath, 'glib')),
+                 '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gobject')),
+                 '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gio')),
+                 '--extra-dir=@0@'.format(cairo_docpath),
+                 '--extra-dir=@0@'.format(gdkpixbuf_docpath),
+                 '--extra-dir=../gdk',
+                 '--extra-dir=../gsk',
+               ],
+               content_files: content_files,
+               expand_content_files: expand_content_files,
+               html_assets: images,
+               install: true)
+endif
 
 xsltproc = find_program('xsltproc', required: false)
 if get_option('man-pages') and not xsltproc.found()
diff --git a/docs/reference/meson.build b/docs/reference/meson.build
index d69068124e..55b0fb9e47 100644
--- a/docs/reference/meson.build
+++ b/docs/reference/meson.build
@@ -1,19 +1,21 @@
-glib_prefix = dependency('glib-2.0').get_pkgconfig_variable('prefix')
-glib_docpath = join_paths(glib_prefix, 'share', 'gtk-doc', 'html')
+if get_option('documentation')
+  glib_prefix = dependency('glib-2.0').get_pkgconfig_variable('prefix')
+  glib_docpath = join_paths(glib_prefix, 'share', 'gtk-doc', 'html')
 
-cairo_prefix = dependency('cairo-gobject').get_pkgconfig_variable('prefix')
-cairo_docpath = join_paths(cairo_prefix, 'share', 'gtk-doc', 'html', 'cairo')
+  cairo_prefix = dependency('cairo-gobject').get_pkgconfig_variable('prefix')
+  cairo_docpath = join_paths(cairo_prefix, 'share', 'gtk-doc', 'html', 'cairo')
 
-gdkpixbuf_prefix = dependency('gdk-pixbuf-2.0').get_pkgconfig_variable('prefix')
-gdkpixbuf_docpath = join_paths(gdkpixbuf_prefix, 'share', 'gtk-doc', 'html', 'gdk-pixbuf')
+  gdkpixbuf_prefix = dependency('gdk-pixbuf-2.0').get_pkgconfig_variable('prefix')
+  gdkpixbuf_docpath = join_paths(gdkpixbuf_prefix, 'share', 'gtk-doc', 'html', 'gdk-pixbuf')
 
-docpath = join_paths(gtk_datadir, 'gtk-doc', 'html')
+  docpath = join_paths(gtk_datadir, 'gtk-doc', 'html')
 
-version_conf = configuration_data()
-version_conf.set('GTK_VERSION', meson.project_version())
+  version_conf = configuration_data()
+  version_conf.set('GTK_VERSION', meson.project_version())
 
-src_dir_conf = configuration_data()
-src_dir_conf.set('SRC_DIR', meson.source_root())
+  src_dir_conf = configuration_data()
+  src_dir_conf.set('SRC_DIR', meson.source_root())
+endif
 
 subdir('gdk')
 subdir('gsk')
diff --git a/docs/tools/meson.build b/docs/tools/meson.build
index 05621ee7ed..5de632f141 100644
--- a/docs/tools/meson.build
+++ b/docs/tools/meson.build
@@ -1,4 +1,4 @@
-if x11_enabled
+if x11_enabled and get_option('documentation')
   doc_shooter_sources = [
     'shadow.c',
     'shooter.c',
diff --git a/meson.build b/meson.build
index 2189ee8b61..97cc7fdf28 100644
--- a/meson.build
+++ b/meson.build
@@ -790,10 +790,8 @@ endif
 subdir('po')
 subdir('po-properties')
 
-if get_option('documentation')
-  subdir('docs/tools')
-  subdir('docs/reference')
-endif
+subdir('docs/tools')
+subdir('docs/reference')
 
 # Keep this in sync with post-install.sh expected arguments
 meson.add_install_script('build-aux/meson/post-install.py',
@@ -815,6 +813,7 @@ summary = [
   '    Colord support: @0@'.format(get_option('colord')),
   '     Introspection: @0@'.format(get_option('introspection')),
   '     Documentation: @0@'.format(get_option('documentation')),
+  '         Man pages: @0@'.format(get_option('man-pages')),
   '       Build tests: @0@'.format(get_option('build-tests')),
   '     Install tests: @0@'.format(get_option('install-tests')),
   '             Demos: @0@'.format(get_option('demos')),


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