DPDK patches and discussions
 help / color / mirror / Atom feed
From: Bruce Richardson <bruce.richardson@intel.com>
To: David Marchand <david.marchand@redhat.com>
Cc: dev@dpdk.org, ferruh.yigit@intel.com, thomas@monjalon.net,
	David Hunt <david.hunt@intel.com>,
	Maxime Coquelin <maxime.coquelin@redhat.com>,
	Chenbo Xia <chenbo.xia@intel.com>
Subject: Re: [dpdk-dev] [PATCH] examples: skip example when missing dependencies
Date: Fri, 5 Nov 2021 13:39:13 +0000	[thread overview]
Message-ID: <YYU0AeIpzObqmZvt@bricha3-MOBL.ger.corp.intel.com> (raw)
In-Reply-To: <20211105133055.13824-1-david.marchand@redhat.com>

On Fri, Nov 05, 2021 at 02:30:55PM +0100, David Marchand wrote:
> Trying to disable the vhost library, meson will complain it can't build
> the vhost* and vdpa examples when passing -Dexamples=all.
> 
> -Dexamples=all skips examples if the example itself announces it can't
> be built (for external dependencies, internal dependencies and other
> reasons).
> Since examples/meson.build will evaluate the internal dependencies
> in any case, let's move the check there and resolve the issue for
> optional internal libraries.
> 
> Fixes: 0bf583222297 ("lib: allow disabling optional libraries")
> 
> Signed-off-by: David Marchand <david.marchand@redhat.com>

One comment inline below, otherwise looks a good change.

Acked-by: Bruce Richardson <bruce.richardson@intel.com>

> ---
>  examples/distributor/meson.build              |  6 -----
>  examples/kni/meson.build                      |  6 -----
>  examples/l3fwd-power/meson.build              |  5 ----
>  examples/meson.build                          | 24 ++++++++++++-------
>  examples/vhost_crypto/meson.build             |  5 ----
>  .../vm_power_manager/guest_cli/meson.build    |  5 ----
>  examples/vm_power_manager/meson.build         |  5 ----
>  7 files changed, 16 insertions(+), 40 deletions(-)
> 
> diff --git a/examples/distributor/meson.build b/examples/distributor/meson.build
> index 9df59923ce..ca1eca952e 100644
> --- a/examples/distributor/meson.build
> +++ b/examples/distributor/meson.build
> @@ -6,12 +6,6 @@
>  # To build this example as a standalone application with an already-installed
>  # DPDK instance, use 'make'
>  
> -# require the power library
> -build = dpdk_conf.has('RTE_LIB_POWER')
> -if not build
> -    subdir_done()
> -endif
> -
>  allow_experimental_apis = true
>  deps += ['distributor', 'power']
>  sources = files(
> diff --git a/examples/kni/meson.build b/examples/kni/meson.build
> index 1c0bf99a49..6bd4eb50e6 100644
> --- a/examples/kni/meson.build
> +++ b/examples/kni/meson.build
> @@ -6,12 +6,6 @@
>  # To build this example as a standalone application with an already-installed
>  # DPDK instance, use 'make'
>  
> -# this app can be built if-and-only-if KNI library is buildable
> -build = dpdk_conf.has('RTE_LIB_KNI')
> -if not build
> -    subdir_done()
> -endif
> -
>  deps += ['kni', 'bus_pci']
>  sources = files(
>          'main.c',
> diff --git a/examples/l3fwd-power/meson.build b/examples/l3fwd-power/meson.build
> index 0f69bb782c..624ef5e947 100644
> --- a/examples/l3fwd-power/meson.build
> +++ b/examples/l3fwd-power/meson.build
> @@ -6,11 +6,6 @@
>  # To build this example as a standalone application with an already-installed
>  # DPDK instance, use 'make'
>  
> -if not dpdk_conf.has('RTE_LIB_POWER')
> -        build = false
> -        subdir_done()
> -endif
> -
>  allow_experimental_apis = true
>  deps += ['power', 'timer', 'lpm', 'hash', 'metrics', 'telemetry']
>  sources = files(
> diff --git a/examples/meson.build b/examples/meson.build
> index d50f09db12..35ec3471af 100644
> --- a/examples/meson.build
> +++ b/examples/meson.build
> @@ -104,6 +104,22 @@ foreach example: examples
>      deps = ['eal', 'mempool', 'net', 'mbuf', 'ethdev', 'cmdline']
>      subdir(example)
>  
> +    if build
> +        dep_objs = ext_deps
> +        foreach d:deps
> +            if not build
> +                break
> +            endif

I believe this check can be removed by just putting "break" after the
"message()" call below.

> +            var_name = get_option('default_library') + '_rte_' + d
> +            if not is_variable(var_name)
> +                build = false
> +                message('Missing dependency "@0@" for example "@1@"'.format(d, name))
> +            else
> +                dep_objs += [get_variable(var_name)]
> +            endif
> +        endforeach
> +    endif
> +

  reply	other threads:[~2021-11-05 13:39 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-05 13:30 David Marchand
2021-11-05 13:39 ` Bruce Richardson [this message]
2021-11-06  8:49   ` David Marchand
2021-11-06  8:53 ` [dpdk-dev] [PATCH v2] " David Marchand
2021-11-10 10:57   ` David Marchand

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=YYU0AeIpzObqmZvt@bricha3-MOBL.ger.corp.intel.com \
    --to=bruce.richardson@intel.com \
    --cc=chenbo.xia@intel.com \
    --cc=david.hunt@intel.com \
    --cc=david.marchand@redhat.com \
    --cc=dev@dpdk.org \
    --cc=ferruh.yigit@intel.com \
    --cc=maxime.coquelin@redhat.com \
    --cc=thomas@monjalon.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).