[cairo] cairo 1.3.16 with quartz and atsui

Ryan Schmidt cairo-2007a at ryandesign.com
Sat Mar 3 17:15:33 PST 2007


Hello.

Seeing how cairo 1.3.16 is a release candidate for 1.4.0, and it  
includes new quartz code, and I had problems building with quartz and  
atsui support before, I figured I'd try it again with 1.3.16 to see  
what happens, but unfortunately I seem to be having problems again.  
I'm running Mac OS X 10.4.8 on a PowerBook G4.


If I just --enable-atsui it complains that I haven't compiled with  
quartz support:

gcc -DHAVE_CONFIG_H -I. -I. -I.. -I. -I../pixman/src -I/usr/local/ 
graphviz-2.13/include/freetype2 -I/usr/local/graphviz-2.13/include -I/ 
usr/local/graphviz-2.13/include -I/usr/local/graphviz-2.13/include/ 
libpng12 -I/usr/X11R6/include -Wall -Wextra -Wsign-compare -Werror- 
implicit-function-declaration -Wpointer-arith -Wwrite-strings - 
Wstrict-prototypes -Wmissing-prototypes -Wmissing-declarations - 
Wnested-externs -Wpacked -Wswitch-enum -Wmissing-format-attribute - 
Wstrict-aliasing=2 -Winit-self -Wdeclaration-after-statement -Wold- 
style-definition -Wno-missing-field-initializers -Wno-unused- 
parameter -fno-strict-aliasing -I/usr/local/graphviz-2.13/include -I/ 
usr/X11R6/include -I/usr/local/graphviz-2.13/include -I/usr/X11R6/ 
include -MT cairo-atsui-font.lo -MD -MP -MF .deps/cairo-atsui- 
font.Tpo -c cairo-atsui-font.c  -fno-common -DPIC -o .libs/cairo- 
atsui-font.o
In file included from cairo-quartz-private.h:42,
                  from cairo-atsui-font.c:42:
./cairo-quartz.h:63:3: error: #error Cairo was not compiled with  
support for the quartz backend
cairo-atsui-font.c: In function 'CreateSizedCopyOfStyle':
cairo-atsui-font.c:213: warning: ISO C90 forbids mixed declarations  
and code
cairo-atsui-font.c: In function '_cairo_atsui_font_old_show_glyphs':
cairo-atsui-font.c:932: warning: unused variable 'surface'
make[3]: *** [cairo-atsui-font.lo] Error 1
make[2]: *** [all] Error 2
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2


If I just --enable-quartz it fails with undefined atsui symbols:

gcc -dynamiclib  -o .libs/libcairo.2.11.0.dylib  .libs/cairo.o .libs/ 
cairo-arc.o .libs/cairo-array.o .libs/cairo-base85-stream.o .libs/ 
cairo-bentley-ottmann.o .libs/cairo-cache.o .libs/cairo-clip.o .libs/ 
cairo-color.o .libs/cairo-debug.o .libs/cairo-deflate-stream.o .libs/ 
cairo-fixed.o .libs/cairo-font.o .libs/cairo-font-options.o .libs/ 
cairo-freelist.o .libs/cairo-gstate.o .libs/cairo-hash.o .libs/cairo- 
hull.o .libs/cairo-image-surface.o .libs/cairo-lzw.o .libs/cairo- 
matrix.o .libs/cairo-operator.o .libs/cairo-path.o .libs/cairo-path- 
bounds.o .libs/cairo-path-fill.o .libs/cairo-path-fixed.o .libs/cairo- 
path-stroke.o .libs/cairo-pen.o .libs/cairo-polygon.o .libs/cairo- 
rectangle.o .libs/cairo-region.o .libs/cairo-scaled-font.o .libs/ 
cairo-skiplist.o .libs/cairo-slope.o .libs/cairo-spline.o .libs/cairo- 
stroke-style.o .libs/cairo-surface.o .libs/cairo-surface- 
fallback.o .libs/cairo-traps.o .libs/cairo-pattern.o .libs/cairo- 
unicode.o .libs/cairo-output-stream.o .libs/cairo-wideint.o .libs/ 
cairo-meta-surface.o .libs/cairo-paginated-surface.o .libs/cairo- 
analysis-surface.o .libs/cairo-ft-font.o .libs/cairo-ps- 
surface.o .libs/cairo-pdf-surface.o .libs/cairo-png.o .libs/cairo-svg- 
surface.o .libs/cairo-cff-subset.o .libs/cairo-truetype- 
subset.o .libs/cairo-type1-fallback.o .libs/cairo-scaled-font- 
subsets.o .libs/cairo-type1-subset.o .libs/cairo-xlib-surface.o .libs/ 
cairo-xlib-screen.o .libs/cairo-quartz-surface.o  .libs/libcairo.lax/ 
libpixman.a/fbcompose.o .libs/libcairo.lax/libpixman.a/fbedge.o .libs/ 
libcairo.lax/libpixman.a/fbpict.o .libs/libcairo.lax/libpixman.a/ 
fbtrap.o .libs/libcairo.lax/libpixman.a/icblt.o .libs/libcairo.lax/ 
libpixman.a/icbltone.o .libs/libcairo.lax/libpixman.a/iccolor.o .libs/ 
libcairo.lax/libpixman.a/icformat.o .libs/libcairo.lax/libpixman.a/ 
icimage.o .libs/libcairo.lax/libpixman.a/icpixels.o .libs/ 
libcairo.lax/libpixman.a/icrect.o .libs/libcairo.lax/libpixman.a/ 
icstipple.o .libs/libcairo.lax/libpixman.a/ictransform.o .libs/ 
libcairo.lax/libpixman.a/ictrap.o .libs/libcairo.lax/libpixman.a/ 
ictri.o .libs/libcairo.lax/libpixman.a/icutil.o .libs/libcairo.lax/ 
libpixman.a/pixregion.o .libs/libcairo.lax/libpixman.a/renderedge.o    
-L/usr/local/graphviz-2.13/lib -L/usr/X11R6/lib /usr/local/ 
graphviz-2.13/lib/libfreetype.dylib /usr/local/graphviz-2.13/lib/ 
libz.dylib -lz /usr/local/graphviz-2.13/lib/libfontconfig.dylib /usr/ 
local/graphviz-2.13/lib/libexpat.dylib /usr/local/graphviz-2.13/lib/ 
libpng12.dylib -lXrender -lSM -lICE -lX11  -Wl,-framework - 
Wl,CoreServices -Wl,-framework -Wl,ApplicationServices -Wl,-framework  
-Wl,Carbon -install_name  /usr/local/graphviz-2.13/lib/libcairo. 
2.dylib -Wl,-compatibility_version -Wl,14 -Wl,-current_version -Wl,14.0
ld: Undefined symbols:
__cairo_atsui_scaled_font_get_atsu_font_id
__cairo_scaled_font_is_atsui
/usr/bin/libtool: internal link edit command failed
make[3]: *** [libcairo.la] Error 1
make[2]: *** [all] Error 2
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2


