[Xquartz-dev] libcairo in X11 2.3.2-rc2
Jeremy Huddleston
jeremyhu at apple.com
Thu Nov 27 10:29:11 PST 2008
On Nov 27, 2008, at 04:11, Zulli, Louis P wrote:
>
> I installed X11 2.3.2-rc2 (thanks to all who contributed), which
> installed new cairo libs in /usr/X11/lib. As a result, my pango in /
> usr/local complained, I guess since it was built against the old
> cairo libs.
That shouldn't be the case. The new cairo should work for things
compiled against the older cairo. It's the other way around that you
can get problems.
> So I downloaded and tried to build pango. Compilation failed with:
>
> In file included from pangocairo-atsui.h:27,
> from pangocairo-fontmap.c:29:
> /usr/X11/include/cairo/cairo-quartz.h:78:3: error: #error Cairo was
> not compiled with support for the quartz backend
Yeah, this is your problem... You're trying to build a Quartz Pango
which needs a Quartz Cairo. This is an X11 Cairo and you would need
to build an X11 Pango.
If you want a Quartz Pango, you need to build your own Quartz Cairo...
otherwise disable quartz support when you configure pango.
> So my question is: Is there a reason that cairo was built in the way
> it was? I just downloaded cairo 1.8.4 and configured with --PREFIX=/
> usr/X11. Support for quartz backend was included automatically. I
> then built pango and all seems well.
Yes, it's built that way because that's how it's been built since it
was included in X11. Additionally, this is X11. That's why it's
using the X11 backend.
> Just out of curiosity, why is cairo included with the X11 package?
Because it's the main 2D graphics library for X11 used by things like
GTK and other such toolkits. The fact that it now marginally works
for Quartz is because of effort people have put in to port GTK and
related dependencies to Quartz... not the other way around.
> I used to have my own in /usr/local but having two sets of libcairos
> was a source of trouble.
1) If you want to use your Quartz libcairo, then just make sure X11
isn't in your path. This will cause problems right down the source
tree from cairo to pango to gtk to whatever... it's not unique to cairo.
2) You can work around this by forcing your PKG_CONFIG_PATH to have /
usr/local/... to be first.
More information about the Xquartz-dev
mailing list