Generate a compiler error if an application attempts to include a different header. --- doc/reference/Makefile.am | 2 +- src/Makefile.am | 1 + src/channel-cursor.c | 2 +- src/channel-cursor.h | 4 ++++ src/channel-display.c | 2 +- src/channel-display.h | 4 ++++ src/channel-inputs.c | 2 +- src/channel-inputs.h | 4 ++++ src/channel-main.c | 2 +- src/channel-main.h | 4 ++++ src/channel-playback.c | 2 +- src/channel-playback.h | 4 ++++ src/channel-port.c | 2 +- src/channel-port.h | 4 ++++ src/channel-record.c | 2 +- src/channel-record.h | 4 ++++ src/channel-smartcard.c | 2 +- src/channel-smartcard.h | 4 ++++ src/channel-usbredir.c | 2 +- src/channel-usbredir.h | 4 ++++ src/channel-webdav.c | 2 +- src/channel-webdav.h | 4 ++++ src/smartcard-manager.c | 2 +- src/smartcard-manager.h | 4 ++++ src/spice-audio.c | 2 +- src/spice-audio.h | 4 ++++ src/spice-channel.c | 2 +- src/spice-channel.h | 4 ++++ src/spice-client.h | 4 ++++ src/spice-option.h | 4 ++++ src/spice-session.c | 2 +- src/spice-session.h | 4 ++++ src/spice-types.h | 4 ++++ src/spice-uri.c | 2 +- src/spice-uri.h | 4 ++++ src/spice-util.c | 2 +- src/spice-version.h.in | 4 ++++ src/usb-device-manager.c | 2 +- src/usb-device-manager.h | 4 ++++ 39 files changed, 99 insertions(+), 18 deletions(-) diff --git a/doc/reference/Makefile.am b/doc/reference/Makefile.am index ed94138..2d13863 100644 --- a/doc/reference/Makefile.am +++ b/doc/reference/Makefile.am @@ -54,7 +54,7 @@ IGNORE_HFILES= \ $(NULL) # CFLAGS and LDFLAGS for compiling gtkdoc-scangobj with your library. -GTKDOC_CFLAGS = -I$(top_srcdir) -I$(top_builddir) -I$(top_srcdir)/src -I$(top_builddir)/src $(SPICE_GLIB_CFLAGS) $(SPICE_GTK_CFLAGS) $(COMMON_CFLAGS) +GTKDOC_CFLAGS = -I$(top_srcdir) -I$(top_builddir) -I$(top_srcdir)/src -I$(top_builddir)/src $(SPICE_GLIB_CFLAGS) $(SPICE_GTK_CFLAGS) $(COMMON_CFLAGS) -DSPICE_COMPILATION GTKDOC_LIBS = $(top_builddir)/src/libspice-client-glib-2.0.la $(top_builddir)/src/libspice-client-gtk-$(SPICE_GTK_API_VERSION).la $(GTK_LIBS) include $(top_srcdir)/gtk-doc.make diff --git a/src/Makefile.am b/src/Makefile.am index cf02198..a035a2a 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -79,6 +79,7 @@ endif KEYMAP_GEN = $(srcdir)/keymap-gen.pl SPICE_COMMON_CPPFLAGS = \ + -DSPICE_COMPILATION \ -DG_LOG_DOMAIN=\"GSpice\" \ -DSPICE_NO_DEPRECATED \ -DSPICE_GTK_LOCALEDIR=\"${SPICE_GTK_LOCALEDIR}\" \ diff --git a/src/channel-cursor.c b/src/channel-cursor.c index e6514a2..6a9d60a 100644 --- a/src/channel-cursor.c +++ b/src/channel-cursor.c @@ -32,7 +32,7 @@ * @section_id: * @see_also: #SpiceChannel, and the GTK widget #SpiceDisplay * @stability: Stable - * @include: channel-cursor.h + * @include: spice-client.h * * The Spice protocol defines a set of messages for controlling cursor * shape and position on the remote display area. The cursor changes diff --git a/src/channel-cursor.h b/src/channel-cursor.h index 5b5ed47..df64ac2 100644 --- a/src/channel-cursor.h +++ b/src/channel-cursor.h @@ -18,6 +18,10 @@ #ifndef __SPICE_CLIENT_CURSOR_CHANNEL_H__ #define __SPICE_CLIENT_CURSOR_CHANNEL_H__ +#if !defined(__SPICE_CLIENT_H_INSIDE__) && !defined(SPICE_COMPILATION) +#error "Only <spice-client.h> can be included directly" +#endif + #include "spice-client.h" G_BEGIN_DECLS diff --git a/src/channel-display.c b/src/channel-display.c index c3a504f..9f9d62a 100644 --- a/src/channel-display.c +++ b/src/channel-display.c @@ -46,7 +46,7 @@ * @section_id: * @see_also: #SpiceChannel, and the GTK widget #SpiceDisplay * @stability: Stable - * @include: channel-display.h + * @include: spice-client.h * * A class that handles the rendering of the remote display and inform * of its updates. diff --git a/src/channel-display.h b/src/channel-display.h index 88e60d9..8904d68 100644 --- a/src/channel-display.h +++ b/src/channel-display.h @@ -18,6 +18,10 @@ #ifndef __SPICE_CLIENT_DISPLAY_CHANNEL_H__ #define __SPICE_CLIENT_DISPLAY_CHANNEL_H__ +#if !defined(__SPICE_CLIENT_H_INSIDE__) && !defined(SPICE_COMPILATION) +#error "Only <spice-client.h> can be included directly" +#endif + #include "spice-client.h" G_BEGIN_DECLS diff --git a/src/channel-inputs.c b/src/channel-inputs.c index 93cfd2e..7572bff 100644 --- a/src/channel-inputs.c +++ b/src/channel-inputs.c @@ -28,7 +28,7 @@ * @section_id: * @see_also: #SpiceChannel, and the GTK widget #SpiceDisplay * @stability: Stable - * @include: channel-inputs.h + * @include: spice-client.h * * Spice supports sending keyboard key events and keyboard leds * synchronization. The key events are sent using diff --git a/src/channel-inputs.h b/src/channel-inputs.h index 8933116..0d76ba5 100644 --- a/src/channel-inputs.h +++ b/src/channel-inputs.h @@ -18,6 +18,10 @@ #ifndef __SPICE_CLIENT_INPUTS_CHANNEL_H__ #define __SPICE_CLIENT_INPUTS_CHANNEL_H__ +#if !defined(__SPICE_CLIENT_H_INSIDE__) && !defined(SPICE_COMPILATION) +#error "Only <spice-client.h> can be included directly" +#endif + #include "spice-client.h" G_BEGIN_DECLS diff --git a/src/channel-main.c b/src/channel-main.c index 6e66401..6701f93 100644 --- a/src/channel-main.c +++ b/src/channel-main.c @@ -39,7 +39,7 @@ * @section_id: * @see_also: #SpiceChannel, and the GTK widget #SpiceDisplay * @stability: Stable - * @include: channel-main.h + * @include: spice-client.h * * The main channel is the Spice session control channel. It handles * communication initialization (channels list), migrations, mouse diff --git a/src/channel-main.h b/src/channel-main.h index 86bb46b..f0fe57d 100644 --- a/src/channel-main.h +++ b/src/channel-main.h @@ -18,6 +18,10 @@ #ifndef __SPICE_CLIENT_MAIN_CHANNEL_H__ #define __SPICE_CLIENT_MAIN_CHANNEL_H__ +#if !defined(__SPICE_CLIENT_H_INSIDE__) && !defined(SPICE_COMPILATION) +#error "Only <spice-client.h> can be included directly" +#endif + #include "spice-client.h" G_BEGIN_DECLS diff --git a/src/channel-playback.c b/src/channel-playback.c index 020f809..a124cbb 100644 --- a/src/channel-playback.c +++ b/src/channel-playback.c @@ -33,7 +33,7 @@ * @section_id: * @see_also: #SpiceChannel, and #SpiceAudio * @stability: Stable - * @include: channel-playback.h + * @include: spice-client.h * * #SpicePlaybackChannel class handles an audio playback stream. The * audio data is received via #SpicePlaybackChannel::playback-data diff --git a/src/channel-playback.h b/src/channel-playback.h index 9cf68cf..36851ca 100644 --- a/src/channel-playback.h +++ b/src/channel-playback.h @@ -18,6 +18,10 @@ #ifndef __SPICE_CLIENT_PLAYBACK_CHANNEL_H__ #define __SPICE_CLIENT_PLAYBACK_CHANNEL_H__ +#if !defined(__SPICE_CLIENT_H_INSIDE__) && !defined(SPICE_COMPILATION) +#error "Only <spice-client.h> can be included directly" +#endif + #include "spice-client.h" G_BEGIN_DECLS diff --git a/src/channel-port.c b/src/channel-port.c index 222074c..6e01caa 100644 --- a/src/channel-port.c +++ b/src/channel-port.c @@ -30,7 +30,7 @@ * @section_id: * @see_also: #SpiceChannel * @stability: Stable - * @include: channel-port.h + * @include: spice-client.h * * A Spice port channel carry arbitrary data between the Spice client * and the Spice server. It may be used to provide additional diff --git a/src/channel-port.h b/src/channel-port.h index 08c15dc..158e18a 100644 --- a/src/channel-port.h +++ b/src/channel-port.h @@ -18,6 +18,10 @@ #ifndef __SPICE_CLIENT_PORT_CHANNEL_H__ #define __SPICE_CLIENT_PORT_CHANNEL_H__ +#if !defined(__SPICE_CLIENT_H_INSIDE__) && !defined(SPICE_COMPILATION) +#error "Only <spice-client.h> can be included directly" +#endif + #include <gio/gio.h> #include "spice-channel.h" diff --git a/src/channel-record.c b/src/channel-record.c index a44c860..08269c9 100644 --- a/src/channel-record.c +++ b/src/channel-record.c @@ -33,7 +33,7 @@ * @section_id: * @see_also: #SpiceChannel, and #SpiceAudio * @stability: Stable - * @include: channel-record.h + * @include: spice-client.h * * #SpiceRecordChannel class handles an audio recording stream. The * audio stream should start when #SpiceRecordChannel::record-start is diff --git a/src/channel-record.h b/src/channel-record.h index 20a9ad3..60c146c 100644 --- a/src/channel-record.h +++ b/src/channel-record.h @@ -18,6 +18,10 @@ #ifndef __SPICE_CLIENT_RECORD_CHANNEL_H__ #define __SPICE_CLIENT_RECORD_CHANNEL_H__ +#if !defined(__SPICE_CLIENT_H_INSIDE__) && !defined(SPICE_COMPILATION) +#error "Only <spice-client.h> can be included directly" +#endif + #include "spice-client.h" G_BEGIN_DECLS diff --git a/src/channel-smartcard.c b/src/channel-smartcard.c index d91c9a0..942f973 100644 --- a/src/channel-smartcard.c +++ b/src/channel-smartcard.c @@ -36,7 +36,7 @@ * @section_id: * @see_also: #SpiceSmartcardManager, #SpiceSession * @stability: API Stable (channel in development) - * @include: channel-smartcard.h + * @include: spice-client.h * * The Spice protocol defines a set of messages to forward smartcard * information from the Spice client to the VM. This channel handles diff --git a/src/channel-smartcard.h b/src/channel-smartcard.h index 28c8b88..a96aa0a 100644 --- a/src/channel-smartcard.h +++ b/src/channel-smartcard.h @@ -18,6 +18,10 @@ #ifndef __SPICE_CLIENT_SMARTCARD_CHANNEL_H__ #define __SPICE_CLIENT_SMARTCARD_CHANNEL_H__ +#if !defined(__SPICE_CLIENT_H_INSIDE__) && !defined(SPICE_COMPILATION) +#error "Only <spice-client.h> can be included directly" +#endif + #include "spice-client.h" G_BEGIN_DECLS diff --git a/src/channel-usbredir.c b/src/channel-usbredir.c index 89f5c9d..c236ee7 100644 --- a/src/channel-usbredir.c +++ b/src/channel-usbredir.c @@ -44,7 +44,7 @@ * @title: USB Redirection Channel * @section_id: * @stability: API Stable (channel in development) - * @include: channel-usbredir.h + * @include: spice-client.h * * The Spice protocol defines a set of messages to redirect USB devices * from the Spice client to the VM. This channel handles these messages. diff --git a/src/channel-usbredir.h b/src/channel-usbredir.h index 0cc4fbf..72368fc 100644 --- a/src/channel-usbredir.h +++ b/src/channel-usbredir.h @@ -21,6 +21,10 @@ #ifndef __SPICE_CLIENT_USBREDIR_CHANNEL_H__ #define __SPICE_CLIENT_USBREDIR_CHANNEL_H__ +#if !defined(__SPICE_CLIENT_H_INSIDE__) && !defined(SPICE_COMPILATION) +#error "Only <spice-client.h> can be included directly" +#endif + #include "spice-client.h" G_BEGIN_DECLS diff --git a/src/channel-webdav.c b/src/channel-webdav.c index 06db70d..e72c92c 100644 --- a/src/channel-webdav.c +++ b/src/channel-webdav.c @@ -33,7 +33,7 @@ * @section_id: * @see_also: #SpiceChannel * @stability: Stable - * @include: channel-webdav.h + * @include: spice-client.h * * The "webdav" channel exports a directory to the guest for file * manipulation (read/write/copy etc). The underlying protocol is diff --git a/src/channel-webdav.h b/src/channel-webdav.h index 7940706..fb25763 100644 --- a/src/channel-webdav.h +++ b/src/channel-webdav.h @@ -18,6 +18,10 @@ #ifndef __SPICE_WEBDAV_CHANNEL_H__ #define __SPICE_WEBDAV_CHANNEL_H__ +#if !defined(__SPICE_CLIENT_H_INSIDE__) && !defined(SPICE_COMPILATION) +#error "Only <spice-client.h> can be included directly" +#endif + #include <gio/gio.h> #include "spice-client.h" #include "channel-port.h" diff --git a/src/smartcard-manager.c b/src/smartcard-manager.c index 0cce42b..8e0d239 100644 --- a/src/smartcard-manager.c +++ b/src/smartcard-manager.c @@ -40,7 +40,7 @@ * @section_id: * @see_also: * @stability: Stable - * @include: smartcard-manager.h + * @include: spice-client.h * * #SpiceSmartcardManager monitors smartcard reader plugging/unplugging, * and smartcard insertions/removals. It also provides methods to handle diff --git a/src/smartcard-manager.h b/src/smartcard-manager.h index 2a7fd48..4cfbeb2 100644 --- a/src/smartcard-manager.h +++ b/src/smartcard-manager.h @@ -18,6 +18,10 @@ #ifndef __SPICE_SMARTCARD_MANAGER_H__ #define __SPICE_SMARTCARD_MANAGER_H__ +#if !defined(__SPICE_CLIENT_H_INSIDE__) && !defined(SPICE_COMPILATION) +#error "Only <spice-client.h> can be included directly" +#endif + G_BEGIN_DECLS #include "spice-types.h" diff --git a/src/spice-audio.c b/src/spice-audio.c index 3114a0a..75742d7 100644 --- a/src/spice-audio.c +++ b/src/spice-audio.c @@ -26,7 +26,7 @@ * @section_id: * @see_also: #SpiceRecordChannel, and #SpicePlaybackChannel * @stability: Stable - * @include: spice-audio.h + * @include: spice-client.h * * A class that handles the playback and record channels for your * application, and connect them to the default sound system. diff --git a/src/spice-audio.h b/src/spice-audio.h index 0bf625b..5bf487f 100644 --- a/src/spice-audio.h +++ b/src/spice-audio.h @@ -18,6 +18,10 @@ #ifndef __SPICE_CLIENT_AUDIO_H__ #define __SPICE_CLIENT_AUDIO_H__ +#if !defined(__SPICE_CLIENT_H_INSIDE__) && !defined(SPICE_COMPILATION) +#error "Only <spice-client.h> can be included directly" +#endif + #include <glib-object.h> #include <gio/gio.h> #include "spice-util.h" diff --git a/src/spice-channel.c b/src/spice-channel.c index 2ce52c7..d459ec4 100644 --- a/src/spice-channel.c +++ b/src/spice-channel.c @@ -63,7 +63,7 @@ static gboolean channel_connect(SpiceChannel *channel, gboolean tls); * @section_id: * @see_also: #SpiceSession, #SpiceMainChannel and other channels * @stability: Stable - * @include: spice-channel.h + * @include: spice-client.h * * #SpiceChannel is the base class for the different kind of Spice * channel connections, such as #SpiceMainChannel, or diff --git a/src/spice-channel.h b/src/spice-channel.h index f465572..6214071 100644 --- a/src/spice-channel.h +++ b/src/spice-channel.h @@ -18,6 +18,10 @@ #ifndef __SPICE_CLIENT_CHANNEL_H__ #define __SPICE_CLIENT_CHANNEL_H__ +#if !defined(__SPICE_CLIENT_H_INSIDE__) && !defined(SPICE_COMPILATION) +#error "Only <spice-client.h> can be included directly" +#endif + G_BEGIN_DECLS #include <gio/gio.h> diff --git a/src/spice-client.h b/src/spice-client.h index 5a4d838..aaa6775 100644 --- a/src/spice-client.h +++ b/src/spice-client.h @@ -22,6 +22,8 @@ #include <glib.h> #include <glib-object.h> +#define __SPICE_CLIENT_H_INSIDE__ + /* spice-protocol */ #include <spice/enums.h> #include <spice/protocol.h> @@ -88,4 +90,6 @@ GQuark spice_client_error_quark(void); G_END_DECLS +#undef __SPICE_CLIENT_H_INSIDE__ + #endif /* __SPICE_CLIENT_CLIENT_H__ */ diff --git a/src/spice-option.h b/src/spice-option.h index ce24f65..6675ad2 100644 --- a/src/spice-option.h +++ b/src/spice-option.h @@ -18,6 +18,10 @@ #ifndef SPICE_OPTION_H #define SPICE_OPTION_H +#if !defined(__SPICE_CLIENT_H_INSIDE__) && !defined(SPICE_COMPILATION) +#error "Only <spice-client.h> can be included directly" +#endif + #include <glib.h> #include "spice-session.h" diff --git a/src/spice-session.c b/src/spice-session.c index e1d9997..85640a5 100644 --- a/src/spice-session.c +++ b/src/spice-session.c @@ -134,7 +134,7 @@ struct _SpiceSessionPrivate { * @section_id: * @see_also: #SpiceChannel, and the GTK widget #SpiceDisplay * @stability: Stable - * @include: spice-session.h + * @include: spice-client.h * * The #SpiceSession class handles all the #SpiceChannel connections. * It's also the class that contains connections informations, such as diff --git a/src/spice-session.h b/src/spice-session.h index 56f6959..82662e1 100644 --- a/src/spice-session.h +++ b/src/spice-session.h @@ -18,6 +18,10 @@ #ifndef __SPICE_CLIENT_SESSION_H__ #define __SPICE_CLIENT_SESSION_H__ +#if !defined(__SPICE_CLIENT_H_INSIDE__) && !defined(SPICE_COMPILATION) +#error "Only <spice-client.h> can be included directly" +#endif + #include <glib-object.h> #include "spice-types.h" #include "spice-uri.h" diff --git a/src/spice-types.h b/src/spice-types.h index f149094..2d34c71 100644 --- a/src/spice-types.h +++ b/src/spice-types.h @@ -18,6 +18,10 @@ #ifndef __SPICE_CLIENT_TYPES_H__ #define __SPICE_CLIENT_TYPES_H__ +#if !defined(__SPICE_CLIENT_H_INSIDE__) && !defined(SPICE_COMPILATION) +#error "Only <spice-client.h> can be included directly" +#endif + G_BEGIN_DECLS /* SpiceSession */ diff --git a/src/spice-uri.c b/src/spice-uri.c index 82aefdb..e2c5c9a 100644 --- a/src/spice-uri.c +++ b/src/spice-uri.c @@ -30,7 +30,7 @@ * @title: SpiceURI * @section_id: * @stability: Stable - * @include: spice-uri.h + * @include: spice-client.h * * A SpiceURI represents a (parsed) URI. * Since: 0.24 diff --git a/src/spice-uri.h b/src/spice-uri.h index 65ffd0a..20685ba 100644 --- a/src/spice-uri.h +++ b/src/spice-uri.h @@ -18,6 +18,10 @@ #ifndef __SPICE_URI_H__ #define __SPICE_URI_H__ +#if !defined(__SPICE_CLIENT_H_INSIDE__) && !defined(SPICE_COMPILATION) +#error "Only <spice-client.h> can be included directly" +#endif + #include <glib-object.h> G_BEGIN_DECLS diff --git a/src/spice-util.c b/src/spice-util.c index b4bc085..84ed94a 100644 --- a/src/spice-util.c +++ b/src/spice-util.c @@ -33,7 +33,7 @@ * @title: Utilities * @section_id: * @stability: Stable - * @include: spice-util.h + * @include: spice-client.h * * Various functions for debugging and informational purposes. */ diff --git a/src/spice-version.h.in b/src/spice-version.h.in index 49164f8..373a793 100644 --- a/src/spice-version.h.in +++ b/src/spice-version.h.in @@ -18,6 +18,10 @@ #ifndef __SPICE_VERSION_H__ #define __SPICE_VERSION_H__ +#if !defined(__SPICE_CLIENT_H_INSIDE__) && !defined(SPICE_COMPILATION) +#error "Only <spice-client.h> can be included directly" +#endif + /** * SECTION:spice-version * @short_description: Spice-Gtk version checking diff --git a/src/usb-device-manager.c b/src/usb-device-manager.c index 777fdf0..c62f56e 100644 --- a/src/usb-device-manager.c +++ b/src/usb-device-manager.c @@ -64,7 +64,7 @@ * @section_id: * @see_also: * @stability: Stable - * @include: usb-device-manager.h + * @include: spice-client.h * * #SpiceUsbDeviceManager monitors USB redirection channels and USB * devices plugging/unplugging. If #SpiceUsbDeviceManager:auto-connect diff --git a/src/usb-device-manager.h b/src/usb-device-manager.h index c1e3f76..2e11bb7 100644 --- a/src/usb-device-manager.h +++ b/src/usb-device-manager.h @@ -21,6 +21,10 @@ #ifndef __SPICE_USB_DEVICE_MANAGER_H__ #define __SPICE_USB_DEVICE_MANAGER_H__ +#if !defined(__SPICE_CLIENT_H_INSIDE__) && !defined(SPICE_COMPILATION) +#error "Only <spice-client.h> can be included directly" +#endif + #include "spice-client.h" #include <gio/gio.h> -- 2.1.0 _______________________________________________ Spice-devel mailing list Spice-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/spice-devel