Introduction to Cairo
Cairo is a 2D graphics library with support for
multiple output devices. Currently supported output targets include the
X Window System, win32, image buffers,
PostScript, PDF and SVG. Experimental backends include OpenGL, Quartz and
XCB file output. Cairo is designed to produce
consistent output on all output media while taking advantage of display
hardware acceleration when available (e.g., through the X Render
Extension). The Cairo API provides operations
similar to the drawing operators of PostScript and PDF. Operations in
Cairo include stroking and filling cubic
Bézier splines, transforming and compositing translucent images,
and antialiased text rendering. All drawing operations can be transformed
by any
affine
transformation (scale, rotation, shear, etc.).
This package is known to build and work properly
using an LFS 11.3 platform.
Package Information
Cairo Dependencies
Required
libpng-1.6.39 and
Pixman-0.42.2
Recommended
Fontconfig-2.14.2,
GLib-2.74.5 (required for most GUIs), and
Xorg Libraries
Optional
Cogl-1.22.8,
ghostscript-10.00.0,
GTK+-3.24.36 and GTK+-2.24.33,
GTK-Doc-1.33.2,
libdrm-2.4.115,
librsvg-2.54.5,
libxml2-2.10.3,
LZO-2.10,
Mesa-22.3.5,
Poppler-23.02.0,
Qt-5.15.8,
Valgrind-3.20.0,
DirectFB,
jbig2dec,
libspectre,
Skia, and
Qt4.
Note
There is a circular dependency between cairo and harfbuzz.
If cairo is built before harfbuzz, it is necessary to rebuild cairo
after harfbuzz in order to build pango.
User Notes: https://wiki.linuxfromscratch.org/blfs/wiki/cairo
Installation of Cairo
Adapt this package for Binutils-2.39 or later:
sed 's/PTR/void */' -i util/cairo-trace/lookup-symbol.c
Fix a pkg-config file that may cause errors later:
sed -e "/@prefix@/a exec_prefix=@exec_prefix@" \
-i util/cairo-script/cairo-script-interpreter.pc.in
Install Cairo by running the following
commands:
./configure --prefix=/usr \
--disable-static \
--enable-tee &&
make
This package does not have a working test suite.
Now, as the root
user:
make install
Command Explanations
--enable-tee
: This switch enables the
experimental tee surface backend which is required if using
system-installed Cairo with Mozilla applications.
--disable-static
: This switch prevents
installation of static versions of the libraries.
--enable-xlib-xcb
: This switch enables several
experimental Xlib/XCB functions used by some window managers.
--enable-gl
: This switch enables
Cairo's experimental
OpenGL surface which
is required for Wayland
compositor and some other packages that are not
part of BLFS.
--enable-gtk-doc
: Use this parameter if GTK-Doc is
installed and you wish to create and install the documentation.