summaryrefslogtreecommitdiff
blob: 73865349bef960c79054a7f9f1027594a10b40c0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
From fd7f8eefbe8aba0b29d80e3eb9d985d33a268c8a Mon Sep 17 00:00:00 2001
From: Martin Pitt <martinpitt@gnome.org>
Date: Thu, 3 May 2012 09:38:56 +0200
Subject: [PATCH] Fix building with --disable-cairo

Build gobject-introspection's regress.c against cairo, not pycairo/py3cairo. We
always need cairo to build, so unconditionally check for this in configure.ac.

In test_everything.py, gracefully handle the absence of the "cairo" Python
module, which we do not have when building without cairo support.
---
 configure.ac             | 3 +++
 tests/Makefile.am        | 4 ++--
 tests/test_everything.py | 8 +++++++-
 3 files changed, 12 insertions(+), 3 deletions(-)

diff --git a/configure.ac b/configure.ac
index 8606bbd..ef5d7b6 100644
--- a/configure.ac
+++ b/configure.ac
@@ -184,6 +184,9 @@ AC_SUBST(LIBFFI_PC)
 dnl gio
 PKG_CHECK_MODULES(GIO, gio-2.0 >= gio_required_version)
 
+# we always need cairo (not pycairo) for building the tests
+PKG_CHECK_MODULES(CAIRO, cairo)
+
 AC_ARG_ENABLE(cairo,
     AC_HELP_STRING([--enable-cairo], [Enable Cairo bindings using introspection information]),
     enable_cairo=$enableval,
diff --git a/tests/Makefile.am b/tests/Makefile.am
index fa9ab8c..a54bed8 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -2,8 +2,8 @@ CLEANFILES =
 noinst_LTLIBRARIES = libregress.la libgimarshallingtests.la
 
 nodist_libregress_la_SOURCES = $(GI_DATADIR)/tests/regress.c $(GI_DATADIR)/tests/regress.h
-libregress_la_CFLAGS = $(GIO_CFLAGS) $(PYCAIRO_CFLAGS)
-libregress_la_LDFLAGS = -module -avoid-version $(GIO_LIBS) $(PYCAIRO_LIBS)
+libregress_la_CFLAGS = $(GIO_CFLAGS) $(CAIRO_CFLAGS)
+libregress_la_LDFLAGS = -module -avoid-version $(GIO_LIBS) $(CAIRO_LIBS)
 nodist_libgimarshallingtests_la_SOURCES = $(GI_DATADIR)/tests/gimarshallingtests.c $(GI_DATADIR)/tests/gimarshallingtests.h
 libgimarshallingtests_la_CFLAGS = $(GLIB_CFLAGS)
 libgimarshallingtests_la_LDFLAGS = -module -avoid-version $(GLIB_LIBS)
diff --git a/tests/test_everything.py b/tests/test_everything.py
index 47408d4..dfe6eea 100644
--- a/tests/test_everything.py
+++ b/tests/test_everything.py
@@ -9,7 +9,11 @@ sys.path.insert(0, "../")
 from sys import getrefcount
 
 import copy
-import cairo
+try:
+    import cairo
+    has_cairo = True
+except ImportError:
+    has_cairo = False
 
 from gi.repository import GObject
 from gi.repository import GLib
@@ -25,6 +29,7 @@ else:
 
 class TestEverything(unittest.TestCase):
 
+    @unittest.skipUnless(has_cairo, 'built without cairo support')
     def test_cairo_context(self):
         context = Everything.test_cairo_context_full_return()
         self.assertTrue(isinstance(context, cairo.Context))
@@ -33,6 +38,7 @@ class TestEverything(unittest.TestCase):
         context = cairo.Context(surface)
         Everything.test_cairo_context_none_in(context)
 
+    @unittest.skipUnless(has_cairo, 'built without cairo support')
     def test_cairo_surface(self):
         surface = Everything.test_cairo_surface_none_return()
         self.assertTrue(isinstance(surface, cairo.ImageSurface))
-- 
1.8.0.2