Commit graph

5968 commits

Author SHA1 Message Date
Behdad Esfahbod
7e45937e21 [boilerplate] Add cairo_boilerplate_version[_string]() functions 2008-09-02 21:56:37 -04:00
Behdad Esfahbod
a7951081f1 Move _GNU_SOURCE declarations to where it's used
Such that we don't rely on more GNU extensions accidentally.
2008-09-02 21:54:09 -04:00
Behdad Esfahbod
b4cee2bd88 [boilerplate] Remove obsolete reference to pixman 2008-09-02 21:36:20 -04:00
Behdad Esfahbod
e3d190c92f [boilerplate] Cleanup 2008-09-02 21:35:18 -04:00
Behdad Esfahbod
af0069c1c4 [autogen.sh] Create dummy src/Config.mk so we can bootstrap 2008-09-02 21:31:47 -04:00
Behdad Esfahbod
2823ebaa6e [src/check-link.c] Simple test to check we can link to the built cairo.so 2008-09-02 21:31:43 -04:00
Behdad Esfahbod
5926257770 Revamp the build system.
Quick summary of changes:

  - Move list of cairo source files out of src/Makefile.am and into
    src/Sources.mk,

  - Generate files src/Config.mk and src/Config.mk.win32 that choose
    the right set of source files and headers based on configured
    backends and features.  This drastically simplifies building
    using other build systems.  The src/Makefile.win32 file needs
    to be updated to reflect these changes.

  - Add README files to various directories,

  - Add toplevel HACKING file.
2008-09-02 20:24:08 -04:00
Behdad Esfahbod
5cb3e66305 [configure.in] Create temp file in current dir
Such that we can use the CAIRO_CONFIG_COMMANDS macro to regenerate
files in $srcdir and still be readonly-source-tree happy if nothing
changed in the target file.
2008-09-02 20:24:07 -04:00
Behdad Esfahbod
e977f32346 [configure.in] Create backend .pc files using CAIRO_CONFIG_COMMANDS 2008-09-02 20:24:07 -04:00
Behdad Esfahbod
1bdd6110f6 [configure.in] Consistently use _save_cflags/libs 2008-09-02 20:24:06 -04:00
Behdad Esfahbod
004012f1bc [configure.in] Cache WARN_UNUSED_RESULT test results 2008-09-02 20:24:05 -04:00
Behdad Esfahbod
ac24642614 [configure.in] Use warning-flag facilities for -fno-strict-aliasing 2008-09-02 20:24:05 -04:00
Behdad Esfahbod
d28243785a [configure.in] Remove unused MMX checks
Leftover from pixman days
2008-09-02 20:24:04 -04:00
Behdad Esfahbod
74cd03be70 [configure.in] Cache atomic-ops check results 2008-09-02 20:24:04 -04:00
Behdad Esfahbod
7af228ab83 [configure.in] Make unsupported-backend warning generation automatic 2008-09-02 20:24:03 -04:00
Behdad Esfahbod
7510aa8033 [configure.in] Define CAIRO_CONFIG_COMMANDS for easier file creation 2008-09-02 20:24:02 -04:00
Behdad Esfahbod
5f1993c53a [configure] Add user-fonts to list of configured components 2008-09-02 20:24:02 -04:00
Behdad Esfahbod
3385907097 [configure.in] Don't include cairo-features.h in cairo-no-features.h
No idea why I did before.
2008-09-02 20:24:01 -04:00
Behdad Esfahbod
5f571290db [configure.in] Add CAIRO_BEGIN/END_DECLS to config.h 2008-09-02 20:24:00 -04:00
Behdad Esfahbod
2553579cc8 [doc] Clean up doc file names 2008-09-02 20:24:00 -04:00
Behdad Esfahbod
a5a896aae8 Update header glob 2008-09-02 20:23:59 -04:00
Chris Wilson
7b2e8035f2 [cairo-test] Fixup a few memleaks on failure.
Free the test image before jumping to UNWIND_CAIRO.
2008-09-02 10:54:13 +01:00
Chris Wilson
a5d33bcbb4 [xlib] Keep a pointer to the cairo_xlib_display_t on the surface.
Cleanup the code somewhat by passing cairo_xlib_display_t around
internally as opposed to a Display and then having to lookup the
corresponding cairo_xlib_display_t each time.

