build: improve error message for missing dependency
authorBruce Richardson <bruce.richardson@intel.com>
Fri, 20 Jul 2018 13:28:25 +0000 (14:28 +0100)
committerThomas Monjalon <thomas@monjalon.net>
Thu, 26 Jul 2018 08:04:59 +0000 (10:04 +0200)
When building a driver or library and a required internal dependency
is missing, the error message printed was:

    Tried to get unknown variable "shared_rte_<libname>".

However, a better way to handle this is to catch the missing variable
earlier and convert it into a proper message, informing the user
that the required dependency is missing, and most importantly, what
library or driver wanted that dependency.

Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
drivers/meson.build
lib/meson.build

index 1737d86..27d66cf 100644 (file)
@@ -61,6 +61,10 @@ foreach class:driver_classes
                        shared_objs = []
                        static_objs = []
                        foreach d:deps
+                               if not is_variable('shared_rte_' + d)
+                                       error('Missing dependency ' + d +
+                                               ' for driver ' + lib_name)
+                               endif
                                shared_objs += [get_variable('shared_rte_' + d)]
                                static_objs += [get_variable('static_rte_' + d)]
                        endforeach
index d88b021..eeac10e 100644 (file)
@@ -71,6 +71,10 @@ foreach l:libraries
                        shared_deps = ext_deps
                        static_deps = ext_deps
                        foreach d:deps
+                               if not is_variable('shared_rte_' + d)
+                                       error('Missing dependency ' + d +
+                                               ' for library ' + lib_name)
+                               endif
                                shared_deps += [get_variable('shared_rte_' + d)]
                                static_deps += [get_variable('static_rte_' + d)]
                        endforeach