From e94cbcd6cfa0756688a053ea54089508357ff27f Mon Sep 17 00:00:00 2001 From: Rico Tzschichholz Date: Thu, 3 Dec 2020 19:44:06 +0100 Subject: [PATCH] vala: Report an error if gio-2.0 is missing for DBus support --- vala/valaclass.vala | 4 ++++ vala/valainterface.vala | 4 ++++ vala/valaobjecttypesymbol.vala | 13 +++++++++++++ 3 files changed, 21 insertions(+) diff --git a/vala/valaclass.vala b/vala/valaclass.vala index 9ebb17271..7d59cfaad 100644 --- a/vala/valaclass.vala +++ b/vala/valaclass.vala @@ -522,6 +522,10 @@ public class Vala.Class : ObjectTypeSymbol { return !error; } + if (!base.check (context)) { + return false; + } + checked = true; var old_source_file = context.analyzer.current_source_file; diff --git a/vala/valainterface.vala b/vala/valainterface.vala index 5cd8bd446..1e0cbdaa8 100644 --- a/vala/valainterface.vala +++ b/vala/valainterface.vala @@ -156,6 +156,10 @@ public class Vala.Interface : ObjectTypeSymbol { return !error; } + if (!base.check (context)) { + return false; + } + checked = true; var old_source_file = context.analyzer.current_source_file; diff --git a/vala/valaobjecttypesymbol.vala b/vala/valaobjecttypesymbol.vala index c79df83a3..c771f8541 100644 --- a/vala/valaobjecttypesymbol.vala +++ b/vala/valaobjecttypesymbol.vala @@ -375,4 +375,17 @@ public abstract class Vala.ObjectTypeSymbol : TypeSymbol { d.accept (visitor); } } + + public override bool check (CodeContext context) { + if (checked) { + return !error; + } + + if (!external_package && get_attribute ("DBus") != null && !context.has_package ("gio-2.0")) { + error = true; + Report.error (source_reference, "gio-2.0 package required for DBus support"); + } + + return !error; + } } -- 2.47.2