summaryrefslogtreecommitdiffstats
path: root/common
diff options
context:
space:
mode:
authorChristophe Fergeau <cfergeau@redhat.com>2011-04-20 17:50:22 +0200
committerChristophe Fergeau <cfergeau@redhat.com>2011-05-03 14:44:10 +0200
commit2db7212175c51f4121790bfd1fd677c0b77833d5 (patch)
tree8511c736d8a6ca3c0adc43059ff47cdc53f9a980 /common
parent253aa0c960ccb3fd2cd6f6b2550ef09b9cbd5d1a (diff)
downloadspice-2db7212175c51f4121790bfd1fd677c0b77833d5.tar.gz
spice-2db7212175c51f4121790bfd1fd677c0b77833d5.tar.xz
spice-2db7212175c51f4121790bfd1fd677c0b77833d5.zip
autotools: correctly build canvas-related code
spice client and spice server shares code from common/{gdi,gl,sw}_canvas.[ch]. However, while most of the code is shared, the server code wants a canvas compiled with SW_CANVAS_IMAGE_CACHE defined while the client code wants a canvas compiled with SW_CANVAS_CACHE. The initial autotools refactoring didn't take that into account, this is now fixed by this commit. After this commit, the canvas files from common/ are no longer compiled as part of the libspice-common.la convenience library. Instead, there are "proxy" canvas source files in client/ and server/ which #include the appropriate C files after defining the relevant #define for the binary that is being built. To prevent misuse of the canvas c files and headers in common/, SPICE_CANVAS_INTERNAL must be set when including the canvas headers from common/ or when building the c files from common/ otherwise the build will error out.
Diffstat (limited to 'common')
-rw-r--r--common/Makefile.am20
-rw-r--r--common/canvas_base.c4
-rw-r--r--common/canvas_base.h3
-rw-r--r--common/gdi_canvas.c5
-rw-r--r--common/gdi_canvas.h4
-rw-r--r--common/gl_canvas.c5
-rw-r--r--common/gl_canvas.h4
-rw-r--r--common/sw_canvas.c4
-rw-r--r--common/sw_canvas.h4
9 files changed, 39 insertions, 14 deletions
diff --git a/common/Makefile.am b/common/Makefile.am
index 0a2f9c16..501a6e15 100644
--- a/common/Makefile.am
+++ b/common/Makefile.am
@@ -6,7 +6,6 @@ NULL =
noinst_LTLIBRARIES = libspice-common.la
libspice_common_la_SOURCES = \
- canvas_base.h \
canvas_utils.c \
canvas_utils.h \
draw.h \
@@ -34,21 +33,10 @@ libspice_common_la_SOURCES = \
rop3.c \
rop3.h \
spice_common.h \
- sw_canvas.c \
- sw_canvas.h \
- $(NULL)
-
-if OS_WIN32
-libspice_common_la_SOURCES += \
- gdi_canvas.h \
- gdi_canvas.c \
$(NULL)
-endif
if SUPPORT_GL
libspice_common_la_SOURCES += \
- gl_canvas.h \
- gl_canvas.c \
gl_utils.h \
glc.h \
glc.c \
@@ -58,7 +46,6 @@ libspice_common_la_SOURCES += \
endif
INCLUDES = \
- -DSW_CANVAS_IMAGE_CACHE \
$(GL_CFLAGS) \
$(PIXMAN_CFLAGS) \
$(PROTOCOL_CFLAGS) \
@@ -69,6 +56,13 @@ INCLUDES = \
EXTRA_DIST = \
canvas_base.c \
+ canvas_base.h \
+ gdi_canvas.c \
+ gdi_canvas.h \
+ gl_canvas.c \
+ gl_canvas.h \
+ sw_canvas.c \
+ sw_canvas.h \
lz_compress_tmpl.c \
lz_decompress_tmpl.c \
quic_family_tmpl.c \
diff --git a/common/canvas_base.c b/common/canvas_base.c
index 4dedfcf4..fe650feb 100644
--- a/common/canvas_base.c
+++ b/common/canvas_base.c
@@ -16,6 +16,10 @@
License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
+#ifndef SPICE_CANVAS_INTERNAL
+#error "This file shouldn't be compiled directly"
+#endif
+
#include <stdarg.h>
#include <stdlib.h>
#include <setjmp.h>
diff --git a/common/canvas_base.h b/common/canvas_base.h
index ff0f972e..7c5f2755 100644
--- a/common/canvas_base.h
+++ b/common/canvas_base.h
@@ -19,6 +19,9 @@
#ifndef _H_CANVAS_BASE
#define _H_CANVAS_BASE
+#ifndef SPICE_CANVAS_INTERNAL
+#error "This header shouldn't be included directly"
+#endif
#include "pixman_utils.h"
#include "lz.h"
diff --git a/common/gdi_canvas.c b/common/gdi_canvas.c
index 360e6bf1..27f644c1 100644
--- a/common/gdi_canvas.c
+++ b/common/gdi_canvas.c
@@ -16,6 +16,11 @@
License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
+
+#ifndef SPICE_CANVAS_INTERNAL
+#error "This file shouldn't be compiled directly"
+#endif
+
#include <windows.h>
#include <wingdi.h>
#include "gdi_canvas.h"
diff --git a/common/gdi_canvas.h b/common/gdi_canvas.h
index 86be9e17..af5b2296 100644
--- a/common/gdi_canvas.h
+++ b/common/gdi_canvas.h
@@ -19,6 +19,10 @@
#ifndef _H__GDI_CANVAS
#define _H__GDI_CANVAS
+#ifndef SPICE_CANVAS_INTERNAL
+#error "This header shouldn't be included directly"
+#endif
+
#include <stdint.h>
#ifdef __cplusplus
diff --git a/common/gl_canvas.c b/common/gl_canvas.c
index 9867c4f2..844fc07e 100644
--- a/common/gl_canvas.c
+++ b/common/gl_canvas.c
@@ -16,11 +16,14 @@
License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
+#ifndef SPICE_CANVAS_INTERNAL
+#error "This file shouldn't be compiled directly"
+#endif
+
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
-#include "gl_canvas.h"
#include "quic.h"
#include "rop3.h"
#include "region.h"
diff --git a/common/gl_canvas.h b/common/gl_canvas.h
index 67763791..40b67139 100644
--- a/common/gl_canvas.h
+++ b/common/gl_canvas.h
@@ -20,6 +20,10 @@
#include "canvas_base.h"
#include "region.h"
+#ifndef SPICE_CANVAS_INTERNAL
+#error "This header shouldn't be included directly"
+#endif
+
#ifndef _H__GL_CANVAS
#define _H__GL_CANVAS
diff --git a/common/sw_canvas.c b/common/sw_canvas.c
index 95ec292f..e1b13e0b 100644
--- a/common/sw_canvas.c
+++ b/common/sw_canvas.c
@@ -16,6 +16,10 @@
License along with this library; if not, see <http://www.gnu.org/licenses/>.
*/
+#ifndef SPICE_CANVAS_INTERNAL
+#error "This file shouldn't be compiled directly"
+#endif
+
#include <math.h>
#include "sw_canvas.h"
#define CANVAS_USE_PIXMAN
diff --git a/common/sw_canvas.h b/common/sw_canvas.h
index 54655262..d8d26a97 100644
--- a/common/sw_canvas.h
+++ b/common/sw_canvas.h
@@ -19,6 +19,10 @@
#ifndef _H__CANVAS
#define _H__CANVAS
+#ifndef SPICE_CANVAS_INTERNAL
+#error "This header shouldn't be included directly"
+#endif
+
#include <stdint.h>
#include "draw.h"