[igt-dev] [PATCH i-g-t] gtkdoc: Remove the build_by_default hack

Daniel Vetter daniel.vetter at ffwll.ch
Tue Jun 19 06:41:49 UTC 2018


meson 0.45 properly supports generated content_files. Except for the
minor issue that we're hitting an internal bug in meson. I've made a
pull request for that

https://github.com/mesonbuild/meson/pull/3189

which has now been addressed in

commit c1f275bfa644beafab9f8572351d4b64d61c148b
Author: Nirbheek Chauhan <nirbheek at centricular.com>
Date:   Sun May 6 20:09:49 2018 +0530

    gnome.gtkdoc: Allow passing file objects as xml_files

    If we pass a source files() object, we will look for it in the build
    directory, which is wrong. If we pass a build files() object (from
    configure_file()), we will find it in the build directory, and then
    try to copy it on top of itself in gtkdochelper.py getting a
    SameFileError.

    Add a test for it, and also properly iterate custom target outputs
    when adding to content files.

Downside of this all is that we'd need to up the meson requirements to
something like 0.47, which isn't even released yet :-/

v2: Rebase and also add version requirement.

v3: I figured out how to make this work with a meson version check!

Cc: Eric Anholt <eric at anholt.net>
Signed-off-by: Daniel Vetter <daniel.vetter at intel.com>
---
 docs/reference/igt-gpu-tools/meson.build | 49 ++++++++++++++++--------
 meson.build                              |  2 +-
 2 files changed, 35 insertions(+), 16 deletions(-)

diff --git a/docs/reference/igt-gpu-tools/meson.build b/docs/reference/igt-gpu-tools/meson.build
index aadb9af593d9..ebcb6b7a4874 100644
--- a/docs/reference/igt-gpu-tools/meson.build
+++ b/docs/reference/igt-gpu-tools/meson.build
@@ -50,27 +50,46 @@ gen_programs = find_program('generate_programs_xml.sh')
 
 test_list_files = []
 
-foreach group : test_groups
-	programs_xml = 'igt_test_programs_' + group + '_programs.xml'
-	custom_target(programs_xml,
-		      output : programs_xml,
-		      build_by_default : true,
-		      command : [ gen_programs, '@OUTPUT@', group, test_list ])
-
-	description_xml = 'igt_test_programs_' + group + '_description.xml'
-	custom_target(description_xml,
-		      output : description_xml,
-		      build_by_default : true,
-		      depends : test_executables,
-		      command : [ gen_description, '@OUTPUT@', group, test_list ])
-endforeach
+generated_docs = []
 
 configure_file(input: 'version.xml.in',
 	       output: 'version.xml',
 	       install: false, configuration: config)
 
+if meson.version().version_compare('>= 0.47')
+	foreach group : test_groups
+		programs_xml = 'igt_test_programs_' + group + '_programs.xml'
+		generated_docs += custom_target(programs_xml,
+			      output : programs_xml,
+			      command : [ gen_programs, '@OUTPUT@', group, test_list ])
+
+		description_xml = 'igt_test_programs_' + group + '_description.xml'
+		generated_docs += custom_target(description_xml,
+			      output : description_xml,
+			      depends : test_executables,
+			      command : [ gen_description, '@OUTPUT@', group, test_list ])
+	endforeach
+else
+	# older meson needs the build_by_default hack because gtkdoc dependency
+	# handling is broken
+	foreach group : test_groups
+		programs_xml = 'igt_test_programs_' + group + '_programs.xml'
+		custom_target(programs_xml,
+			      build_by_default : true,
+			      output : programs_xml,
+			      command : [ gen_programs, '@OUTPUT@', group, test_list ])
+
+		description_xml = 'igt_test_programs_' + group + '_description.xml'
+		custom_target(description_xml,
+			      build_by_default : true,
+			      output : description_xml,
+			      depends : test_executables,
+			      command : [ gen_description, '@OUTPUT@', group, test_list ])
+	endforeach
+endif
+
 gnome.gtkdoc('igt-gpu-tools',
-	     content_files : ['igt_test_programs.xml'],
+	     content_files : ['igt_test_programs.xml'] + generated_docs,
 	     dependencies : lib_igt,
 	     install : true,
 	     main_xml : 'igt-gpu-tools-docs.xml',
diff --git a/meson.build b/meson.build
index cd736d8e232a..0509a8f88799 100644
--- a/meson.build
+++ b/meson.build
@@ -5,7 +5,7 @@ project('igt-gpu-tools', 'c',
           'c_std=gnu99',
         ],
 	license : 'MIT',
-	meson_version : '>0.40.0')
+	meson_version : '>0.40')
 
 cc = meson.get_compiler('c')
 
-- 
2.17.0



More information about the igt-dev mailing list