[PATCH i-g-t 19/22] meson: add manpage support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.

Signed-off-by: Daniel Vetter <daniel.vetter@xxxxxxxx>
---
 man/defs.rst.in |  5 +++++
 man/meson.build | 45 +++++++++++++++++++++++++++++++++++++++++++++
 man/rst2man.sh  | 16 ++++++++++++++++
 meson.build     |  1 +
 4 files changed, 67 insertions(+)
 create mode 100644 man/defs.rst.in
 create mode 100644 man/meson.build
 create mode 100755 man/rst2man.sh

diff --git a/man/defs.rst.in b/man/defs.rst.in
new file mode 100644
index 000000000000..54b7eec08903
--- /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 000000000000..4f9f88e87540
--- /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 000000000000..fc2b5ed863b1
--- /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}
diff --git a/meson.build b/meson.build
index 39749a0e1103..2b49a0db6500 100644
--- a/meson.build
+++ b/meson.build
@@ -120,3 +120,4 @@ if libdrm_intel.found()
 	subdir('assembler')
 	subdir('overlay')
 endif
+subdir('man')
-- 
2.14.1

_______________________________________________
Intel-gfx mailing list
Intel-gfx@xxxxxxxxxxxxxxxxxxxxx
https://lists.freedesktop.org/mailman/listinfo/intel-gfx




[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]
  Powered by Linux