From: Bruce Richardson Date: Wed, 25 Sep 2019 14:55:30 +0000 (+0100) Subject: build: process dependencies before main build check X-Git-Url: http://git.droids-corp.org/?a=commitdiff_plain;h=7f8f7f4d0a3c0a499626ebb36480044f5d8c243a;p=dpdk.git 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 --- 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'