Re: gtkmm-2.24.3 include files



I'm sure this is by accident.

When a tarball is made, or gtkmm is built from the files in the git repository, many source files in gdk/gdkmm and gtk/gtkmm are built by the command gmmproc, which is part of glibmm. (It's called gtkmmproc in a comment in the generated files.) Old versions of gmmproc, up to 2.31.0 (2011-10-25) included glibmm.h in all generated .h files. Newer versions of gmmproc includes glibmm/ustring.h and sigc++/sigc++.h in the .h files and glibmm.h in the .cc files. Obviously one of these newer versions of gmmproc was used when the tarball of gtkmm-2.24.3 was generated. Missing inclusions of glibmm files in header files are not easily detected when gtkmm is built, because glibmm.h is included in the .cc files.

I think we need a script that includes each header file, one at a time, in a small dummy program, and compiles it. Perhaps it could be part of 'make check'. Then the compiler would react if a header file does not include all files that it depends on.

See also https://bugzilla.gnome.org/show_bug.cgi?id=697835

Kjell

2013-04-11 09:51, Martin von Gagern skrev:
Hi!

I noticed that the gdkmm headers from gtkmm-2.24.3 will in several
places no longer include the headers required to define all its types.
For example, gdkmm/color.h no longer includes glibmm.h, so GType won't
be declared. This breaks existing code in e.g. Inkscape, as described in
https://bugs.gentoo.org/465472. Is there a reason why this change in a
stable branch is desirable or neccessary? Or is this by accident?

Greetings,
  Martin von Gagern





[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]