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.0
          platform.
        
        
          Package Information
        
        
        
          Cairo Dependencies
        
        
          Required
        
        
          libpng-1.6.37 and Pixman-0.40.0
        
        
          Recommended
        
        
          Fontconfig-2.13.1, GLib-2.68.4
          (required for most GUIs), and Xorg Libraries
        
        
          Optional
        
        
          Cogl-1.22.8, ghostscript-9.54.0,
          GTK+-3.24.30 and GTK+-2.24.33, GTK-Doc-1.33.2, libdrm-2.4.107, librsvg-2.50.7, libxml2-2.9.12, LZO-2.10, Mesa-21.2.1,
          Poppler-21.08.0, Qt-5.15.2, Valgrind-3.17.0, DirectFB,
          jbig2dec, libspectre,
          Skia, and Qt4.
        
        
          ![[Note]](../images/note.png) 
          
            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
        
        
          Install Cairo by running the
          following commands:
        
        ./configure --prefix=/usr    \
            --disable-static \
            --enable-tee &&
make
        
          This package does not have a working testsuite.
        
        
          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.