summaryrefslogtreecommitdiffstats
path: root/Documentation/meson.build
diff options
context:
space:
mode:
Diffstat (limited to 'Documentation/meson.build')
-rw-r--r--Documentation/meson.build293
1 files changed, 293 insertions, 0 deletions
diff --git a/Documentation/meson.build b/Documentation/meson.build
new file mode 100644
index 0000000..0dc0300
--- /dev/null
+++ b/Documentation/meson.build
@@ -0,0 +1,293 @@
+# SPDX-License-Identifier: GPL-2.0-or-later
+
+adoc_sources = [
+ 'nvme',
+ 'nvme-admin-passthru',
+ 'nvme-ana-log',
+ 'nvme-attach-ns',
+ 'nvme-boot-part-log',
+ 'nvme-capacity-mgmt',
+ 'nvme-changed-ns-list-log',
+ 'nvme-cmdset-ind-id-ns',
+ 'nvme-compare',
+ 'nvme-connect',
+ 'nvme-connect-all',
+ 'nvme-copy',
+ 'nvme-create-ns',
+ 'nvme-delete-ns',
+ 'nvme-dera-stat',
+ 'nvme-detach-ns',
+ 'nvme-device-self-test',
+ 'nvme-dim',
+ 'nvme-dir-receive',
+ 'nvme-dir-send',
+ 'nvme-disconnect',
+ 'nvme-disconnect-all',
+ 'nvme-discover',
+ 'nvme-dsm',
+ 'nvme-effects-log',
+ 'nvme-endurance-event-agg-log',
+ 'nvme-endurance-log',
+ 'nvme-error-log',
+ 'nvme-fid-support-effects-log',
+ 'nvme-mi-cmd-support-effects-log',
+ 'nvme-fdp-configs',
+ 'nvme-fdp-usage',
+ 'nvme-fdp-stats',
+ 'nvme-fdp-events',
+ 'nvme-fdp-status',
+ 'nvme-fdp-update',
+ 'nvme-fdp-set-events',
+ 'nvme-flush',
+ 'nvme-format',
+ 'nvme-fw-commit',
+ 'nvme-fw-download',
+ 'nvme-fw-log',
+ 'nvme-gen-hostnqn',
+ 'nvme-get-feature',
+ 'nvme-get-lba-status',
+ 'nvme-get-log',
+ 'nvme-get-ns-id',
+ 'nvme-get-property',
+ 'nvme-help',
+ 'nvme-huawei-id-ctrl',
+ 'nvme-huawei-list',
+ 'nvme-id-ctrl',
+ 'nvme-id-domain',
+ 'nvme-id-iocs',
+ 'nvme-id-ns',
+ 'nvme-id-nvmset',
+ 'nvme-intel-id-ctrl',
+ 'nvme-intel-internal-log',
+ 'nvme-intel-lat-stats',
+ 'nvme-intel-market-name',
+ 'nvme-intel-smart-log-add',
+ 'nvme-intel-temp-stats',
+ 'nvme-io-mgmt-recv',
+ 'nvme-io-mgmt-send',
+ 'nvme-io-passthru',
+ 'nvme-lba-status-log',
+ 'nvme-list',
+ 'nvme-list-ctrl',
+ 'nvme-list-endgrp',
+ 'nvme-list-ns',
+ 'nvme-list-subsys',
+ 'nvme-lockdown',
+ 'nvme-micron-clear-pcie-errors',
+ 'nvme-micron-internal-log',
+ 'nvme-micron-nand-stats',
+ 'nvme-micron-pcie-stats',
+ 'nvme-micron-selective-download',
+ 'nvme-micron-smart-add-log',
+ 'nvme-micron-temperature-stats',
+ 'nvme-netapp-ontapdevices',
+ 'nvme-netapp-smdevices',
+ 'nvme-ns-descs',
+ 'nvme-ns-rescan',
+ 'nvme-nvme-mi-recv',
+ 'nvme-nvme-mi-send',
+ 'nvme-nvm-id-ctrl',
+ 'nvme-ocp-latency-monitor-log',
+ 'nvme-ocp-smart-add-log',
+ 'nvme-ocp-clear-fw-activate-history',
+ 'nvme-ocp-clear-pcie-correctable-error-counters',
+ 'nvme-ocp-eol-plp-failure-mode',
+ 'nvme-persistent-event-log',
+ 'nvme-pred-lat-event-agg-log',
+ 'nvme-predictable-lat-log',
+ 'nvme-primary-ctrl-caps',
+ 'nvme-read',
+ 'nvme-reset',
+ 'nvme-resv-acquire',
+ 'nvme-resv-notif-log',
+ 'nvme-resv-register',
+ 'nvme-resv-release',
+ 'nvme-resv-report',
+ 'nvme-rpmb',
+ 'nvme-sanitize',
+ 'nvme-sanitize-log',
+ 'nvme-seagate-clear-pcie-correctable-errors',
+ 'nvme-seagate-get-ctrl-tele',
+ 'nvme-seagate-get-host-tele',
+ 'nvme-seagate-help',
+ 'nvme-seagate-plugin-version',
+ 'nvme-seagate-version',
+ 'nvme-seagate-vs-internal-log',
+ 'nvme-seagate-vs-log-page-sup',
+ 'nvme-seagate-vs-pcie-stats',
+ 'nvme-seagate-vs-smart-add-log',
+ 'nvme-seagate-vs-temperature-stats',
+ 'nvme-seagate-cloud-SSD-plugin-version',
+ 'nvme-seagate-vs-fw-activate-history',
+ 'nvme-seagate-clear-fw-activate-history',
+ 'nvme-security-recv',
+ 'nvme-security-send',
+ 'nvme-self-test-log',
+ 'nvme-set-feature',
+ 'nvme-set-property',
+ 'nvme-show-hostnqn',
+ 'nvme-show-regs',
+ 'nvme-show-topology',
+ 'nvme-smart-log',
+ 'nvme-subsystem-reset',
+ 'nvme-supported-log-pages',
+ 'nvme-telemetry-log',
+ 'nvme-toshiba-clear-pcie-correctable-errors',
+ 'nvme-toshiba-vs-internal-log',
+ 'nvme-toshiba-vs-smart-add-log',
+ 'nvme-transcend-badblock',
+ 'nvme-transcend-healthvalue',
+ 'nvme-verify',
+ 'nvme-virtium-save-smart-to-vtview-log',
+ 'nvme-virtium-show-identify',
+ 'nvme-wdc-cap-diag',
+ 'nvme-wdc-capabilities',
+ 'nvme-wdc-clear-assert-dump',
+ 'nvme-wdc-clear-fw-activate-history',
+ 'nvme-wdc-clear-pcie-correctable-errors',
+ 'nvme-wdc-cloud-boot-SSD-version',
+ 'nvme-wdc-cloud-SSD-plugin-version',
+ 'nvme-wdc-drive-essentials',
+ 'nvme-wdc-drive-log',
+ 'nvme-wdc-drive-resize',
+ 'nvme-wdc-enc-get-log',
+ 'nvme-wdc-get-crash-dump',
+ 'nvme-wdc-get-dev-capabilities-log',
+ 'nvme-wdc-get-drive-status',
+ 'nvme-wdc-get-error-recovery-log',
+ 'nvme-wdc-get-latency-monitor-log',
+ 'nvme-wdc-get-pfail-dump',
+ 'nvme-wdc-get-unsupported-reqs-log',
+ 'nvme-wdc-id-ctrl',
+ 'nvme-wdc-log-page-directory',
+ 'nvme-wdc-namespace-resize',
+ 'nvme-wdc-purge',
+ 'nvme-wdc-purge-monitor',
+ 'nvme-wdc-vs-cloud-log',
+ 'nvme-wdc-vs-device-waf',
+ 'nvme-wdc-vs-drive-info',
+ 'nvme-wdc-vs-error-reason-identifier',
+ 'nvme-wdc-vs-fw-activate-history',
+ 'nvme-wdc-vs-hw-rev-log',
+ 'nvme-wdc-vs-internal-log',
+ 'nvme-wdc-vs-nand-stats',
+ 'nvme-wdc-vs-smart-add-log',
+ 'nvme-wdc-vs-telemetry-controller-option',
+ 'nvme-wdc-vs-temperature-stats',
+ 'nvme-write',
+ 'nvme-write-uncor',
+ 'nvme-write-zeroes',
+ 'nvme-zns-changed-zone-list',
+ 'nvme-zns-close-zone',
+ 'nvme-zns-finish-zone',
+ 'nvme-zns-id-ctrl',
+ 'nvme-zns-id-ns',
+ 'nvme-zns-offline-zone',
+ 'nvme-zns-open-zone',
+ 'nvme-zns-report-zones',
+ 'nvme-zns-reset-zone',
+ 'nvme-zns-set-zone-desc',
+ 'nvme-zns-zone-append',
+ 'nvme-zns-zone-mgmt-recv',
+ 'nvme-zns-zone-mgmt-send',
+ 'nvme-inspur-nvme-vendor-log',
+]
+
+adoc_includes = [
+ 'cmd-plugins.txt',
+ 'cmds-main.txt',
+]
+
+want_docs = get_option('docs')
+want_docs_build = get_option('docs-build')
+if want_docs != 'false'
+ mandir = join_paths(get_option('mandir'), 'man1')
+ htmldir = join_paths(get_option('htmldir'), 'nvme')
+
+ asciidoctor = find_program('asciidoc', required: get_option('docs-build'))
+ if want_docs_build and asciidoctor.found()
+ # Build documentation before installing
+
+ foreach file : adoc_includes
+ configure_file(
+ input: file,
+ output: file,
+ copy: true)
+ endforeach
+
+ # man pages
+ if want_docs == 'all' or want_docs == 'man'
+ xmlto = find_program('xmlto', required: false)
+ if xmlto.found()
+ foreach adoc : adoc_sources
+ input = adoc + '.txt'
+ subst = configure_file(
+ input: adoc + '.txt',
+ output: adoc + '.msubst',
+ configuration: substs)
+ xml = custom_target(
+ adoc.underscorify() + '_xml',
+ input: subst,
+ output: '@BASENAME@.xml',
+ command: [asciidoctor,
+ '-f', files('asciidoc.conf'),
+ '-b', 'docbook',
+ '-d', 'manpage',
+ '-o', '@OUTPUT@',
+ '@INPUT@'],
+ )
+ custom_target(
+ adoc.underscorify() + '_man',
+ input: xml,
+ output: '@BASENAME@.1',
+ command: [xmlto,
+ '-m', files('manpage-normal.xsl'),
+ '-o', '@OUTDIR@',
+ '--skip-validation',
+ 'man',
+ '@INPUT@'],
+ install: true,
+ install_dir: mandir)
+ endforeach
+ endif
+ endif
+
+ # html
+ if want_docs == 'all' or want_docs == 'html'
+ foreach adoc : adoc_sources
+ input = adoc + '.txt'
+ subst = configure_file(
+ input: adoc + '.txt',
+ output: adoc + '.hsubst',
+ configuration: substs)
+ custom_target(
+ adoc.underscorify() + '_html',
+ input: subst,
+ output: '@BASENAME@.html',
+ command: [asciidoctor,
+ '-f', files('asciidoc.conf'),
+ '-b', 'xhtml11',
+ '-d', 'manpage',
+ '-o', '@OUTPUT@',
+ '@INPUT@'],
+ install: true,
+ install_dir: htmldir)
+ endforeach
+ endif
+
+ else
+ # asciidoctor not found, install pre compiled documetationx
+
+ foreach adoc : adoc_sources
+ if want_docs == 'all' or want_docs == 'man'
+ man = files(adoc + '.1')
+ install_data(man, install_dir: mandir)
+ endif
+ if want_docs == 'all' or want_docs == 'html'
+ html = files(adoc + '.html')
+ install_data(html, install_dir: htmldir)
+ endif
+ endforeach
+
+ endif
+endif