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 <bruce.richardson@intel.com>
Acked-by: Harry van Haaren <harry.van.haaren@intel.com>
This commit is contained in:
Bruce Richardson 2018-02-16 16:53:34 +00:00
parent 09e1e8d256
commit fa036e70d7
3 changed files with 55 additions and 37 deletions

View File

@ -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

View File

@ -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'

View File

@ -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)