mirror of
https://gitlab.gnome.org/jwestman/blueprint-compiler.git
synced 2025-05-04 15:59:08 -04:00
Detect when gobject-introspection is missing
Instead of a compiler bug error, show a proper error message that asks whether gobject-introspection is installed. Fixes #58.
This commit is contained in:
parent
f6355fe412
commit
42aa91d4d9
3 changed files with 9 additions and 1 deletions
|
@ -81,6 +81,8 @@ class AstNode:
|
|||
validator(self)
|
||||
except CompileError as e:
|
||||
yield e
|
||||
if e.fatal:
|
||||
return
|
||||
|
||||
for child in self.children:
|
||||
yield from child._get_errors()
|
||||
|
|
|
@ -37,7 +37,7 @@ class CompileError(PrintableError):
|
|||
category = "error"
|
||||
color = Colors.RED
|
||||
|
||||
def __init__(self, message, start=None, end=None, did_you_mean=None, hints=None, actions=None):
|
||||
def __init__(self, message, start=None, end=None, did_you_mean=None, hints=None, actions=None, fatal=False):
|
||||
super().__init__(message)
|
||||
|
||||
self.message = message
|
||||
|
@ -45,6 +45,7 @@ class CompileError(PrintableError):
|
|||
self.end = end
|
||||
self.hints = hints or []
|
||||
self.actions = actions or []
|
||||
self.fatal = fatal
|
||||
|
||||
if did_you_mean is not None:
|
||||
self._did_you_mean(*did_you_mean)
|
||||
|
|
|
@ -39,6 +39,11 @@ class GtkDirective(AstNode):
|
|||
err.hint("Expected 'using Gtk 4.0;'")
|
||||
raise err
|
||||
|
||||
try:
|
||||
gir.get_namespace("Gtk", self.tokens["version"])
|
||||
except:
|
||||
raise CompileError("Could not find GTK 4 introspection files. Is gobject-introspection installed?", fatal=True)
|
||||
|
||||
|
||||
@property
|
||||
def gir_namespace(self):
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue