On Tue, Jun 13, 2023 at 10:17:40AM +0200, David Marchand wrote:
> So far, users of test-meson-builds.sh had to define their own set of
> examples to build externally. This is not that great because users need
> to maintain this list when examples are removed/added.
> 
> Rework the script so that the 'all' value triggers an automatic
> discovery based on what was configured/compiled with meson/ninja.
> 
> Signed-off-by: David Marchand <david.march...@redhat.com>
> ---
>  devtools/test-meson-builds.sh | 14 ++++++++++++++
>  1 file changed, 14 insertions(+)
> 
> diff --git a/devtools/test-meson-builds.sh b/devtools/test-meson-builds.sh
> index 9131088c9d..cab3373544 100755
> --- a/devtools/test-meson-builds.sh
> +++ b/devtools/test-meson-builds.sh
> @@ -299,6 +299,20 @@ export PKG_CONFIG_PATH=$(dirname 
> $pc_file):$PKG_CONFIG_PATH
>  libdir=$(dirname $(find $DESTDIR -name librte_eal.so))
>  export LD_LIBRARY_PATH=$libdir:$LD_LIBRARY_PATH
>  examples=${DPDK_BUILD_TEST_EXAMPLES:-"cmdline helloworld l2fwd l3fwd 
> skeleton timer"}
> +if [ "$examples" = 'all' ]; then
> +     examples=$(ninja -C $build_path -t targets all | grep 
> 'examples/.*:.*c_LINKER' |

Since the build has already been done in $build_path at this point, would
it be easier to get the list of examples from "ls $build_path/examples/dpdk-*"?

> +     while read target; do
> +             target=${target%%:*}
> +             target=${target#examples/dpdk-}
> +             if [ -e $srcdir/examples/$target/Makefile ]; then
> +                     echo $target
> +                     continue
> +             fi
> +             find $srcdir/examples -name Makefile |
> +             sed -ne 
> "s,$srcdir/examples/\([^/]*\)\(/.*\|\)/$target/Makefile,\1,p"
> +     done | sort -u |
> +     tr '\n' ' ')
> +fi
>  # if pkg-config defines the necessary flags, test building some examples
>  if pkg-config --define-prefix libdpdk >/dev/null 2>&1; then
>       export PKGCONF="pkg-config --define-prefix"
> -- 
> 2.40.1
> 

Reply via email to