cairo/boilerplate
Emmanuele Bassi ba4d5fbd5d Build with hidden symbols by default
We should default on every platform we care about to hidden symbols, to
avoid leaking private symbols.

On Windows this is the default state of affairs with the MSVC toolchain;
with GCC and GCC-compatible toolchains, we need to opt into this
behaviour. Luckily for us, Cairo already has an annotation for public
symbols, so we can easily tweak it to include the visibility attribute.

When building ancillary libraries as part of the Cairo compilation on
Windows, we use a pre-processor symbol to ensure that we keep the
dllexport annotation. This avoids including the cairoint.h header file.

Fixes: #582
2023-08-16 16:33:04 +01:00
..
.gitignore gitignore: Ignore .trs (test results) 2015-07-31 17:56:54 -07:00
cairo-boilerplate-getopt.c whitespace: Fixup formal arguments and tabs in boilerplate/ and perf/. 2010-06-24 15:02:53 +03:00
cairo-boilerplate-getopt.h [cairo-boilerplate] Silence compiler warning. 2008-06-13 21:34:43 +01:00
cairo-boilerplate-pdf.c Fix testing in the full mode for PDF, PS and SVG backends 2020-11-13 12:04:51 +00:00
cairo-boilerplate-private.h Refactor ARRAY_LENGTH macro definitions in test code 2014-11-20 12:22:06 -08:00
cairo-boilerplate-ps.c Fix PS test crash 2021-07-18 18:13:10 +09:30
cairo-boilerplate-quartz.c Add surface-to-png in the quartz boilerplate 2023-08-16 16:33:04 +01:00
cairo-boilerplate-scaled-font.h whitespace: Fixup formal arguments and tabs in boilerplate/ and perf/. 2010-06-24 15:02:53 +03:00
cairo-boilerplate-script.c boilerplate: Remove unused thread id parameter 2011-11-12 20:49:08 +01:00
cairo-boilerplate-svg.c Add support for CAIRO_CONTENT_COLOR 2021-05-01 23:14:24 +02:00
cairo-boilerplate-system.c Remove stray _GNU_SOURCE definitions 2021-05-01 16:58:15 +01:00
cairo-boilerplate-system.h whitespace: Fixup formal arguments and tabs in boilerplate/ and perf/. 2010-06-24 15:02:53 +03:00
cairo-boilerplate-test-surfaces.c Retire dummy cairo-version.h header to fix meson subproject build 2020-09-29 15:50:53 +00:00
cairo-boilerplate-win32-printing.c Defining Windows version macros in meson.build 2023-01-13 05:47:03 +09:00
cairo-boilerplate-win32.c win32: gcc 5.4 build fix 2016-06-21 19:44:48 +09:30
cairo-boilerplate-xcb.c boilerplate: Use _cairo_malloc instead of malloc 2021-07-23 18:33:19 +09:30
cairo-boilerplate-xlib.c boilerplate: Use _cairo_malloc instead of malloc 2021-07-23 18:33:19 +09:30
cairo-boilerplate-xlib.h [boilerplate] Add missing headers. Oops! 2007-04-21 07:23:30 -04:00
cairo-boilerplate.c Replace use of ctype functions with internal version where only ASCII chars are used 2022-04-09 22:08:57 +09:30
cairo-boilerplate.h Fix some MinGW warnings 2021-09-02 21:14:51 +09:30
check-link.c Retire dummy cairo-version.h header to fix meson subproject build 2020-09-29 15:50:53 +00:00
make-cairo-boilerplate-constructors.py meson: use encoding=utf-8 when reading/writing files in helper script 2021-02-23 23:42:11 +00:00
make-cairo-boilerplate-constructors.sh Add meson build definitions 2020-07-31 12:21:50 +01:00
meson.build Build with hidden symbols by default 2023-08-16 16:33:04 +01:00
README Add boilerplate/README explaining its purpose 2006-08-30 22:33:53 -07:00

This directory provides code that is common to both of cairo's tests
suites:

 * The test suite for correctness in test/
 * The test suite for performance in perf/

We call it boilerplate as it consists primarily of the boilerplate
code necessary for initializing a backend in order to create a surface
for that backend.

The code here just might be useful for someone looking to get started
writing cairo code to use a particular backend, (but there are no
promises that the boilerplate code found here for any particular
backend is exemplary).