diff options
author | Thomas Haller <thaller@redhat.com> | 2022-04-07 11:17:52 +0200 |
---|---|---|
committer | Emmanuele Bassi <ebassi@gnome.org> | 2022-09-21 13:26:53 +0100 |
commit | 0ddd6b8857e43474cc11bdd5cffdd5c1021cbb30 (patch) | |
tree | 5b6faf153faa1c79e57a1c18ba62f13185839a46 | |
parent | 0358eaa6245d9003f0f5b44cd4ed6d0282853c51 (diff) | |
download | gobject-introspection-0ddd6b8857e43474cc11bdd5cffdd5c1021cbb30.tar.gz |
giscanner: undef "GLIB_VERSION_{MAX_ALLOWED,MIN_REQUIRED}" macros in generated C file
When g-ir-scanner is used by another project, than that project might
have the GLIB_VERSION_* macros defined. This is useful to ensure that
only intended glib API is used.
The project might then also pass the CFLAGS to g-ir-scanner, without
filtering those defines out. This can lead to compiler warnings.
For example, NetworkManager sets the version macros to GLIB_VERSION_2_40
and thus gets these warnings
/NetworkManager/tmp-introspect66917zc4/NM-1.0.c: In function ‘dump_object_type’:
/NetworkManager/tmp-introspect66917zc4/NM-1.0.c:252:13: warning: Not available before 2.70
252 | if (G_TYPE_IS_FINAL (type))
| ^~~~~~~~~~~~~~~~~
/NetworkManager/tmp-introspect66917zc4/NM-1.0.c: In function ‘dump_fundamental_type’:
/NetworkManager/tmp-introspect66917zc4/NM-1.0.c:370:13: warning: Not available before 2.70
370 | if (G_TYPE_IS_FINAL (type))
| ^~~~~~~~~~~~~~~~~
But these warnings are not correct. The installed g-ir-scanner knows for which
glib version to generate code. Undefine the macros to avoid the warning.
-rw-r--r-- | giscanner/dumper.py | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/giscanner/dumper.py b/giscanner/dumper.py index 22afd61e..74a494b8 100644 --- a/giscanner/dumper.py +++ b/giscanner/dumper.py @@ -34,6 +34,10 @@ from .ccompiler import CCompiler # we want to introspect, in order to call its get_type functions. _PROGRAM_TEMPLATE = """/* This file is generated, do not edit */ + +#undef GLIB_VERSION_MIN_REQUIRED +#undef GLIB_VERSION_MAX_ALLOWED + #include <glib.h> #include <string.h> #include <stdlib.h> |