From 7f8f7f4d0a3c0a499626ebb36480044f5d8c243a Mon Sep 17 00:00:00 2001 From: Bruce Richardson Date: Wed, 25 Sep 2019 15:55:30 +0100 Subject: [PATCH] build: process dependencies before main build check If we want to add support for turning off components because of missing dependencies, then we need to check for those dependencies before we make a determination as to whether a component should be built or not, assuming that the component says it should be built. Signed-off-by: Bruce Richardson Acked-by: Luca Boccassi Acked-by: Maxime Coquelin --- drivers/meson.build | 27 ++++++++++++++------------- lib/meson.build | 23 +++++++++++++---------- 2 files changed, 27 insertions(+), 23 deletions(-) diff --git a/drivers/meson.build b/drivers/meson.build index ec81917b40..e637118330 100644 --- a/drivers/meson.build +++ b/drivers/meson.build @@ -59,6 +59,20 @@ foreach class:dpdk_driver_classes # pull in driver directory which should assign to each of the above subdir(drv_path) + if build + # get dependency objs from strings + shared_deps = ext_deps + static_deps = ext_deps + foreach d:deps + if not is_variable('shared_rte_' + d) + error('Missing internal dependency "@0@" for @1@ [@2@]' + .format(d, name, 'drivers/' + drv_path)) + endif + shared_deps += [get_variable('shared_rte_' + d)] + static_deps += [get_variable('static_rte_' + d)] + endforeach + endif + if not build # some driver directories are placeholders which # are never built, so we allow suppression of the @@ -78,19 +92,6 @@ foreach class:dpdk_driver_classes cflags += '-DALLOW_EXPERIMENTAL_API' endif - # get dependency objs from strings - shared_deps = [] - static_deps = [] - foreach d:deps - if not is_variable('shared_rte_' + d) - error('Missing dependency ' + d + - ' for driver ' + lib_name) - endif - shared_deps += [get_variable('shared_rte_' + d)] - static_deps += [get_variable('static_rte_' + d)] - endforeach - shared_deps += ext_deps - static_deps += ext_deps dpdk_extra_ldflags += pkgconfig_extra_libs # generate pmdinfo sources by building a temporary diff --git a/lib/meson.build b/lib/meson.build index 766d3b08ec..8ea3671c04 100644 --- a/lib/meson.build +++ b/lib/meson.build @@ -66,6 +66,19 @@ foreach l:libraries dir_name = 'librte_' + l subdir(dir_name) + if build + shared_deps = ext_deps + static_deps = ext_deps + foreach d:deps + if not is_variable('shared_rte_' + d) + error('Missing internal dependency "@0@" for @1@ [@2@]' + .format(d, name, 'lib/' + dir_name)) + endif + shared_deps += [get_variable('shared_rte_' + d)] + static_deps += [get_variable('static_rte_' + d)] + endforeach + endif + if not build dpdk_libs_disabled += name set_variable(name.underscorify() + '_disable_reason', reason) @@ -82,16 +95,6 @@ foreach l:libraries shared_dep = declare_dependency(include_directories: includes) static_dep = shared_dep else - shared_deps = ext_deps - static_deps = ext_deps - foreach d:deps - if not is_variable('shared_rte_' + d) - error('Missing dependency ' + d + - ' for library ' + libname) - endif - shared_deps += [get_variable('shared_rte_' + d)] - static_deps += [get_variable('static_rte_' + d)] - endforeach if allow_experimental_apis cflags += '-DALLOW_EXPERIMENTAL_API'