build: list selected applications

With the addition of enable/disable_apps meson options, it is a bit
harder to figure out which application is built, and why.

Display the list of applications in the same way we do for drivers and
libraries.

Signed-off-by: David Marchand <david.marchand@redhat.com>
Acked-by: Bruce Richardson <bruce.richardson@intel.com>
Reviewed-by: Markus Theil <markus.theil@secunet.com>
This commit is contained in:
David Marchand 2022-10-28 14:34:19 +02:00
parent e9cc7c7abc
commit ecf7518017
2 changed files with 48 additions and 12 deletions

View File

@ -1,8 +1,14 @@
# SPDX-License-Identifier: BSD-3-Clause # SPDX-License-Identifier: BSD-3-Clause
# Copyright(c) 2017-2019 Intel Corporation # Copyright(c) 2017-2019 Intel Corporation
enabled_apps = get_option('enable_apps') disable_apps = ',' + get_option('disable_apps')
disabled_apps = get_option('disable_apps') disable_apps = run_command(list_dir_globs, disable_apps, check: true).stdout().split()
enable_apps = ',' + get_option('enable_apps')
enable_apps = run_command(list_dir_globs, enable_apps, check: true).stdout().split()
if enable_apps.length() == 0
enable_apps = run_command(list_dir_globs, '*', check: true).stdout().split()
endif
apps = [ apps = [
'dumpcap', 'dumpcap',
@ -29,13 +35,12 @@ if get_option('default_library') == 'static' and not is_windows
default_ldflags += ['-Wl,--export-dynamic'] default_ldflags += ['-Wl,--export-dynamic']
endif endif
enabled_apps = [] # used to print summary at the end
foreach app:apps foreach app:apps
build = enabled_apps == '' or enabled_apps.contains(app)
# let disabled_apps override enabled_apps
if disabled_apps != ''
build = build and not disabled_apps.contains(app)
endif
name = app name = app
build = true
reason = '<unknown reason>' # set if build == false to explain
sources = [] sources = []
includes = [] includes = []
cflags = default_cflags cflags = default_cflags
@ -48,11 +53,17 @@ foreach app:apps
ext_deps = [] ext_deps = []
deps = [] deps = []
if not build if not enable_apps.contains(app)
continue build = false
reason = 'not in enabled apps build config'
elif disable_apps.contains(app)
build = false
reason = 'explicitly disabled via build config'
endif endif
if build
subdir(name) subdir(name)
endif
if build if build
dep_objs = [] dep_objs = []
@ -60,6 +71,7 @@ foreach app:apps
var_name = get_option('default_library') + '_rte_' + d var_name = get_option('default_library') + '_rte_' + d
if not is_variable(var_name) if not is_variable(var_name)
build = false build = false
reason = 'missing internal dependency, "@0@"'.format(d)
message('Missing dependency "@0@" for app "@1@"'.format(d, name)) message('Missing dependency "@0@" for app "@1@"'.format(d, name))
break break
endif endif
@ -68,9 +80,14 @@ foreach app:apps
endif endif
if not build if not build
if reason != ''
dpdk_apps_disabled += app
set_variable(app.underscorify() + '_disable_reason', reason)
endif
continue continue
endif endif
enabled_apps += app
link_libs = [] link_libs = []
if get_option('default_library') == 'static' if get_option('default_library') == 'static'
link_libs = dpdk_static_libraries + dpdk_drivers link_libs = dpdk_static_libraries + dpdk_drivers

View File

@ -42,6 +42,7 @@ dpdk_driver_classes = []
dpdk_drivers = [] dpdk_drivers = []
dpdk_extra_ldflags = [] dpdk_extra_ldflags = []
dpdk_libs_deprecated = [] dpdk_libs_deprecated = []
dpdk_apps_disabled = []
dpdk_libs_disabled = [] dpdk_libs_disabled = []
dpdk_drvs_disabled = [] dpdk_drvs_disabled = []
testpmd_drivers_sources = [] testpmd_drivers_sources = []
@ -115,8 +116,21 @@ if meson.is_subproject()
subdir('buildtools/subproject') subdir('buildtools/subproject')
endif endif
# final output, list all the libs and drivers to be built # Final output, list all the parts to be built.
# this does not affect any part of the build, for information only. # This does not affect any part of the build, for information only.
output_message = '\n=================\nApplications Enabled\n=================\n'
output_message += '\napps:\n\t'
output_count = 0
foreach app:enabled_apps
output_message += app + ', '
output_count += 1
if output_count == 8
output_message += '\n\t'
output_count = 0
endif
endforeach
message(output_message + '\n')
output_message = '\n=================\nLibraries Enabled\n=================\n' output_message = '\n=================\nLibraries Enabled\n=================\n'
output_message += '\nlibs:\n\t' output_message += '\nlibs:\n\t'
output_count = 0 output_count = 0
@ -147,6 +161,11 @@ endforeach
message(output_message + '\n') message(output_message + '\n')
output_message = '\n=================\nContent Skipped\n=================\n' output_message = '\n=================\nContent Skipped\n=================\n'
output_message += '\napps:\n\t'
foreach app:dpdk_apps_disabled
reason = get_variable(app.underscorify() + '_disable_reason')
output_message += app + ':\t' + reason + '\n\t'
endforeach
output_message += '\nlibs:\n\t' output_message += '\nlibs:\n\t'
foreach lib:dpdk_libs_disabled foreach lib:dpdk_libs_disabled
reason = get_variable(lib.underscorify() + '_disable_reason') reason = get_variable(lib.underscorify() + '_disable_reason')