On Jun 6, 2013, at 11:39 AM, ~suv wrote:
- Revision 12353 fails to compile with older (2.28.x) and newest
(2.36.x) glib/glibmm versions (different errors):
On legacy Mac OS X 10.5.8 system with
- glib 2.28.8, glibmm 2.28.2, gtkmm 2.24.2:
CXX ui/dialog/filedialog.o In file included from ui/dialog/filedialog.cpp:19: ui/dialog/filedialogimpl-gtkmm.h:24:28: error: glibmm/threads.h: No such file or directory
Fixed in a pending follow-up.
AFAICT the build failure here is due to a typo in the earlier revision (in 'src/ui/dialog/filedialogimpl-gtkmm.h' the include line had been added twice in r12347, but in r12353 only one of them is put inside the #if … #endif condition)
Yes.
On up-todate OS X 10.7.5 with
- glib 2.36.2, glibmm 2.36.2, gtkmm 2.24.3 (patched via MacPorts):
CXX ege-adjustment-action.o In file included from /Volumes/magenta/mp-trunk/quartz/include/glibmm-2.4/glibmm.h:89, from /Volumes/magenta/mp-trunk/quartz/include/gtkmm-2.4/gtkmm/stockid.h:26, from /Volumes/magenta/mp-trunk/quartz/include/gtkmm-2.4/gtkmm/iconset.h:35, from /Volumes/magenta/mp-trunk/quartz/include/gtkmm-2.4/gtkmm/style.h:46, from /Volumes/magenta/mp-trunk/quartz/include/gtkmm-2.4/gtkmm/rc.h:31, from /Volumes/magenta/mp-trunk/quartz/include/gtkmm-2.4/gtkmm/widget.h:48, from ../../src/widgets/icon.h:21, from ../../src/ege-adjustment-action.cpp:45:
The pending follow-up added missing config.h inclusion that building on an Ubuntu test system did not highlight.
OTOH the build of r12353 succeeds on OS X 10.7.5 with these versions:
- glib 2.32.4, glibmm 2.32.1, gtk+/x11 2.24.13, gtkmm 2.24.2
- glib 2.34.3, glibmm 2.34.1, gtk+/quartz 2.24.17, gtkmm 2.24.2
- Doesn't the new check introduced in revision 12353 [1] duplicate one
already introduced in r12337 [2] for the same purpose?
Not really. Its consequences are close, but the new check is explicitly verifying the presence of the newer header, versus guessing that it might be there due to version checks. (partly this is needed as glibmm does not provide any version check macros we could use for compile-time vs. configure-time checks)
In theory a later version of glibmm might drop that header file and the earlier check from 12337 would cause code to fail, while the newer HAVE_ check would keep working.
(even Microsoft has recommended doing feature checks, not version checks)
- AFAICT the latest changes in r12353 do not address includes in files
compiled for optional features i.e. if ImageMagick, libcdr and libvisio are detected by configure - see also comment #10 in bug #1179338.
Yes. Yet another follow-up can check for those... or in the meantime anyone who trips over it can have a template of successful fixup they can just copy and paste.