From patchwork Fri Feb 16 16:53:34 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Bruce Richardson X-Patchwork-Id: 35196 X-Patchwork-Delegate: bruce.richardson@intel.com Return-Path: X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [127.0.0.1]) by dpdk.org (Postfix) with ESMTP id BB3D11B298; Fri, 16 Feb 2018 17:53:50 +0100 (CET) Received: from mga14.intel.com (mga14.intel.com [192.55.52.115]) by dpdk.org (Postfix) with ESMTP id 316F81B1C8 for ; Fri, 16 Feb 2018 17:53:46 +0100 (CET) X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga006.jf.intel.com ([10.7.209.51]) by fmsmga103.fm.intel.com with ESMTP/TLS/DHE-RSA-AES256-GCM-SHA384; 16 Feb 2018 08:53:46 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.46,520,1511856000"; d="scan'208";a="19035335" Received: from silpixa00399126.ir.intel.com (HELO silpixa00399126.ger.corp.intel.com) ([10.237.223.223]) by orsmga006.jf.intel.com with ESMTP; 16 Feb 2018 08:53:45 -0800 From: Bruce Richardson To: dev@dpdk.org Cc: Bruce Richardson Date: Fri, 16 Feb 2018 16:53:34 +0000 Message-Id: <20180216165336.153079-2-bruce.richardson@intel.com> X-Mailer: git-send-email 2.14.3 In-Reply-To: <20180216165336.153079-1-bruce.richardson@intel.com> References: <20180216165336.153079-1-bruce.richardson@intel.com> Subject: [dpdk-dev] [PATCH 1/3] app: generalize building of apps using meson X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 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" Since most apps are built in largely the same way, generalize the logic into a foreach loop in app/meson.build file. Signed-off-by: Bruce Richardson Acked-by: Harry van Haaren --- app/meson.build | 52 +++++++++++++++++++++++++++++++++++++++++-- app/test-eventdev/meson.build | 18 ++------------- app/test-pmd/meson.build | 22 +++--------------- 3 files changed, 55 insertions(+), 37 deletions(-) diff --git a/app/meson.build b/app/meson.build index 0088de464..7491316e3 100644 --- a/app/meson.build +++ b/app/meson.build @@ -1,5 +1,53 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2017 Intel Corporation -subdir('test-pmd') -subdir('test-eventdev') +apps = ['test-eventdev', + 'test-pmd'] + +# for BSD only +lib_execinfo = cc.find_library('execinfo', required: false) + +foreach app:apps + build = true + name = app + allow_experimental_apis = false + sources = [] + includes = [] + cflags = machine_args + objs = [] # other object files to link against, used e.g. for + # instruction-set optimized versions of code + + # use "deps" for internal DPDK dependencies, and "ext_deps" for + # external package/library requirements + ext_deps = [] + deps = [] + + subdir(name) + + if build + dep_objs = [] + foreach d:deps + dep_objs += get_variable(get_option('default_library') + + '_rte_' + d) + endforeach + dep_objs += lib_execinfo + + link_libs = [] + if get_option('default_library') == 'static' + link_libs = dpdk_drivers + endif + + if allow_experimental_apis + cflags += '-DALLOW_EXPERIMENTAL_API' + endif + + executable('dpdk-' + name, + sources, + c_args: cflags, + link_whole: link_libs, + dependencies: dep_objs, + install_rpath: join_paths(get_option('prefix'), + driver_install_path), + install: true) + endif +endforeach diff --git a/app/test-eventdev/meson.build b/app/test-eventdev/meson.build index 7c373c87b..a81dcd131 100644 --- a/app/test-eventdev/meson.build +++ b/app/test-eventdev/meson.build @@ -1,6 +1,7 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2017 Cavium, Inc +allow_experimental_apis = true sources = files('evt_main.c', 'evt_options.c', 'evt_test.c', @@ -11,19 +12,4 @@ sources = files('evt_main.c', 'test_perf_common.c', 'test_perf_atq.c', 'test_perf_queue.c') - -dep_objs = [get_variable(get_option('default_library') + '_rte_eventdev')] -dep_objs += cc.find_library('execinfo', required: false) # BSD only - -link_libs = [] -if get_option('default_library') == 'static' - link_libs = dpdk_drivers -endif - -executable('dpdk-test-eventdev', - sources, - c_args: [machine_args, '-DALLOW_EXPERIMENTAL_API'], - link_whole: link_libs, - dependencies: dep_objs, - install_rpath: join_paths(get_option('prefix'), driver_install_path), - install: true) +deps += 'eventdev' diff --git a/app/test-pmd/meson.build b/app/test-pmd/meson.build index 7ed74db2b..b5bb2e70d 100644 --- a/app/test-pmd/meson.build +++ b/app/test-pmd/meson.build @@ -1,6 +1,9 @@ # SPDX-License-Identifier: BSD-3-Clause # Copyright(c) 2017 Intel Corporation +# override default name to drop the hyphen +name = 'testpmd' +allow_experimental_apis = true sources = files('cmdline.c', 'cmdline_flow.c', 'cmdline_mtr.c', @@ -32,22 +35,3 @@ if dpdk_conf.has('RTE_LIBRTE_SOFTNIC_PMD') sources += files('tm.c') deps += 'pmd_softnic' endif - -dep_objs = [] -foreach d:deps - dep_objs += get_variable(get_option('default_library') + '_rte_' + d) -endforeach -dep_objs += cc.find_library('execinfo', required: false) # for BSD only - -link_libs = [] -if get_option('default_library') == 'static' - link_libs = dpdk_drivers -endif - -executable('dpdk-testpmd', - sources, - c_args: [machine_args, '-DALLOW_EXPERIMENTAL_API'], - link_whole: link_libs, - dependencies: dep_objs, - install_rpath: join_paths(get_option('prefix'), driver_install_path), - install: true)