diff options
author | Christophe Fergeau <cfergeau@redhat.com> | 2011-04-20 17:50:22 +0200 |
---|---|---|
committer | Christophe Fergeau <cfergeau@redhat.com> | 2011-05-03 14:44:10 +0200 |
commit | 2db7212175c51f4121790bfd1fd677c0b77833d5 (patch) | |
tree | 8511c736d8a6ca3c0adc43059ff47cdc53f9a980 /common | |
parent | 253aa0c960ccb3fd2cd6f6b2550ef09b9cbd5d1a (diff) | |
download | spice-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.am | 20 | ||||
-rw-r--r-- | common/canvas_base.c | 4 | ||||
-rw-r--r-- | common/canvas_base.h | 3 | ||||
-rw-r--r-- | common/gdi_canvas.c | 5 | ||||
-rw-r--r-- | common/gdi_canvas.h | 4 | ||||
-rw-r--r-- | common/gl_canvas.c | 5 | ||||
-rw-r--r-- | common/gl_canvas.h | 4 | ||||
-rw-r--r-- | common/sw_canvas.c | 4 | ||||
-rw-r--r-- | common/sw_canvas.h | 4 |
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" |