From: Rico Tzschichholz Date: Sun, 9 Sep 2018 16:12:03 +0000 (+0200) Subject: vapigen: Warn if the library argument doesn't match any package attribute X-Git-Tag: 0.42.1~1 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=2539c2db72f59cba9ff1008c5abb94de1ca15329;p=thirdparty%2Fvala.git 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 --- 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) {