All of lore.kernel.org
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH 0/2] Do proper dependency tracking for doxygen
@ 2020-01-17 11:22 Bruce Richardson
  2020-01-17 11:22 ` [dpdk-dev] [PATCH 1/2] doc/api: generate dependency file for examples doc Bruce Richardson
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Bruce Richardson @ 2020-01-17 11:22 UTC (permalink / raw)
  To: dev; +Cc: Bruce Richardson

When building doxygen docs as part of the build, there was no tracking
being done of the files processed, so that doxygen can be re-run if needed.
This patchset adds that tracking support, by generating a gcc-style
".d" file for the custom targets used in the doc/api build.

In doing so, we remove the doc directory as a custom target input path
directly, which removes a warning from meson.

Bruce Richardson (2):
  doc/api: generate dependency file for examples doc
  doc/api: track header files to rebuild docs on change

 doc/api/generate_doxygen.sh  | 5 ++++-
 doc/api/generate_examples.sh | 4 ++++
 doc/api/meson.build          | 8 ++++----
 3 files changed, 12 insertions(+), 5 deletions(-)

-- 
2.20.1


^ permalink raw reply	[flat|nested] 6+ messages in thread

* [dpdk-dev] [PATCH 1/2] doc/api: generate dependency file for examples doc
  2020-01-17 11:22 [dpdk-dev] [PATCH 0/2] Do proper dependency tracking for doxygen Bruce Richardson
@ 2020-01-17 11:22 ` Bruce Richardson
  2020-01-17 11:51   ` Luca Boccassi
  2020-01-17 11:22 ` [dpdk-dev] [PATCH 2/2] doc/api: track header files to rebuild docs on change Bruce Richardson
  2020-02-15 16:58 ` [dpdk-dev] [PATCH 0/2] Do proper dependency tracking for doxygen Thomas Monjalon
  2 siblings, 1 reply; 6+ messages in thread
From: Bruce Richardson @ 2020-01-17 11:22 UTC (permalink / raw)
  To: dev; +Cc: Bruce Richardson

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.richardson@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


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* [dpdk-dev] [PATCH 2/2] doc/api: track header files to rebuild docs on change
  2020-01-17 11:22 [dpdk-dev] [PATCH 0/2] Do proper dependency tracking for doxygen Bruce Richardson
  2020-01-17 11:22 ` [dpdk-dev] [PATCH 1/2] doc/api: generate dependency file for examples doc Bruce Richardson
@ 2020-01-17 11:22 ` Bruce Richardson
  2020-01-17 11:51   ` Luca Boccassi
  2020-02-15 16:58 ` [dpdk-dev] [PATCH 0/2] Do proper dependency tracking for doxygen Thomas Monjalon
  2 siblings, 1 reply; 6+ messages in thread
From: Bruce Richardson @ 2020-01-17 11:22 UTC (permalink / raw)
  To: dev; +Cc: Bruce Richardson

Generate a dependency file for the header files used in the API guide
so that the docs can be rebuilt if a header changes.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
 doc/api/generate_doxygen.sh | 5 ++++-
 doc/api/meson.build         | 3 ++-
 2 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/doc/api/generate_doxygen.sh b/doc/api/generate_doxygen.sh
index ab5766095..ee509e896 100755
--- a/doc/api/generate_doxygen.sh
+++ b/doc/api/generate_doxygen.sh
@@ -6,5 +6,8 @@ DOXYCONF=$1
 OUTDIR=$2
 SCRIPTCSS=$3
 
-doxygen "${DOXYCONF}"
+# run doxygen, capturing all the header files it processed
+doxygen "${DOXYCONF}" | tee doxygen.out
+echo "$OUTDIR: $(awk '/Preprocessing/ {printf("%s ", substr($2, 1, length($2) - 3))}' doxygen.out)" > $OUTDIR.d
+
 "${SCRIPTCSS}" "${OUTDIR}"/doxygen.css
diff --git a/doc/api/meson.build b/doc/api/meson.build
index 899e930fa..49d5b9a15 100644
--- a/doc/api/meson.build
+++ b/doc/api/meson.build
@@ -15,7 +15,7 @@ generate_doxygen = find_program('generate_doxygen.sh')
 generate_examples = find_program('generate_examples.sh')
 generate_css = find_program('doxy-html-custom.sh')
 
-htmldir = join_paths('share', 'doc', 'dpdk')
+htmldir = join_paths(get_option('datadir'), 'doc', 'dpdk')
 
 # due to the following bug: https://github.com/mesonbuild/meson/issues/4107
 # if install is set to true it will override build_by_default and it will
@@ -46,6 +46,7 @@ doxy_build = custom_target('doxygen',
 	depends: example,
 	input: doxy_conf,
 	output: 'api',
+	depfile: 'api.d',
 	command: [generate_doxygen, '@INPUT@', '@OUTPUT@', generate_css],
 	install: get_option('enable_docs'),
 	install_dir: htmldir,
-- 
2.20.1


^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [dpdk-dev] [PATCH 1/2] doc/api: generate dependency file for examples doc
  2020-01-17 11:22 ` [dpdk-dev] [PATCH 1/2] doc/api: generate dependency file for examples doc Bruce Richardson