So it seems that --enable-quartz and --enable-atsui must always  
appear together, so why isn't there just a single switch (like -- 
enable-quartz-atsui -- similar to how some programs (like graphviz)  
have just --with-pangocairo, since pango and cairo work so closely  
together), or why doesn't configure at least complain loudly if I use  
one but not the other? Currently, configure seems to succeed, and  
then make takes a long time compiling stuff before it finally fails  
with some weird message, which just wastes my time.


Lastly, if I both --enable-quartz and --enable-atsui it fails with an  
error about conflicting types for 'Picture':

gcc -DHAVE_CONFIG_H -I. -I. -I.. -D_GNU_SOURCE -I. -I../pixman/src - 
I../src -I../src -I/usr/local/graphviz-2.13/include/freetype2 -I/usr/ 
local/graphviz-2.13/include -I/usr/local/graphviz-2.13/include -I/usr/ 
local/graphviz-2.13/include/libpng12 -I/usr/X11R6/include -Wall - 
Wextra -Wsign-compare -Werror-implicit-function-declaration -Wpointer- 
arith -Wwrite-strings -Wstrict-prototypes -Wmissing-prototypes - 
Wmissing-declarations -Wnested-externs -Wpacked -Wswitch-enum - 
Wmissing-format-attribute -Wstrict-aliasing=2 -Winit-self - 
Wdeclaration-after-statement -Wold-style-definition -Wno-missing- 
field-initializers -Wno-unused-parameter -fno-strict-aliasing -I/usr/ 
local/graphviz-2.13/include -I/usr/X11R6/include -I/usr/local/ 
graphviz-2.13/include -I/usr/X11R6/include -MT cairo-boilerplate.lo - 
MD -MP -MF .deps/cairo-boilerplate.Tpo -c cairo-boilerplate.c  -fno- 
common -DPIC -o .libs/cairo-boilerplate.o
In file included from /usr/X11R6/include/X11/extensions/Xrender.h:29,
                  from ../src/cairo-xlib-xrender.h:44,
                  from cairo-boilerplate.c:864:
/usr/X11R6/include/X11/extensions/render.h:31: error: conflicting  
types for 'Picture'
/System/Library/Frameworks/ApplicationServices.framework/Frameworks/ 
QD.framework/Headers/Quickdraw.h:309: error: previous declaration of  
'Picture' was here
In file included from /usr/X11R6/include/X11/Xlib.h:59,
                  from /usr/X11R6/include/X11/Xutil.h:55,
                  from /usr/X11R6/include/X11/extensions/Xrender.h:33,
                  from ../src/cairo-xlib-xrender.h:44,
                  from cairo-boilerplate.c:864:
/usr/X11R6/include/X11/X.h:108: error: conflicting types for 'Cursor'
/System/Library/Frameworks/ApplicationServices.framework/Frameworks/ 
QD.framework/Headers/Quickdraw.h:278: error: previous declaration of  
'Cursor' was here
make[2]: *** [cairo-boilerplate.lo] Error 1
make[1]: *** [all-recursive] Error 1
make: *** [all] Error 2


I realize these are experimental / unsupported backends, but I was  
hoping to at least be able to compile them.




More information about the cairo mailing list