From d2cd727c9bb041355d177f2461ff80f8bc6da10e Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Thu, 5 Jul 2018 13:34:22 +1000 Subject: [PATCH] Switch to using files() for the doxygen input sources Using files() over a list of hand-constructed paths is the recommended way. But unfortunately doxygen needs its input files as a string list, so we still have to build that list anyway. Still, this way we don't need to hardcode every file with the source root, we just assemble it as we go. Signed-off-by: Peter Hutterer --- meson.build | 158 +++++++++++++++++++++++++++------------------------- 1 file changed, 83 insertions(+), 75 deletions(-) diff --git a/meson.build b/meson.build index f73a2092..c41a59a1 100644 --- a/meson.build +++ b/meson.build @@ -340,91 +340,99 @@ if get_option('documentation') error('Graphviz dot needs to be at least version 2.26 (have @0@)'.format(dot_version)) endif - src_doxygen = [ + src_doxygen = files( # source files - meson.source_root() + '/src/libinput.h', + 'src/libinput.h', # written docs - meson.source_root() + '/doc/absolute-axes.dox', - meson.source_root() + '/doc/absolute-coordinate-ranges.dox', - meson.source_root() + '/doc/architecture.dox', - meson.source_root() + '/doc/building.dox', - meson.source_root() + '/doc/button_debouncing.dox', - meson.source_root() + '/doc/clickpad-softbuttons.dox', - meson.source_root() + '/doc/contributing.dox', - meson.source_root() + '/doc/device-configuration-via-udev.dox', - meson.source_root() + '/doc/device-quirks.dox', - meson.source_root() + '/doc/faqs.dox', - meson.source_root() + '/doc/gestures.dox', - meson.source_root() + '/doc/middle-button-emulation.dox', - meson.source_root() + '/doc/normalization-of-relative-motion.dox', - meson.source_root() + '/doc/palm-detection.dox', - meson.source_root() + '/doc/page-hierarchy.dox', - meson.source_root() + '/doc/pointer-acceleration.dox', - meson.source_root() + '/doc/reporting-bugs.dox', - meson.source_root() + '/doc/scrolling.dox', - meson.source_root() + '/doc/seats.dox', - meson.source_root() + '/doc/switches.dox', - meson.source_root() + '/doc/t440-support.dox', - meson.source_root() + '/doc/tablet-support.dox', - meson.source_root() + '/doc/tapping.dox', - meson.source_root() + '/doc/test-suite.dox', - meson.source_root() + '/doc/timestamps.dox', - meson.source_root() + '/doc/tools.dox', - meson.source_root() + '/doc/touchpad-jumping-cursors.dox', - meson.source_root() + '/doc/touchpad-pressure.dox', - meson.source_root() + '/doc/touchpad-jitter.dox', - meson.source_root() + '/doc/touchpads.dox', - meson.source_root() + '/doc/trackpoints.dox', - meson.source_root() + '/doc/what-is-libinput.dox', + 'doc/absolute-axes.dox', + 'doc/absolute-coordinate-ranges.dox', + 'doc/architecture.dox', + 'doc/building.dox', + 'doc/button_debouncing.dox', + 'doc/clickpad-softbuttons.dox', + 'doc/contributing.dox', + 'doc/device-configuration-via-udev.dox', + 'doc/device-quirks.dox', + 'doc/faqs.dox', + 'doc/gestures.dox', + 'doc/middle-button-emulation.dox', + 'doc/normalization-of-relative-motion.dox', + 'doc/palm-detection.dox', + 'doc/page-hierarchy.dox', + 'doc/pointer-acceleration.dox', + 'doc/reporting-bugs.dox', + 'doc/scrolling.dox', + 'doc/seats.dox', + 'doc/switches.dox', + 'doc/t440-support.dox', + 'doc/tablet-support.dox', + 'doc/tapping.dox', + 'doc/test-suite.dox', + 'doc/timestamps.dox', + 'doc/tools.dox', + 'doc/touchpad-jumping-cursors.dox', + 'doc/touchpad-pressure.dox', + 'doc/touchpad-jitter.dox', + 'doc/touchpads.dox', + 'doc/trackpoints.dox', + 'doc/what-is-libinput.dox', # dot drawings - meson.source_root() + '/doc/dot/seats-sketch.gv', - meson.source_root() + '/doc/dot/seats-sketch-libinput.gv', - meson.source_root() + '/doc/dot/libinput-stack-wayland.gv', - meson.source_root() + '/doc/dot/libinput-stack-xorg.gv', - meson.source_root() + '/doc/dot/libinput-stack-gnome.gv', - meson.source_root() + '/doc/dot/evemu.gv', + 'doc/dot/seats-sketch.gv', + 'doc/dot/seats-sketch-libinput.gv', + 'doc/dot/libinput-stack-wayland.gv', + 'doc/dot/libinput-stack-xorg.gv', + 'doc/dot/libinput-stack-gnome.gv', + 'doc/dot/evemu.gv', # svgs - meson.source_root() + '/doc/svg/button-debouncing-wave-diagram.svg', - meson.source_root() + '/doc/svg/button-scrolling.svg', - meson.source_root() + '/doc/svg/clickfinger.svg', - meson.source_root() + '/doc/svg/clickfinger-distance.svg', - meson.source_root() + '/doc/svg/edge-scrolling.svg', - meson.source_root() + '/doc/svg/gesture-2fg-ambiguity.svg', - meson.source_root() + '/doc/svg/palm-detection.svg', - meson.source_root() + '/doc/svg/pinch-gestures.svg', - meson.source_root() + '/doc/svg/pinch-gestures-softbuttons.svg', - meson.source_root() + '/doc/svg/ptraccel-linear.svg', - meson.source_root() + '/doc/svg/ptraccel-low-dpi.svg', - meson.source_root() + '/doc/svg/ptraccel-touchpad.svg', - meson.source_root() + '/doc/svg/ptraccel-trackpoint.svg', - meson.source_root() + '/doc/svg/software-buttons.svg', - meson.source_root() + '/doc/svg/swipe-gestures.svg', - meson.source_root() + '/doc/svg/tablet-axes.svg', - meson.source_root() + '/doc/svg/tablet-cintiq24hd-modes.svg', - meson.source_root() + '/doc/svg/tablet-interfaces.svg', - meson.source_root() + '/doc/svg/tablet-intuos-modes.svg', - meson.source_root() + '/doc/svg/tablet-left-handed.svg', - meson.source_root() + '/doc/svg/tablet-out-of-bounds.svg', - meson.source_root() + '/doc/svg/tablet.svg', - meson.source_root() + '/doc/svg/tap-n-drag.svg', - meson.source_root() + '/doc/svg/thumb-detection.svg', - meson.source_root() + '/doc/svg/top-software-buttons.svg', - meson.source_root() + '/doc/svg/touchscreen-gestures.svg', - meson.source_root() + '/doc/svg/twofinger-scrolling.svg', + 'doc/svg/button-debouncing-wave-diagram.svg', + 'doc/svg/button-scrolling.svg', + 'doc/svg/clickfinger.svg', + 'doc/svg/clickfinger-distance.svg', + 'doc/svg/edge-scrolling.svg', + 'doc/svg/gesture-2fg-ambiguity.svg', + 'doc/svg/palm-detection.svg', + 'doc/svg/pinch-gestures.svg', + 'doc/svg/pinch-gestures-softbuttons.svg', + 'doc/svg/ptraccel-linear.svg', + 'doc/svg/ptraccel-low-dpi.svg', + 'doc/svg/ptraccel-touchpad.svg', + 'doc/svg/ptraccel-trackpoint.svg', + 'doc/svg/software-buttons.svg', + 'doc/svg/swipe-gestures.svg', + 'doc/svg/tablet-axes.svg', + 'doc/svg/tablet-cintiq24hd-modes.svg', + 'doc/svg/tablet-interfaces.svg', + 'doc/svg/tablet-intuos-modes.svg', + 'doc/svg/tablet-left-handed.svg', + 'doc/svg/tablet-out-of-bounds.svg', + 'doc/svg/tablet.svg', + 'doc/svg/tap-n-drag.svg', + 'doc/svg/thumb-detection.svg', + 'doc/svg/top-software-buttons.svg', + 'doc/svg/touchscreen-gestures.svg', + 'doc/svg/twofinger-scrolling.svg', # style files - meson.source_root() + '/doc/style/header.html', - meson.source_root() + '/doc/style/footer.html', - meson.source_root() + '/doc/style/customdoxygen.css', - meson.source_root() + '/doc/style/bootstrap.css', - meson.source_root() + '/doc/style/libinputdoxygen.css', - meson.source_root() + '/README.md' - ] + 'doc/style/header.html', + 'doc/style/footer.html', + 'doc/style/customdoxygen.css', + 'doc/style/bootstrap.css', + 'doc/style/libinputdoxygen.css', + 'README.md' + ) + + # doxygen expects a space-separated list of input files in its + # doxyfile so we build a new list containing all full paths + # and merge it with ' '.join() later + doxy_input_files = [] + foreach f : src_doxygen + doxy_input_files += [join_paths(meson.source_root(), '@0@'.format(f))] + endforeach doc_config = configuration_data() doc_config.set('PACKAGE_NAME', meson.project_name()) doc_config.set('PACKAGE_VERSION', meson.project_version()) doc_config.set('top_srcdir', meson.source_root()) - doc_config.set('INPUT', ' '.join(src_doxygen)) + doc_config.set('INPUT', ' '.join(doxy_input_files)) doxyfile = configure_file(input : 'doc/libinput.doxygen.in', output : 'libinput.doxygen',