[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