From fa036e70d794f45a4a39fe8256892c45292ecaea Mon Sep 17 00:00:00 2001 From: Bruce Richardson Date: Fri, 16 Feb 2018 16:53:34 +0000 Subject: [PATCH] app: generalize meson build 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 0088de4640..7491316e30 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 7c373c87b6..a81dcd1313 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 7ed74db2bb..b5bb2e70dc 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) -- 2.20.1