Blob Blame History Raw
From 9d2809090cc0cccd7bab67453dc00cf43a289082 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Petr=20P=C3=ADsa=C5=99?= <ppisar@redhat.com>
Date: Fri, 26 Jan 2024 15:44:39 +0100
Subject: [PATCH 1/2] build: Move computing gtk-doc module paths to the check
 place
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

A checks and an application of extra directories for gtkdoc-fixxref
were computed independetly. This patch removes the code duplication.
It also adds the discovered path to a "meson setup" summary output.

Signed-off-by: Petr Písař <ppisar@redhat.com>
---
 meson.build          | 25 ++++++++++++-------------
 modulemd/meson.build |  9 +++++----
 2 files changed, 17 insertions(+), 17 deletions(-)

diff --git a/meson.build b/meson.build
index a5d1330..0b32f4d 100644
--- a/meson.build
+++ b/meson.build
@@ -67,23 +67,21 @@ sed = find_program('sed')
 test = find_program('test')
 
 with_docs = get_option('with_docs')
+gtk_doc_referred_paths = []
 if with_docs
   gtkdoc = dependency('gtk-doc')
   glib_docpath = join_paths(glib_prefix, 'share', 'gtk-doc', 'html')
 
-  glib_index_path = join_paths(glib_docpath, 'glib/index.html')
-  ret = run_command ([test, '-e', glib_index_path],
-    check: false)
-  if ret.returncode() != 0
-    error('Missing documentation for GLib: @0@'.format(glib_index_path))
-  endif
-
-  gobject_index_path = join_paths(glib_docpath, 'gobject/index.html')
-  ret = run_command ([test, '-e', gobject_index_path],
-    check: false)
-  if ret.returncode() != 0
-    error('Missing documentation for GObject: @0@'.format(gobject_index_path))
-  endif
+  foreach referred_module : [ 'glib', 'gobject' ]
+    doc_module_path = join_paths(glib_docpath, referred_module)
+    doc_index_file = join_paths(doc_module_path, 'index.html')
+    ret = run_command ([test, '-e', doc_index_file],
+      check: false)
+    if ret.returncode() != 0
+      error('Missing GTK documentation for @0@: @1@'.format(referred_module, doc_index_file))
+    endif
+    gtk_doc_referred_paths += [ doc_module_path ]
+  endforeach
 endif
 
 # Keep with_manpages option a tristate feature for backward compatibility.
@@ -198,6 +196,7 @@ summary({'prefix': get_option('prefix'),
          'datadir': get_option('datadir'),
          'Python 2 GObject Overrides': gobject_overrides_dir_py2,
          'Python 3 GObject Overrides': gobject_overrides_dir_py3,
+         'GTK-Doc Referred Paths': gtk_doc_referred_paths,
         }, section: 'Directories')
 
 summary({'Custom Python': get_option('python_name'),
diff --git a/modulemd/meson.build b/modulemd/meson.build
index a816e13..844f135 100644
--- a/modulemd/meson.build
+++ b/modulemd/meson.build
@@ -256,6 +256,10 @@ configure_file(
 # --- Documenatation --- #
 
 if with_docs
+    fixxref_args = []
+    foreach path : gtk_doc_referred_paths
+      fixxref_args += [ '--extra-dir=@0@'.format(path) ]
+    endforeach
     gnome.gtkdoc(
         'modulemd-2.0',
         install_dir: 'modulemd-2.0',
@@ -265,10 +269,7 @@ if with_docs
         dependencies : [
             modulemd_dep,
         ],
-        fixxref_args: [
-                     '--extra-dir=@0@'.format(join_paths(glib_docpath, 'glib')),
-                     '--extra-dir=@0@'.format(join_paths(glib_docpath, 'gobject')),
-                   ],
+        fixxref_args: [ fixxref_args ],
         install : true,
     )
 endif
-- 
2.43.0