@ 2020-01-17 11:51   ` Luca Boccassi
  0 siblings, 0 replies; 6+ messages in thread
From: Luca Boccassi @ 2020-01-17 11:51 UTC (permalink / raw)
  To: Bruce Richardson, dev

On Fri, 2020-01-17 at 11:22 +0000, Bruce Richardson wrote:
> 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.richardson@intel.com
> >
> ---
>  doc/api/generate_examples.sh | 4 ++++
>  doc/api/meson.build          | 5 ++---
>  2 files changed, 6 insertions(+), 3 deletions(-)

Acked-by: Luca Boccassi <bluca@debian.org>

-- 
Kind regards,
Luca Boccassi

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [dpdk-dev] [PATCH 2/2] doc/api: track header files to rebuild docs on change
  2020-01-17 11:22 ` [dpdk-dev] [PATCH 2/2] doc/api: track header files to rebuild docs on change Bruce Richardson
@ 2020-01-17 11:51   ` Luca Boccassi
  0 siblings, 0 replies; 6+ messages in thread
From: Luca Boccassi @ 2020-01-17 11:51 UTC (permalink / raw)
  To: Bruce Richardson, dev

On Fri, 2020-01-17 at 11:22 +0000, Bruce Richardson wrote:
> Generate a dependency file for the header files used in the API guide
> so that the docs can be rebuilt if a header changes.
> 
> Signed-off-by: Bruce Richardson <
> bruce.richardson@intel.com
> >
> ---
>  doc/api/generate_doxygen.sh | 5 ++++-
>  doc/api/meson.build         | 3 ++-
>  2 files changed, 6 insertions(+), 2 deletions(-)

Acked-by: Luca Boccassi <bluca@debian.org>

-- 
Kind regards,
Luca Boccassi

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [dpdk-dev] [PATCH 0/2] Do proper dependency tracking for doxygen
  2020-01-17 11:22 [dpdk-dev] [PATCH 0/2] Do proper dependency tracking for doxygen Bruce Richardson
  2020-01-17 11:22 ` [dpdk-dev] [PATCH 1/2] doc/api: generate dependency file for examples doc Bruce Richardson
  2020-01-17 11:22 ` [dpdk-dev] [PATCH 2/2] doc/api: track header files to rebuild docs on change Bruce Richardson
@ 2020-02-15 16:58 ` Thomas Monjalon
  2 siblings, 0 replies; 6+ messages in thread
From: Thomas Monjalon @ 2020-02-15 16:58 UTC (permalink / raw)
  To: Bruce Richardson; +Cc: dev

17/01/2020 12:22, Bruce Richardson:
> When building doxygen docs as part of the build, there was no tracking
> being done of the files processed, so that doxygen can be re-run if needed.
> This patchset adds that tracking support, by generating a gcc-style
> ".d" file for the custom targets used in the doc/api build.
> 
> In doing so, we remove the doc directory as a custom target input path
> directly, which removes a warning from meson.
> 
> Bruce Richardson (2):
>   doc/api: generate dependency file for examples doc
>   doc/api: track header files to rebuild docs on change

Applied, thanks




^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2020-02-15 16:58 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-17 11:22 [dpdk-dev] [PATCH 0/2] Do proper dependency tracking for doxygen Bruce Richardson
2020-01-17 11:22 ` [dpdk-dev] [PATCH 1/2] doc/api: generate dependency file for examples doc Bruce Richardson
2020-01-17 11:51   ` Luca Boccassi
2020-01-17 11:22 ` [dpdk-dev] [PATCH 2/2] doc/api: track header files to rebuild docs on change Bruce Richardson
2020-01-17 11:51   ` Luca Boccassi
2020-02-15 16:58 ` [dpdk-dev] [PATCH 0/2] Do proper dependency tracking for doxygen Thomas Monjalon

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.