• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..14-Feb-2021-

boilerplate/H14-Feb-2021-10,0037,772

build/H14-Feb-2021-26,42221,895

src/H14-Feb-2021-186,202131,476

AUTHORSH A D14-Feb-20217.6 KiB111109

BIBLIOGRAPHYH A D14-Feb-20214.2 KiB11080

BUGSH A D14-Feb-20213.6 KiB8663

CODING_STYLEH A D14-Feb-20218.8 KiB292224

COPYINGH A D14-Feb-20211.5 KiB3427

COPYING-LGPL-2.1H A D14-Feb-202125.9 KiB511422

COPYING-MPL-1.1H A D14-Feb-202125.2 KiB471396

ChangeLogH A D14-Feb-20211.8 MiB45,14233,506

HACKINGH A D14-Feb-20215.1 KiB187116

INSTALLH A D14-Feb-20216.4 KiB185134

KNOWN_ISSUESH A D14-Feb-2021445 119

Makefile.amH A D14-Feb-20211.7 KiB8366

Makefile.inH A D14-Feb-202162.1 KiB1,7381,538

Makefile.win32H A D14-Feb-2021668 2819

NEWSH A D14-Feb-2021247 KiB6,5244,988

PORTING_GUIDEH A D14-Feb-20218.5 KiB266215

READMEH A D14-Feb-20216.4 KiB195150

README.win32H A D14-Feb-20213 KiB6755

RELEASINGH A D14-Feb-20215.7 KiB141105

acinclude.m4H A D14-Feb-20211.6 KiB5643

aclocal.m4H A D14-Feb-202141.4 KiB1,1631,057

autogen.shH A D14-Feb-20215.4 KiB198135

cairo-version.hH A D14-Feb-2021148 96

config.h.inH A D14-Feb-20219.7 KiB366258

configureH A D14-Feb-20211.3 MiB39,62932,658

configure.acH A D14-Feb-202127 KiB807693

depcompH A D14-Feb-202115.6 KiB531330

missingH A D14-Feb-202110.8 KiB361268

README

