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 <bruce.richard...@intel.com> --- 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 b54601697..ee5db4157 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 e5ff83893..fde2f5a02 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' -- 2.21.0