From 895236c6ead83ed537d762394c9930b1e82d8dde Mon Sep 17 00:00:00 2001 From: Daniel Vetter Date: Tue, 5 Sep 2017 14:36:21 +0200 Subject: meson: add manpage support It seems like meson doesn't want you to string together targets like make does, but wants it all in one step. So another little shell script it is. Acked-by: Jani Nikula Acked-by: Arkadiusz Hiler Acked-by: Petri Latvala Acked-by: Daniel Stone Acked-by: Radoslaw Szwichtenberg Signed-off-by: Daniel Vetter --- man/defs.rst.in | 5 +++++ man/meson.build | 45 +++++++++++++++++++++++++++++++++++++++++++++ man/rst2man.sh | 16 ++++++++++++++++ 3 files changed, 66 insertions(+) create mode 100644 man/defs.rst.in create mode 100644 man/meson.build create mode 100755 man/rst2man.sh (limited to 'man') diff --git a/man/defs.rst.in b/man/defs.rst.in new file mode 100644 index 00000000..54b7eec0 --- /dev/null +++ b/man/defs.rst.in @@ -0,0 +1,5 @@ +.. |PACKAGE_NAME| replace:: @PACKAGE_NAME@ +.. |PACKAGE_VERSION| replace:: @PACKAGE_VERSION@ +.. |PACKAGE_STRING| replace:: @PACKAGE_STRING@ +.. |MANUAL_SECTION| replace:: 1 +.. |MANUAL_GROUP| replace:: General Commands Manual diff --git a/man/meson.build b/man/meson.build new file mode 100644 index 00000000..4f9f88e8 --- /dev/null +++ b/man/meson.build @@ -0,0 +1,45 @@ +manpages = [ + 'intel_aubdump', + 'intel_audio_dump', + 'intel_bios_dumper', + 'intel_error_decode', + 'intel_gpu_frequency', + 'intel_gpu_top', + 'intel_gtt', + 'intel_infoframes', + 'intel_lid', + 'intel_panel_fitter', + 'intel_reg', + 'intel_stepping', + 'intel_upload_blit_large', + 'intel_upload_blit_large_gtt', + 'intel_upload_blit_large_map', + 'intel_upload_blit_small', + 'intel_vbt_decode', +] + +man_config = configuration_data() + +man_config.set('PACKAGE_NAME', meson.project_name()) +man_config.set('PACKAGE_VERSION', meson.project_version()) +man_config.set('PACKAGE_STRING', meson.project_name() + ' ' + meson.project_version()) + +defs_rst = configure_file(input : 'defs.rst.in', + output : 'defs.rst', + configuration : man_config) + +rst2man = find_program('rst2man', required : false) +rst2man_script = find_program('rst2man.sh') + +if rst2man.found() + foreach manpage : manpages + custom_target(manpage + '.1', + build_by_default : true, + command : [ rst2man_script, '@INPUT@', '@OUTPUT@' ], + depend_files : [ defs_rst ], + input: manpage + '.rst', + output : manpage + '.1.gz', + install : true, + install_dir : join_paths(get_option('mandir'), 'man1')) + endforeach +endif diff --git a/man/rst2man.sh b/man/rst2man.sh new file mode 100755 index 00000000..fc2b5ed8 --- /dev/null +++ b/man/rst2man.sh @@ -0,0 +1,16 @@ +#!/bin/bash + +input=$1 +output=$2 + +out_dir=$(dirname ${output}) +in_file=$(basename ${input}) + +# rst2man doesn't handle multiple source directories well, and since defs.rst is +# generated we first need to move it all into the build dir +cp $input $out_dir + +rst2man $out_dir/$in_file ${output%.gz} + +rm -f ${output} +gzip ${output%.gz} -- cgit v1.2.3