summaryrefslogtreecommitdiff
path: root/vapigen
diff options
context:
space:
mode:
authorRico Tzschichholz <ricotz@ubuntu.com>2018-09-09 18:12:03 +0200
committerRico Tzschichholz <ricotz@ubuntu.com>2018-09-17 14:09:59 +0200
commit2539c2db72f59cba9ff1008c5abb94de1ca15329 (patch)
tree6b9e4915325c386c523b090afe32e13de0542831 /vapigen
parent0e7ea430ac7874abbbc076bf7ba226351fb4580d (diff)
downloadvala-2539c2db72f59cba9ff1008c5abb94de1ca15329.tar.gz
vapigen: Warn if the library argument doesn't match any package attribute
GIR files can contain a package key referring to the pkg-config name which is the recommended and even required naming of a vapi. Fixes https://gitlab.gnome.org/GNOME/vala/issues/669
Diffstat (limited to 'vapigen')
-rw-r--r--vapigen/valavapigen.vala11
1 files changed, 11 insertions, 0 deletions
diff --git a/vapigen/valavapigen.vala b/vapigen/valavapigen.vala
index 9fe8ea6f0..f4ae9a50e 100644
--- a/vapigen/valavapigen.vala
+++ b/vapigen/valavapigen.vala
@@ -170,6 +170,9 @@ class Vala.VAPIGen {
return quit ();
}
+ // candidates to match library against
+ string[] package_names = {};
+
// interface writer ignores external packages
foreach (SourceFile file in context.get_source_files ()) {
if (file.filename.has_suffix (".vapi")) {
@@ -187,10 +190,18 @@ class Vala.VAPIGen {
}
}
}
+ if (file.explicit && file.package_name != null) {
+ package_names += file.package_name;
+ }
}
}
}
+ var library_name = Path.get_basename (library);
+ if (package_names.length > 0 && !(library_name in package_names)) {
+ Report.warning (null, "Given library name `%s' does not match pkg-config name `%s'".printf (library_name, string.join ("', `", package_names)));
+ }
+
var interface_writer = new CodeWriter (CodeWriterType.VAPIGEN);
var vapi_filename = "%s.vapi".printf (library);
if (directory != null) {