]> git.ipfire.org Git - thirdparty/vala.git/commitdiff
vala: Report an error if gio-2.0 is missing for DBus support
authorRico Tzschichholz <ricotz@ubuntu.com>
Thu, 3 Dec 2020 18:44:06 +0000 (19:44 +0100)
committerRico Tzschichholz <ricotz@ubuntu.com>
Thu, 3 Dec 2020 19:13:43 +0000 (20:13 +0100)
vala/valaclass.vala
vala/valainterface.vala
vala/valaobjecttypesymbol.vala

index 9ebb17271d93428a073ec9861bbf5ea4cbd0f2ed..7d59cfaad4d9b8aee759465e48d9911a4ef20a24 100644 (file)
@@ -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;
index 5cd8bd44632b72cca2e52891eef6e0669a0311c9..1e0cbdaa86e27b25bd8af22c1365963ebf683a22 100644 (file)
@@ -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;
index c79df83a39321675cfab3d1888a1a151ff16e977..c771f85412c71a2dadf56951ea65a536c16af4f8 100644 (file)
@@ -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;
+       }
 }