diff options
author | Rico Tzschichholz <ricotz@ubuntu.com> | 2018-09-09 18:12:03 +0200 |
---|---|---|
committer | Rico Tzschichholz <ricotz@ubuntu.com> | 2018-09-17 14:09:59 +0200 |
commit | 2539c2db72f59cba9ff1008c5abb94de1ca15329 (patch) | |
tree | 6b9e4915325c386c523b090afe32e13de0542831 /vapigen | |
parent | 0e7ea430ac7874abbbc076bf7ba226351fb4580d (diff) | |
download | vala-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.vala | 11 |
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) { |