build: improve error message for missing dependency

Message ID 20180720132825.772-1-bruce.richardson@intel.com (mailing list archive)
State Accepted, archived
Delegated to: Bruce Richardson
Headers
Series build: improve error message for missing dependency |

Checks

Context Check Description
ci/checkpatch success coding style OK
ci/Intel-compilation success Compilation OK

Commit Message

Bruce Richardson July 20, 2018, 1:28 p.m. UTC
  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 | 4 ++++
 lib/meson.build     | 4 ++++
 2 files changed, 8 insertions(+)
  

Comments

Thomas Monjalon July 26, 2018, 8:05 a.m. UTC | #1
20/07/2018 15:28, Bruce Richardson:
> 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>

Applied, thanks
  

Patch

diff --git a/drivers/meson.build b/drivers/meson.build
index 82cc8ed49..f94e2fe67 100644
--- a/drivers/meson.build
+++ b/drivers/meson.build
@@ -62,6 +62,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
diff --git a/lib/meson.build b/lib/meson.build
index 4384813f8..71f35d162 100644
--- a/lib/meson.build
+++ b/lib/meson.build
@@ -69,6 +69,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