Tue 25 Apr 2006 11:42:01 AM UTC, original submission:
Compiling GNUstep-back-cairo with new release of cairo version 1.0.4:
First of all, to get it to compile at all, I have to fiddle a bit with some includes in CairoFontInfo.h. It appears that the Cairo folks have switched to using Freetype Macro names for includes instead of the previous way of directly importing header files. I had to add the the following to CairoFontInfo.h to get Cairo to compile:
"
#include <ft2build.h>
#include FT_FREETYPE_H
However, the FT_FREETYPE_H macro is defined in a header file which resides in /usr/include/freetype2 on my system, which I manually added to the Cairo GNUmakefile.preamble in the ADDITIONAL_INCLUDE_DIRS section. This is not the way it should be done, I realize. GNUstep-back's Configure script should be sticking that there depending on where the freetype headers reside on any given system. The GNUstep-back configure script does find all my freetype libs and headers fine, so it's strange that this isn't already happening.
On to compilation...
Fails with glitz, due to removed or renamed Glitz macros, notably GLITZ_FORMAT_OPTION_ONSCREEN_MASK, GLITZ_FORMAT_OPTION_NO_MULTISAMPLE_MASK, and GLITZ_FORMAT_OPTION_SINGLEBUFFER_MASK.
And yes, I have the glitz library and headers installed on my machine.
The exact compilation error I get when compiling gsback-cairo with Glitz on is:
"Compiling file XGCairoGlitzSurface.m ...
XGCairoGlitzSurface.m: In function ‘-[XGCairoGlitzSurface initWithDevice:]’:
XGCairoGlitzSurface.m:35: error: ‘GLITZ_FORMAT_OPTION_ONSCREEN_MASK’ undeclared (first use in this function)
XGCairoGlitzSurface.m:35: error: (Each undeclared identifier is reported only once
XGCairoGlitzSurface.m:35: error: for each function it appears in.)
XGCairoGlitzSurface.m:51: error: ‘GLITZ_FORMAT_OPTION_NO_MULTISAMPLE_MASK’ undeclared (first use in this function)XGCairoGlitzSurface.m:52: error: ‘GLITZ_FORMAT_OPTION_SINGLEBUFFER_MASK’ undeclared (first use in this function)
XGCairoGlitzSurface.m:54: warning: implicit declaration of function ‘glitz_glx_find_standard_format’
XGCairoGlitzSurface.m:57: warning: assignment makes pointer from integer without a cast
XGCairoGlitzSurface.m:65: warning: implicit declaration of function ‘glitz_glx_get_visual_info_from_format’
XGCairoGlitzSurface.m:67: warning: assignment makes pointer from integer without a cast
XGCairoGlitzSurface.m:82: warning: implicit declaration of function ‘cairo_glitz_surface_create’
XGCairoGlitzSurface.m:82: warning: implicit declaration of function ‘glitz_glx_surface_create’
XGCairoGlitzSurface.m:85: warning: assignment makes pointer from integer without a cast
XGCairoGlitzSurface.m:33: warning: unused variable ‘cm’
make[3]: *** [shared_obj/XGCairoGlitzSurface.o] Error 1"
I get much further when using --disable-glitz: The compilation completes successfully, but I get only one warning:
"Compiling file CairoFontInfo.m ...
CairoFontInfo.m: In function ‘_cairo_extents_for_NSGlyph’:
CairoFontInfo.m:183: warning: implicit declaration of function ‘cairo_scaled_font_text_extents’"
Which then results in a symbol lookup error at runtime:
"/usr/GNUstep/System/Applications/Gorm.app/Gorm: symbol lookup error: /usr/GNUstep/System/Library/Bundles/libgnustep-back-010.bundle/./libgnustep-back-010: undefined symbol: cairo_scaled_font_text_extents"
Once again, looks like some more API instability to fix on our side.
|