Commit Graph

20 Commits

Author SHA1 Message Date
Marc-André Lureau
fb24e4e28b build-sys: split client marshallers in seperate lib 2012-03-25 18:38:09 +02:00
Marc-André Lureau
c1e4e1be63 build-sys: make it a seperately buildable spice-common library
- autotoolize
- fix headers inclusion
- generate gitignores
- workaround serverSMARTCARD support with dirty hack...
2012-03-22 20:21:05 +01:00
Marc-André Lureau
f87bb23ad2 build: replace INCLUDES with AM_CPPFLAGS
Fix warning `INCLUDES' is the old name for `AM_CPPFLAGS' (or `*_CPPFLAGS')
2012-03-20 15:30:24 +01:00
Daniel P. Berrange
985ec9d6ec Add printf format annotations to all '...' functions
To allow the compile to detect incorrect printf formats, any
var-args function should have a format annotation

* common/macros.h: Helper to define ATTR_PRINTF for code
  which can't depend on glib
* common/canvas_base.c, common/lz.h, common/macros.h: Annotate
  some var-args methods
2012-03-20 15:30:24 +01:00
Marc-André Lureau
0a96fe9364 build: remove 'win' directory
Let's use the only included file directly instead.
2012-03-20 15:30:23 +01:00
Marc-André Lureau
508547c100 Add client_marshallers.h client_demarshallers.h from spice-gtk
spice-gtk uses a more up to date version of client/marshallers.h and client/demarshallers.h
2012-03-20 15:30:23 +01:00
Marc-André Lureau
c1403ee6bf Use a log handler to modify abort() behaviour
Be more library friendly, by not aborting in library errors.

spice_common now includes a proper log handler that will abort by
default when reaching a warning.

SPICE_ABORT_LEVEL can be changed to modify run-time abort level.

SPICE_DEBUG_LEVEL can be changed to be more verbose. By default, only
log level more importants than WARNING.

Only memory-related functions are allowed to abort(), since they are
not recoverable errors in the library.
2012-03-20 15:30:23 +01:00
Daniel P. Berrange
f83432a685 Remove trailing blank lines
Remove any blank lines at the end of all source files
2012-03-20 15:25:55 +01:00
Alon Levy
cb4c660655 common: add backtrace via gstack or glibc backtrace
Add a backtrace printing function copied from xserver os/backtrace.c
that uses gstack, and if that isn't found then glibc's backtrace.
Used in ASSERT, tested on F15.
2012-03-20 15:25:53 +01:00
Marc-André Lureau
5de42c768d common: add ssl_verify.c common code
Code adapter from RedPeer::ssl_verify_callback() and used by
spice-gtk.

Since v1:
 - fixed Makefile.am
 - added config.h include
 - autoconf alloca added in patch series
 - moved int escape inside for loop
 - added a failed case when missing assignment
 - replaced strlen () by -1
 - skip spaces after comma
 - c++ guards

I didn't use bool, because openSSL uses int, and it is more future
proof for error reporting.
2012-03-20 15:25:53 +01:00
Christophe Fergeau
29e175bb06 common: don't duplicate find_msb implementation 2012-03-20 15:25:52 +01:00
Christophe Fergeau
d88b144f1b 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.
2012-03-20 15:25:51 +01:00
Christophe Fergeau
4fafa210df autotools: refactor the whole build machinery
spice Makefile.am setup is a bit confusing, with source file
names being listed several times in different Makefile.am
(generally, once in EXTRA_DIST and another time in another
Makefile.am in _SOURCES). The client binaries are built
by client/x11/Makefile.am, which means recursing into client,
then into x11 to finally build spicec. This Makefile.am is
also referencing files from common/ and client/, which is
a bit unusual with autotools.

This patch attempts to simplify the build process to get
something more usual from an autotools point of view.
The source from common/ are compiled into a libtool convenience
library, which the server and the client links against which avoids
referencing source files from common/ when building the server and
the client. The client is built in client/Makefile.am and directly
builds files from x11/ windows/ and gui/ if needed (without
recursing in these subdirectories).

This makes the build simpler to understand, and also makes it
possible to list source files once, which avoids potential
make distcheck breakage when adding new files.

There is a regression in this patch with respect to
sw_canvas/gl_canvas/gdi_canvas. They should be built with
different preprocessor #defines resulting in different behaviour
of the canvas for the client and the server. However, this is not
currently the case, both the client and the server will use the same
code for now (which probably means one of them is broken). This will
be fixed in a subsequent commit.

make distcheck passes, but compilation on windows using the
autotools build system hasn't been tested, which means it's likely
to be broken. It shouldn't be too hard ot fix it though, just let
me know of any issues with this.
2012-03-20 15:25:51 +01:00
Alexander Larsson
1b8f3388b0 Make distcheck work 2012-03-20 15:25:48 +01:00
Alexander Larsson
d6a4cad947 Add SpiceMarshaller for easy marshalling 2012-03-20 15:25:43 +01:00
Alexander Larsson
f816707671 Remove all mentions of "cairo" from the code
The command line option is renamed from "cairo" to "sw", and
similarly all filenames and types from Cairo to Sw (and similar).
2012-03-20 15:25:42 +01:00
Alexander Larsson
093e660191 Remove non-used lookup3.[ch] 2012-03-20 15:25:41 +01:00
Alexander Larsson
639b6b5b26 Add line rasterizer 2012-03-20 15:25:37 +01:00
Alexander Larsson
98f2dfbf2f Add pixman utilities
This includes:
 * pixman region from SpiceRects
 * rop2 enum
 * solid fill
 * solid fill with rop
 * tiled fill
 * tiled fill with rop
 * blit
 * blit with rop
 * copy rect
2012-03-20 15:25:37 +01:00
Yaniv Kamay
a9ae774c90 fresh start 2012-03-20 15:25:36 +01:00