summaryrefslogtreecommitdiffstats
path: root/server/reds_gl_canvas.c
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 /server/reds_gl_canvas.c
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 'server/reds_gl_canvas.c')
-rw-r--r--server/reds_gl_canvas.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/server/reds_gl_canvas.c b/server/reds_gl_canvas.c
new file mode 100644
index 00000000..4855a203
--- /dev/null
+++ b/server/reds_gl_canvas.c
@@ -0,0 +1,24 @@
+/*
+ Copyright (C) 2011 Red Hat, Inc.
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, see <http://www.gnu.org/licenses/>.
+*/
+#include "config.h"
+
+#include "reds_gl_canvas.h"
+#define SPICE_CANVAS_INTERNAL
+#define SW_CANVAS_IMAGE_CACHE
+#include "gl_canvas.c"
+#undef SW_CANVAS_IMAGE_CACHE
+#undef SPICE_CANVAS_INTERNAL