From 499fe9dfcfc721f327b9f58a0f1d9d15eea6a8ee Mon Sep 17 00:00:00 2001 From: Bruce Richardson Date: Fri, 17 Jan 2020 11:22:35 +0000 Subject: [PATCH] doc: add dependency on examples for API doxygen For the doxygen API for the examples folder, we can generate a build dependency file when we generate the examples.dox file. This allows correct rebuilds if the files in examples change. Signed-off-by: Bruce Richardson Acked-by: Luca Boccassi --- doc/api/generate_examples.sh | 4 ++++ doc/api/meson.build | 5 ++--- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/doc/api/generate_examples.sh b/doc/api/generate_examples.sh index 6fcfe513b6..dae7ee0be0 100755 --- a/doc/api/generate_examples.sh +++ b/doc/api/generate_examples.sh @@ -5,6 +5,10 @@ EXAMPLES_DIR=$1 API_EXAMPLES=$2 +# generate a .d file including both C files and also build files, so we can +# detect both file changes and file additions/deletions +echo "$API_EXAMPLES: $(find ${EXAMPLES_DIR} -type f \( -name '*.c' -o -name 'meson.build' \) -printf '%p ' )" > ${API_EXAMPLES}.d + exec > "${API_EXAMPLES}" printf '/**\n' printf '@page examples DPDK Example Programs\n\n' diff --git a/doc/api/meson.build b/doc/api/meson.build index c72b880e10..899e930fa6 100644 --- a/doc/api/meson.build +++ b/doc/api/meson.build @@ -15,7 +15,6 @@ generate_doxygen = find_program('generate_doxygen.sh') generate_examples = find_program('generate_examples.sh') generate_css = find_program('doxy-html-custom.sh') -inputdir = join_paths(meson.source_root(), 'examples') htmldir = join_paths('share', 'doc', 'dpdk') # due to the following bug: https://github.com/mesonbuild/meson/issues/4107 @@ -24,9 +23,9 @@ htmldir = join_paths('share', 'doc', 'dpdk') # false it would be impossible to install the docs. # So use a configure option for now. example = custom_target('examples.dox', - input: inputdir, output: 'examples.dox', - command: [generate_examples, '@INPUT@', '@OUTPUT@'], + command: [generate_examples, join_paths(meson.source_root(), 'examples'), '@OUTPUT@'], + depfile: 'examples.dox.d', install: get_option('enable_docs'), install_dir: htmldir, build_by_default: get_option('enable_docs')) -- 2.20.1