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 <peter.hutterer@who-t.net>
This commit is contained in:
Peter Hutterer 2018-07-05 13:34:22 +10:00
parent e972cc9664
commit d2cd727c9b

View file

@ -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',