Skip to contentSkip to conversation

build: improve error message for missing dependency

PATCH Applied Bruce Richardson 2 participants 2 messages Jul 20, 2018 – Jul 26, 2018

Subsystems (2)
lore
Share & tools
lore
#0 lore raw

PATCH 1/1 build: improve error message for missing dependency

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.

---
 drivers/meson.build | 4 ++++
 lib/meson.build     | 4 ++++
 2 files changed, 8 insertions(+)
drivers/meson.build +4 -0
index 82cc8ed49..f94e2fe67 100644
@@ -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
lib/meson.build +4 -0
index 4384813f8..71f35d162 100644
@@ -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
Signature · 1 line
2.17.0
#1 lore raw

20/07/2018 15:28, Bruce Richardson:

Quoted 11 lines

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.

Applied, thanks