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 <bruce.richard...@intel.com> --- 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 6fcfe513b..dae7ee0be 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 c72b880e1..899e930fa 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