From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mails.dpdk.org (mails.dpdk.org [217.70.189.124]) by inbox.dpdk.org (Postfix) with ESMTP id 1117EA0C56; Fri, 5 Nov 2021 14:39:24 +0100 (CET) Received: from [217.70.189.124] (localhost [127.0.0.1]) by mails.dpdk.org (Postfix) with ESMTP id A323641134; Fri, 5 Nov 2021 14:39:23 +0100 (CET) Received: from mga06.intel.com (mga06.intel.com [134.134.136.31]) by mails.dpdk.org (Postfix) with ESMTP id 7BF0740E5A for ; Fri, 5 Nov 2021 14:39:21 +0100 (CET) X-IronPort-AV: E=McAfee;i="6200,9189,10158"; a="292733635" X-IronPort-AV: E=Sophos;i="5.87,211,1631602800"; d="scan'208";a="292733635" Received: from orsmga007.jf.intel.com ([10.7.209.58]) by orsmga104.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 05 Nov 2021 06:39:20 -0700 X-IronPort-AV: E=Sophos;i="5.87,211,1631602800"; d="scan'208";a="490326306" Received: from bricha3-mobl.ger.corp.intel.com ([10.252.3.73]) by orsmga007-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-SHA; 05 Nov 2021 06:39:17 -0700 Date: Fri, 5 Nov 2021 13:39:13 +0000 From: Bruce Richardson To: David Marchand Cc: dev@dpdk.org, ferruh.yigit@intel.com, thomas@monjalon.net, David Hunt , Maxime Coquelin , Chenbo Xia Message-ID: References: <20211105133055.13824-1-david.marchand@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20211105133055.13824-1-david.marchand@redhat.com> Subject: Re: [dpdk-dev] [PATCH] examples: skip example when missing dependencies X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" 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 One comment inline below, otherwise looks a good change. Acked-by: Bruce Richardson > --- > 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 > +