doc: support building HTML guides with meson
authorBruce Richardson <bruce.richardson@intel.com>
Thu, 20 Sep 2018 13:22:08 +0000 (14:22 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Sat, 27 Oct 2018 21:24:22 +0000 (23:24 +0200)
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Signed-off-by: Luca Boccassi <bluca@debian.org>
Tested-by: Timothy Redaelli <tredaelli@redhat.com>
doc/api/meson.build
doc/guides/meson.build [new file with mode: 0644]
doc/meson.build

index 13fcbb8..30bdc57 100644 (file)
@@ -50,7 +50,6 @@ if doxygen.found()
                install_dir: htmldir,
                build_by_default: false)
 
-       run_target('doc', command: 'true', depends: doxy_build)
-else
-       run_target('doc', command: ['echo', 'doxygen', 'not', 'found'])
+       doc_targets += doxy_build
+       doc_target_names += 'Doxygen_API'
 endif
diff --git a/doc/guides/meson.build b/doc/guides/meson.build
new file mode 100644 (file)
index 0000000..06f1488
--- /dev/null
@@ -0,0 +1,28 @@
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2018 Intel Corporation
+
+sphinx = find_program('sphinx-build', required: get_option('enable_docs'))
+
+if sphinx.found()
+       htmldir = join_paths('share', 'doc', 'dpdk')
+       html_guides_build = custom_target('html_guides_build',
+               input: meson.current_source_dir(),
+               output: 'guides',
+               command: [sphinx, '-b', 'html',
+                       '-d', meson.current_build_dir() + '/.doctrees',
+                       '@INPUT@', meson.current_build_dir() + '/guides'],
+               build_by_default: false,
+               install: get_option('enable_docs'),
+               install_dir: htmldir)
+
+       doc_targets += html_guides_build
+       doc_target_names += 'HTML_Guides'
+
+       # sphinx leaves a .buildinfo in the target directory, which we don't
+       # want to install. Note that sh -c has to be used, otherwise the
+       # env var does not get expanded if calling rm/install directly.
+       meson.add_install_script('sh', '-c',
+               'rm -f $MESON_INSTALL_DESTDIR_PREFIX/share/doc/dpdk/guides/.buildinfo')
+       meson.add_install_script('sh', '-c',
+               'install -D -m0644 $MESON_SOURCE_ROOT/doc/guides/custom.css $MESON_INSTALL_DESTDIR_PREFIX/share/doc/dpdk/guides/_static/css/custom.css')
+endif
index afca2e7..c5410d8 100644 (file)
@@ -1,4 +1,15 @@
 # SPDX-License-Identifier: BSD-3-Clause
 # Copyright(c) 2018 Luca Boccassi <bluca@debian.org>
 
+doc_targets = []
+doc_target_names = []
 subdir('api')
+subdir('guides')
+
+if doc_targets.length() == 0
+       message = 'No docs targets found'
+else
+       message = 'Building docs:'
+endif
+run_target('doc', command: ['echo', message, doc_target_names],
+       depends: doc_targets)