mirror of
https://gitlab.uni-freiburg.de/opensourcevdi/spice-common
synced 2026-01-25 01:11:19 +00:00
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.
This commit is contained in:
parent
d53bbea0c8
commit
aa2b615cd8
20
Makefile.am
20
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 \
|
||||
|
||||
@ -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>
|
||||
|
||||
@ -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"
|
||||
|
||||
@ -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"
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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"
|
||||
|
||||
@ -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
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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"
|
||||
|
||||
Loading…
Reference in New Issue
Block a user