[To get a cairo_xlib_display_t from a Display is a list traversal under
mutex (though the element we're looking for is most likely at the start),
but to get the Display is just a lockless pointer dereference.]
2008-09-02 10:49:12 +01:00
Chris Wilson
939b836bfa [xlib] Use an embedded doubly-linked list for the close display hooks.
Kill the allocation and linear search of the close display list on remove,
by embedding a list node into the parent structure.

Original patch by Karl Tomlinson <karlt+@karlt.net>, Mozilla Corporation.
https://bugzilla.mozilla.org/show_bug.cgi?id=453199#c5
2008-09-02 10:08:04 +01:00
Chris Wilson
38f779afcb [user-font] Propagate status return.
An error return possible went unpropagated - fix that. Also whilst in the
vicinity avoid the non-constant initialisation of the local variable
before the antiquated compilers moan.
2008-09-02 09:17:33 +01:00
Chris Wilson
83f390cfc5 [ps] Initialise has_creation_date.
Slipped by check-valgrind, since the boilerplate always initialised it
when explicitly setting the date.
2008-09-01 18:24:15 +01:00
Chris Wilson
e955b7399e Check that lvalue of BITSWAP8() is a uint8_t.
The bit-swapping macro uses the full register for intermediate storage so
we need to be careful to only read the low byte when using the result.

[Only the use in ps-surface.c was incorrect, I just converted the other
unsigned chars to uint8_t for consistency.]
2008-09-01 15:36:34 +01:00
Vladimir Vukicevic
d756a4d632 [xlib] check for too-large surface size in create similar to avoid UNSUPPORTED loop 2008-08-28 16:58:52 -07:00
Behdad Esfahbod
894940b81f Some nasty tracks to make changing version number not cause a total rebuild
Quite slick!  This comes handy when git-bisect'ing.  The canonical version
number is in toplevel cairo-version.h now.
2008-08-28 18:18:23 -04:00
Behdad Esfahbod
ab5c528de2 Undefine PACKAGE* macros defined by autotools
We use our own macros.  This makes it easier for other build systems.
2008-08-28 17:36:43 -04:00
Behdad Esfahbod
47b3c9aa3f Move version functions to cairo-misc.c 2008-08-28 17:29:32 -04:00
Behdad Esfahbod
89900525fb Move version number to src/cairo-version.h 2008-08-28 17:28:08 -04:00
Behdad Esfahbod
82303d6170 [autogen.sh] Handle case of no aclocal found 2008-08-28 14:40:56 -04:00
Antoine Azar
1c6556f656 Fixed cairo version in win32 makefile 2008-08-28 14:23:16 -04:00
Behdad Esfahbod
22552dae51 Rename _cairo_matrix_compute_scale_factors to _cairo_matrix_compute_basis_scale_factors 2008-08-27 20:08:49 -04:00
Behdad Esfahbod
f7a91e5bd7 [configure.in] Autogenerate libtool version info
For unstable version 1.7.5 we create libcairo.so.2.10705.0
For   stable version 1.8.5 we create libcairo.so.2.10800.5

No more manual work.
2008-08-27 19:06:13 -04:00
Behdad Esfahbod
df64e0e632 Cleanup libtool version handling
In preparation to remove the manual numbering completely
2008-08-27 18:41:22 -04:00
Behdad Esfahbod
50b2076a54 [autogen.sh] Prefer glibtoolize to libtoolize if available
Makes OS X users happy.
2008-08-27 17:59:13 -04:00
Behdad Esfahbod
98942f99f3 [configure.in] Move library version information to Version.mk 2008-08-27 17:53:30 -04:00
Vladimir Vukicevic
2cf82eaf0d [xlib] Check CreatePixmap dimensions before calling, to avoid unnecessary size errors 2008-08-27 14:16:52 -07:00
Behdad Esfahbod
719c17c293 [src/Makefile.am] Remove gcc dependency 2008-08-27 17:09:19 -04:00
Chris Wilson
a8c0998baf [ps] Check tmpfile status after reading.
Be paranoid and check to see if we encountered an error whilst reading the
temporary file.
2008-08-27 14:58:53 +01:00
Chris Wilson
bd21b2f630 [test] Ensure that the output is always saved.
Do the saving of the output first before checking for various failures
with respect to the reference images.
2008-08-26 23:03:08 +01:00
Chris Wilson
de6742c5f1 [ps] Mark the hex data as unsigned char.
Use unsigned char to avoid sign extensions issues when bit shifting.
2008-08-26 23:02:41 +01:00
Chris Wilson
92fcb9d2f7 [configure.in] Autoconf strikes back
Need to disable references to *.cpp to convince autoconf
not to use the g++ linker (and fail miserably).
2008-08-26 23:02:10 +01:00
Chris Wilson
08ea9d1f2a [pdiff] Get the surface data pointer once.
Don't call cairo_image_surface_get_data() for every single component of
the two surfaces to compare.
2008-08-26 23:01:30 +01:00
Chris Wilson
590ccb9006 [ps] Convert a few residual CRLF to LF.
Just a few CRLF eol-terminators remained, cluttering the output.
2008-08-26 23:01:15 +01:00
Behdad Esfahbod
78758b6acc [Makefile.am] Add autogen.sh to dist. Oops! 2008-08-23 14:22:58 -04:00
Chris Wilson
17a6d541f8 [test] Explicity save a fail image.
Be explicit about handling cached FAIL images, instead of relying on the
sequences of failed matches as the files are an external resource and we
can not guarantee their individual accessibility.

Note this also changes the filename, so you may want to run:
$ find -name '*-last.*' -print | xargs rm
after this checkout.
2008-08-21 08:45:06 +01:00
Chris Wilson
b9287e6669 [test] Cache last output and compare next time.
Compare the current output against a previous run to determine if there
has been any change since last time, and only run through imagediff if
there has been. For the vector surfaces, we can check the vector output
first and potentially skip the rasterisation. On my machine this reduces
the time for a second run from 6 minutes to 2m30s. As most of the time,
most test output will remain unchanged, so this seems to be a big win. On
unix systems, hard linking is used to reduce the amount of storage space
required - others will see about a three-fold increase in the amount of
disk used.  The directory continues to be a stress test for file selectors.

In order to reduce the changes between runs, the current time is no longer
written to the PNG files (justified by that it only exists as a debugging
aid) and the boilerplate tweaks the PS surface so that the creation date
is fixed. To fully realise the benefits here, we need to strip the
creation time from all the reference images...

The biggest problem with using the caches is that different runs of the
test suite can go through different code paths, introducing potential
Heisenbergs. If you suspect that caching is interfering with the test
results, use 'make -C test clean-caches check'.
2008-08-20 23:56:56 +01:00