1Cairo - Multi-platform 2D graphics library
2http://cairographics.org
3
4What is cairo
5=============
6Cairo is a 2D graphics library with support for multiple output
7devices. Currently supported output targets include the X Window
8System, quartz, win32, and image buffers, as well as PDF, PostScript,
9and SVG file output. Experimental backends include OpenGL, XCB, BeOS,
10OS/2, and DirectFB.
11
12Cairo is designed to produce consistent output on all output media
13while taking advantage of display hardware acceleration when available
14(for example, through the X Render Extension).
15
16The cairo API provides operations similar to the drawing operators of
17PostScript and PDF. Operations in cairo include stroking and filling
18cubic Bézier splines, transforming and compositing translucent images,
19and antialiased text rendering. All drawing operations can be
20transformed by any affine transformation (scale, rotation, shear,
21etc.).
22
23Cairo has been designed to let you draw anything you want in a modern
242D graphical user interface.  At the same time, the cairo API has been
25designed to be as fun and easy to learn as possible. If you're not
26having fun while programming with cairo, then we have failed
27somewhere---let us know and we'll try to fix it next time around.
28
29Cairo is free software and is available to be redistributed and/or
30modified under the terms of either the GNU Lesser General Public
31License (LGPL) version 2.1 or the Mozilla Public License (MPL) version
321.1.
33
34Where to get more information about cairo
35=========================================
36The primary source of information about cairo is:
37
38	http://cairographics.org/
39
40The latest versions of cairo can always be found at:
41
42	http://cairographics.org/download
43
44Documentation on using cairo and frequently-asked questions:
45
46	http://cairographics.org/documentation
47	http://cairographics.org/FAQ
48
49Mailing lists for contacting cairo users and developers:
50
51	http://cairographics.org/lists
52
53Roadmap and unscheduled things to do, (please feel free to help out):
54
55	http://cairographics.org/roadmap
56	http://cairographics.org/todo
57
58Dependencies
59============
60The set of libraries needed to compile cairo depends on which backends
61are enabled when cairo is configured. So look at the list below to
62determine which dependencies are needed for the backends of interest.
63
64For the surface backends, we have both "supported" and "experimental"
65backends. Further, the supported backends can be divided into the
66"standard" backends which can be easily built on any platform, and the
67"platform" backends which depend on some underlying platform-specific
68system, (such as the X Window System or some other window system).
69
70As an example, for a standard Linux build, (with image, png, pdf,
71PostScript, svg, and xlib surface backends, and the freetype font
72backend), the following sample commands will install necessary
73dependencies:
74
75    Debian (and similar):
76
77	apt-get install libpng12-dev libz-dev libxrender-dev libfontconfig1-dev
78
79    Fedora (and similar):
80
81	yum install libpng-devel zlib-devel libXrender-devel fontconfig-devel
82
83(Those commands intentionally don't install pixman from a distribution
84package since if you're manually compiling cairo, then you likely want
85to grab pixman from the same place at the same time and compile it as
86well.)
87
88Supported, "standard" surface backends
89------------------------------------
90	image backend (required)
91	------------------------
92	pixman >= 0.18.4	http://cairographics.org/releases
93
94	png support (can be left out if desired, but many
95	-----------  applications expect it to be present)
96	libpng			http://www.libpng.org/pub/png/libpng.html
97
98	pdf backend
99	-----------
100	zlib			http://www.gzip.org/zlib
101
102	postscript backend
103	------------------
104	zlib			http://www.gzip.org/zlib
105
106	svg backend
107	-----------
108	[none]
109
110Supported, "platform" surface backends
111-----------------------------------
112	xlib backend
113	------------
114	X11			http://freedesktop.org/Software/xlibs
115
116	xlib-xrender backend
117	--------------------
118	Xrender >= 0.6		http://freedesktop.org/Software/xlibs
119
120	quartz backend
121	--------------
122	MacOS X >= 10.4 with Xcode >= 2.4
123
124	win32 backend
125	-------------
126	Microsoft Windows 2000 or newer[*].
127
128Font backends (required to have at least one)
129---------------------------------------------
130	freetype font backend
131	---------------------
132	freetype >= 2.1.9	http://freetype.org
133	fontconfig		http://fontconfig.org
134
135	quartz-font backend
136	-------------------
137	MacOS X >= 10.4 with Xcode >= 2.4
138
139	win32 font backend
140	------------------
141	Microsoft Windows 2000 or newer[*].
142
143	[*] The Win32 backend should work on Windows 2000 and newer
144	    (excluding Windows Me.) Most testing has been done on
145	    Windows XP. While some portions of the code have been
146	    adapted to work on older versions of Windows, considerable
147	    work still needs to be done to get cairo running in those
148	    environments.
149
150	    Cairo can be compiled on Windows with either the gcc
151	    toolchain (see http://www.mingw.org) or with Microsoft
152	    Visual C++.  If the gcc toolchain is used, the standard
153	    build instructions using configure apply, (see INSTALL).
154	    If Visual C++ is desired, GNU make is required and
155	    Makefile.win32 can be used via 'make -f Makefile.win32'.
156	    The compiler, include paths, and library paths must be set
157	    up correctly in the environment.
158
159	    MSVC versions earlier than 7.1 are known to miscompile
160	    parts of cairo and pixman, and so should be avoided. MSVC
161	    7.1 or later, including the free Microsoft Visual Studio
162	    Express editions, produce correct code.
163
164Experimental surface backends
165-----------------------------
166	xcb backend
167	-----------
168	XCB			http://xcb.freedesktop.org
169
170	beos backend
171	------------
172	No dependencies in itself other than an installed BeOS system, but cairo
173	requires a font backend. See the freetype dependency list.
174
175	os2 backend
176	-----------
177	Cairo should run on any recent version of OS/2 or eComStation, but it
178	requires a font backend. See the freetype dependency list. Ready to use
179	packages and developer dependencies are available at Netlabs:
180				ftp://ftp.netlabs.org/pub/cairo
181
182Compiling
183=========
184See the INSTALL document for build instructions.
185
186History
187=======
188Cairo was originally developed by Carl Worth <cworth@cworth.org> and
189Keith Packard <keithp@keithp.com>. Many thanks are due to Lyle Ramshaw
190without whose patient help our ignorance would be much more apparent.
191
192Since the original development, many more people have contributed to
193cairo. See the AUTHORS files for as complete a list as we've been able
194to compile so far.
195

README.win32

1Building Cairo on Windows
2=========================
3There are two primary ways to build Cairo on Windows. You can use a
4UNIX emulation based setup, such as Cygwin or MSYS, with the
5conventional configure script shipped with Cairo releases. In this
6configuration, you will build with GCC and (implicitly) libtool. In
7the Cygwin case you end up with a DLL that depends on Cygwin and
8should be used only from Cygwin applications. In the MSYS case you end
9up with a "normal" Win32 DLL that can be used either from GCC- or
10Microsoft Visual C++-compiled code. In theory, this technique is no
11different than the ordinary build process for the Cairo library. In
12practise there are lots of small details that can go wrong.
13
14The second way is to use a GNU-compatible make, but build using
15Microsoft's Visual C++ compiler to produce native libraries.  This is
16the setup this README.win32 is written for. Also the DLL produced this
17way is usable either from GCC- or MSVC-compiled code.
18
19Tools required
20==============
21You will need GNU make, version 3.80 or later.  Earlier versions or
22other modern make implementations may work, but are not guaranteed to.
23
24You will also need Microsoft Visual C++.  Version 7 has been most
25heavily tested, but other versions are likely to work fine.
26
27Libraries required
28==================
29Cairo requires a compatible version of the pixman library.  Full build
30instructions are beyond the scope of this document; however, using the
31same tools, it should be possible to build pixman simply by entering
32the pixman/src directory and typing:
33
34    make -f Makefile.win32 CFG=release
35
36Depending on your feature set, you may also need zlib and libpng.
37
38Building
39========
40There are a few files that you will need to edit.  First, you must
41determine which features will be built.  Edit
42build/Makefile.win32.features and set the features as desired.  Note
43that most features have external dependencies; specifically,
44CAIRO_HAS_PNG_FUNCTIONS requires libpng to be present, and
45CAIRO_HAS_PS_SURFACE and CAIRO_HAS_PDF_SURFACE both require zlib.
46
47To ensure that the compiler can find all dependencies, you may need to
48edit build/Makefile.win32.common.  In particular, ensure that
49PIXMAN_CFLAGS contains a -I parameter pointing to the location of
50your pixman header files and that PIXMAN_LIBS points to the actual
51location of your pixman-1.lib file.  You may also need to edit the
52various occurrences of CAIRO_LIBS to point to other libraries
53correctly.  Note also that if you wish to link statically with zlib,
54you should replace zdll.lib with zlib.lib.
55
56Finally, from the top Cairo directory, type:
57
58    make -f Makefile.win32 CFG=release
59
60If this command succeeds, you will end up with src/release/cairo.dll.
61To successfully use Cairo from your own programs, you will probably
62want to move this file to some central location.  You will also
63probably want to copy the Cairo header files.  These should be placed
64in a cairo subdirectory (for instance, c:/code/common/include/cairo).
65The exact set to copy depends on your features and is reported to you
66at the end of the build.
67