[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