[2/3] build: process dependencies before main build check
Checks
Commit Message
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.richardson@intel.com>
---
drivers/meson.build | 27 ++++++++++++++-------------
lib/meson.build | 23 +++++++++++++----------
2 files changed, 27 insertions(+), 23 deletions(-)
@@ -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
@@ -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'