Message ID | 20180920132208.14583-1-bluca@debian.org (mailing list archive) |
---|---|
State | Accepted, archived |
Delegated to: | Thomas Monjalon |
Headers | show |
Series | [v3] doc: support building HTML guides with meson | expand |
Context | Check | Description |
---|---|---|
ci/checkpatch | success | coding style OK |
ci/Intel-compilation | success | Compilation OK |
On Thu, 20 Sep 2018 14:22:08 +0100 Luca Boccassi <bluca@debian.org> wrote: > From: Bruce Richardson <bruce.richardson@intel.com> > > Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> > Signed-off-by: Luca Boccassi <bluca@debian.org> Tested on Fedora 28 (sphinx 1.7.5) and RHEL 7.5 (sphinx 1.1.3) Tested-by: Timothy Redaelli <tredaelli@redhat.com>
20/09/2018 15:51, Timothy Redaelli: > On Thu, 20 Sep 2018 14:22:08 +0100 > Luca Boccassi <bluca@debian.org> wrote: > > > From: Bruce Richardson <bruce.richardson@intel.com> > > > > Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> > > Signed-off-by: Luca Boccassi <bluca@debian.org> > > Tested on Fedora 28 (sphinx 1.7.5) and RHEL 7.5 (sphinx 1.1.3) > > Tested-by: Timothy Redaelli <tredaelli@redhat.com> Applied, thanks In the build directory, docs are in - doc/api/api/ - doc/guides/guides/ Why having the last level of (redundant) directory?
On Sat, 2018-10-27 at 23:54 +0200, Thomas Monjalon wrote: > 20/09/2018 15:51, Timothy Redaelli: > > On Thu, 20 Sep 2018 14:22:08 +0100 > > Luca Boccassi <bluca@debian.org> wrote: > > > > > From: Bruce Richardson <bruce.richardson@intel.com> > > > > > > Signed-off-by: Bruce Richardson <bruce.richardson@intel.com> > > > Signed-off-by: Luca Boccassi <bluca@debian.org> > > > > Tested on Fedora 28 (sphinx 1.7.5) and RHEL 7.5 (sphinx 1.1.3) > > > > Tested-by: Timothy Redaelli <tredaelli@redhat.com> > > Applied, thanks > > In the build directory, docs are in > - doc/api/api/ > - doc/guides/guides/ > Why having the last level of (redundant) directory? Quirks due to the intersection of Meson and Sphinx/Doxygen and theirs respective quirks - it needs to be a new directory, and it needs to be called "guides/api" as that's what gets installed via ninja install. Yes it's not the prettiest in the build tree - suggestions to improve it are most welcome of course
diff --git a/doc/api/meson.build b/doc/api/meson.build index 13fcbb8cd7..30bdc573b5 100644 --- a/doc/api/meson.build +++ b/doc/api/meson.build @@ -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 index 0000000000..06f14882bb --- /dev/null +++ b/doc/guides/meson.build @@ -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 diff --git a/doc/meson.build b/doc/meson.build index afca2e7133..c5410d85d6 100644 --- a/doc/meson.build +++ b/doc/meson.build @@ -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)