[evince/wip/chpe/symbols-visibility: 3/13] libdocument: Use symbol visibility for exported symbols




commit db2425ac867bc3bbcd01db1ace6c13888b05b121
Author: Christian Persch <chpe src gnome org>
Date:   Wed Dec 1 16:51:33 2021 +0100

    libdocument: Use symbol visibility for exported symbols
    
    Add EV_PUBLIC define that uses the visibility attribute to make a symbol
    public, and use this to mark exported symbols, instead of exporting
    every symbol starting with "ev_", to make sure only symbols actually
    intended to be public are exported.
    
    Also add EV_PRIVATE define as an alias for EV_PUBLIC to mark symbols
    that are nominally public because they are needed from libview/ or
    shell/, but are not actually public API.

 libdocument/ev-annotation.h                      | 49 +++++++++++++++++++++
 libdocument/ev-async-renderer.h                  |  4 ++
 libdocument/ev-attachment.h                      | 15 +++++++
 libdocument/ev-backends-manager.h                |  4 ++
 libdocument/ev-debug.h                           | 13 ++++--
 libdocument/ev-document-annotations.h            | 10 +++++
 libdocument/ev-document-attachments.h            |  5 +++
 libdocument/ev-document-factory.h                |  6 +++
 libdocument/ev-document-find.h                   |  5 +++
 libdocument/ev-document-fonts.h                  |  6 +++
 libdocument/ev-document-forms.h                  | 17 ++++++++
 libdocument/ev-document-images.h                 |  4 ++
 libdocument/ev-document-info.h                   | 12 ++++++
 libdocument/ev-document-layers.h                 |  7 +++
 libdocument/ev-document-links.h                  | 11 +++++
 libdocument/ev-document-media.h                  |  3 ++
 libdocument/ev-document-misc.h                   | 20 +++++++++
 libdocument/ev-document-print.h                  |  3 ++
 libdocument/ev-document-security.h               |  4 ++
 libdocument/ev-document-text.h                   |  6 +++
 libdocument/ev-document-transition.h             |  4 ++
 libdocument/ev-document-type-builtins.h.template |  3 ++
 libdocument/ev-document.h                        | 54 +++++++++++++++++++++++-
 libdocument/ev-file-exporter.h                   |  8 ++++
 libdocument/ev-file-helpers.h                    | 15 ++++++-
 libdocument/ev-form-field-private.h              |  3 ++
 libdocument/ev-form-field.h                      | 10 +++++
 libdocument/ev-image.h                           | 10 +++++
 libdocument/ev-init.h                            |  5 +++
 libdocument/ev-layer.h                           |  6 +++
 libdocument/ev-link-action.h                     | 22 ++++++++++
 libdocument/ev-link-dest.h                       | 21 +++++++++
 libdocument/ev-link.h                            |  6 +++
 libdocument/ev-macros.h                          | 11 +++++
 libdocument/ev-mapping-list.h                    | 14 ++++++
 libdocument/ev-media.h                           |  8 ++++
 libdocument/ev-page.h                            |  4 ++
 libdocument/ev-render-context.h                  | 10 +++++
 libdocument/ev-selection.h                       |  6 +++
 libdocument/ev-transition-effect.h               |  4 ++
 libdocument/meson.build                          |  3 +-
 41 files changed, 423 insertions(+), 8 deletions(-)
---
diff --git a/libdocument/ev-annotation.h b/libdocument/ev-annotation.h
index fefbe62c9..3f9075d7c 100644
--- a/libdocument/ev-annotation.h
+++ b/libdocument/ev-annotation.h
@@ -117,88 +117,137 @@ typedef enum {
 } EvAnnotationTextMarkupType;
 
 /* EvAnnotation */
+EV_PUBLIC
 GType                ev_annotation_get_type                  (void) G_GNUC_CONST;
+EV_PUBLIC
 EvAnnotationType     ev_annotation_get_annotation_type       (EvAnnotation           *annot);
+EV_PUBLIC
 EvPage              *ev_annotation_get_page                  (EvAnnotation           *annot);
+EV_PUBLIC
 guint                ev_annotation_get_page_index            (EvAnnotation           *annot);
+EV_PUBLIC
 gboolean             ev_annotation_equal                     (EvAnnotation           *annot,
                                                              EvAnnotation           *other);
+EV_PUBLIC
 const gchar         *ev_annotation_get_contents              (EvAnnotation           *annot);
+EV_PUBLIC
 gboolean             ev_annotation_set_contents              (EvAnnotation           *annot,
                                                              const gchar            *contents);
+EV_PUBLIC
 const gchar         *ev_annotation_get_name                  (EvAnnotation           *annot);
+EV_PUBLIC
 gboolean             ev_annotation_set_name                  (EvAnnotation           *annot,
                                                              const gchar            *name);
+EV_PUBLIC
 const gchar         *ev_annotation_get_modified              (EvAnnotation           *annot);
+EV_PUBLIC
 gboolean             ev_annotation_set_modified              (EvAnnotation           *annot,
                                                              const gchar            *modified);
+EV_PUBLIC
 gboolean             ev_annotation_set_modified_from_time_t  (EvAnnotation           *annot,
                                                              time_t                  utime);
 G_GNUC_BEGIN_IGNORE_DEPRECATIONS
 EV_DEPRECATED_FOR(ev_annotaion_set_modified_from_time_t)
+EV_PUBLIC
 gboolean             ev_annotation_set_modified_from_time    (EvAnnotation           *annot,
                                                              GTime                   utime);
 EV_DEPRECATED_FOR(ev_annotaion_get_rgba)
+EV_PUBLIC
 void                 ev_annotation_get_color                 (EvAnnotation           *annot,
                                                              GdkColor               *color);
 EV_DEPRECATED_FOR(ev_annotaion_set_rgba)
+EV_PUBLIC
 gboolean             ev_annotation_set_color                 (EvAnnotation           *annot,
                                                              const GdkColor         *color);
 G_GNUC_END_IGNORE_DEPRECATIONS
+
+EV_PUBLIC
 void                 ev_annotation_get_rgba                  (EvAnnotation           *annot,
                                                               GdkRGBA                *rgba);
+EV_PUBLIC
 gboolean             ev_annotation_set_rgba                  (EvAnnotation           *annot,
                                                               const GdkRGBA          *rgba);
+EV_PUBLIC
 void                 ev_annotation_get_area                  (EvAnnotation           *annot,
                                                               EvRectangle            *area);
+EV_PUBLIC
 gboolean             ev_annotation_set_area                  (EvAnnotation           *annot,
                                                               const EvRectangle      *area);
 
 /* EvAnnotationMarkup */
+EV_PUBLIC
 GType                ev_annotation_markup_get_type           (void) G_GNUC_CONST;
+EV_PUBLIC
 const gchar         *ev_annotation_markup_get_label          (EvAnnotationMarkup     *markup);
+EV_PUBLIC
 gboolean             ev_annotation_markup_set_label          (EvAnnotationMarkup     *markup,
                                                              const gchar            *label);
+EV_PUBLIC
 gdouble              ev_annotation_markup_get_opacity        (EvAnnotationMarkup     *markup);
+EV_PUBLIC
 gboolean             ev_annotation_markup_set_opacity        (EvAnnotationMarkup     *markup,
                                                              gdouble                 opacity);
+EV_PUBLIC
 gboolean             ev_annotation_markup_can_have_popup     (EvAnnotationMarkup     *markup);
+EV_PUBLIC
 gboolean             ev_annotation_markup_has_popup          (EvAnnotationMarkup     *markup);
+EV_PUBLIC
 gboolean             ev_annotation_markup_set_has_popup      (EvAnnotationMarkup     *markup,
                                                              gboolean                has_popup);
+EV_PUBLIC
 void                 ev_annotation_markup_get_rectangle      (EvAnnotationMarkup     *markup,
                                                              EvRectangle            *ev_rect);
+EV_PUBLIC
 gboolean             ev_annotation_markup_set_rectangle      (EvAnnotationMarkup     *markup,
                                                              const EvRectangle      *ev_rect);
+EV_PUBLIC
 gboolean             ev_annotation_markup_get_popup_is_open  (EvAnnotationMarkup     *markup);
+EV_PUBLIC
 gboolean             ev_annotation_markup_set_popup_is_open  (EvAnnotationMarkup     *markup,
                                                              gboolean                is_open);
 
 /* EvAnnotationText */
+EV_PUBLIC
 GType                ev_annotation_text_get_type             (void) G_GNUC_CONST;
+EV_PUBLIC
 EvAnnotation        *ev_annotation_text_new                  (EvPage                 *page);
+EV_PUBLIC
 EvAnnotationTextIcon ev_annotation_text_get_icon             (EvAnnotationText       *text);
+EV_PUBLIC
 gboolean             ev_annotation_text_set_icon             (EvAnnotationText       *text,
                                                              EvAnnotationTextIcon    icon);
+EV_PUBLIC
 gboolean             ev_annotation_text_get_is_open          (EvAnnotationText       *text);
+EV_PUBLIC
 gboolean             ev_annotation_text_set_is_open          (EvAnnotationText       *text,
                                                              gboolean                is_open);
 
 /* EvAnnotationAttachment */
+EV_PUBLIC
 GType                ev_annotation_attachment_get_type       (void) G_GNUC_CONST;
+EV_PUBLIC
 EvAnnotation        *ev_annotation_attachment_new            (EvPage                 *page,
                                                              EvAttachment           *attachment);
+EV_PUBLIC
 EvAttachment        *ev_annotation_attachment_get_attachment (EvAnnotationAttachment *annot);
+EV_PUBLIC
 gboolean             ev_annotation_attachment_set_attachment (EvAnnotationAttachment *annot,
                                                              EvAttachment           *attachment);
 
 /* EvAnnotationTextMarkup */
+EV_PUBLIC
 GType                      ev_annotation_text_markup_get_type        (void) G_GNUC_CONST;
+EV_PUBLIC
 EvAnnotation              *ev_annotation_text_markup_highlight_new   (EvPage                    *page);
+EV_PUBLIC
 EvAnnotation              *ev_annotation_text_markup_strike_out_new  (EvPage                    *page);
+EV_PUBLIC
 EvAnnotation              *ev_annotation_text_markup_underline_new   (EvPage                    *page);
+EV_PUBLIC
 EvAnnotation              *ev_annotation_text_markup_squiggly_new    (EvPage                    *page);
+EV_PUBLIC
 EvAnnotationTextMarkupType ev_annotation_text_markup_get_markup_type (EvAnnotationTextMarkup    *annot);
+EV_PUBLIC
 gboolean                   ev_annotation_text_markup_set_markup_type (EvAnnotationTextMarkup    *annot,
                                                                       EvAnnotationTextMarkupType 
markup_type);
 
diff --git a/libdocument/ev-async-renderer.h b/libdocument/ev-async-renderer.h
index 4ce3caa7a..e1fe00dba 100644
--- a/libdocument/ev-async-renderer.h
+++ b/libdocument/ev-async-renderer.h
@@ -29,6 +29,8 @@
 #include <glib.h>
 #include <gdk/gdk.h>
 
+#include "ev-macros.h"
+
 G_BEGIN_DECLS
 
 #define EV_TYPE_ASYNC_RENDERER           (ev_async_renderer_get_type ())
@@ -54,7 +56,9 @@ struct _EvAsyncRendererInterface
                                         int              rotation);
 };
 
+EV_PUBLIC
 GType          ev_async_renderer_get_type       (void);
+EV_PUBLIC
 void           ev_async_renderer_render_pixbuf  (EvAsyncRenderer *renderer,
                                                  int              page,
                                                  double           scale,
diff --git a/libdocument/ev-attachment.h b/libdocument/ev-attachment.h
index f98561b40..28736ef3e 100644
--- a/libdocument/ev-attachment.h
+++ b/libdocument/ev-attachment.h
@@ -27,6 +27,8 @@
 #include <glib-object.h>
 #include <gio/gio.h>
 
+#include "ev-macros.h"
+
 G_BEGIN_DECLS
 
 typedef struct _EvAttachment        EvAttachment;
@@ -49,9 +51,13 @@ struct _EvAttachmentClass {
        GObjectClass base_class;
 };
 
+EV_PUBLIC
 GType         ev_attachment_get_type             (void) G_GNUC_CONST;
+EV_PUBLIC
 GQuark        ev_attachment_error_quark          (void) G_GNUC_CONST;
+
 G_GNUC_BEGIN_IGNORE_DEPRECATIONS
+EV_PUBLIC
 EvAttachment *ev_attachment_new                  (const gchar  *name,
                                                  const gchar  *description,
                                                  GTime         mtime,
@@ -60,16 +66,25 @@ EvAttachment *ev_attachment_new                  (const gchar  *name,
                                                  gpointer      data);
 G_GNUC_END_IGNORE_DEPRECATIONS
 
+EV_PUBLIC
 const gchar *ev_attachment_get_name              (EvAttachment *attachment);
+EV_PUBLIC
 const gchar *ev_attachment_get_description       (EvAttachment *attachment);
+
 G_GNUC_BEGIN_IGNORE_DEPRECATIONS
+EV_PUBLIC
 GTime        ev_attachment_get_modification_date (EvAttachment *attachment);
+EV_PUBLIC
 GTime        ev_attachment_get_creation_date     (EvAttachment *attachment);
 G_GNUC_END_IGNORE_DEPRECATIONS
+
+EV_PUBLIC
 const gchar *ev_attachment_get_mime_type         (EvAttachment *attachment);
+EV_PUBLIC
 gboolean     ev_attachment_save                  (EvAttachment *attachment,
                                                  GFile        *file,
                                                  GError      **error);
+EV_PUBLIC
 gboolean     ev_attachment_open                  (EvAttachment *attachment,
                                                  GdkScreen    *screen,
                                                  guint32       timestamp,
diff --git a/libdocument/ev-backends-manager.h b/libdocument/ev-backends-manager.h
index 3813987a5..43939a3aa 100644
--- a/libdocument/ev-backends-manager.h
+++ b/libdocument/ev-backends-manager.h
@@ -36,13 +36,17 @@ typedef struct _EvTypeInfo {
        const gchar **mime_types;
 } EvTypeInfo;
 
+EV_PUBLIC
 EvDocument  *ev_backends_manager_get_document             (const gchar *mime_type);
 
 EV_DEPRECATED
+EV_PUBLIC
 const gchar *ev_backends_manager_get_document_module_name (EvDocument  *document);
 EV_DEPRECATED
+EV_PUBLIC
 EvTypeInfo  *ev_backends_manager_get_document_type_info   (EvDocument  *document);
 
+EV_PUBLIC
 GList       *ev_backends_manager_get_all_types_info       (void);
 
 G_END_DECLS
diff --git a/libdocument/ev-debug.h b/libdocument/ev-debug.h
index ce0cd8cff..689decae8 100644
--- a/libdocument/ev-debug.h
+++ b/libdocument/ev-debug.h
@@ -41,6 +41,10 @@
 
 #include <glib-object.h>
 
+#include "ev-macros.h"
+
+G_BEGIN_DECLS
+
 #define EV_GET_TYPE_NAME(instance) g_type_name_from_instance ((gpointer)instance)
 
 #ifndef EV_ENABLE_DEBUG
@@ -63,8 +67,6 @@ static void ev_profiler_stop(EvProfileSection section, const gchar *format, ...)
 
 #else /* ENABLE_DEBUG */
 
-G_BEGIN_DECLS
-
 /*
  * Set an environmental var of the same name to turn on
  * debugging output. Setting EV_DEBUG will turn on all
@@ -103,19 +105,24 @@ typedef enum {
 void _ev_debug_init     (void);
 void _ev_debug_shutdown (void);
 
+EV_PRIVATE
 void ev_debug_message  (EvDebugSection   section,
                        const gchar     *file,
                        gint             line,
                        const gchar     *function,
                        const gchar     *format, ...) G_GNUC_PRINTF(5, 6);
+EV_PRIVATE
 void ev_profiler_start (EvProfileSection section,
                        const gchar     *format, ...) G_GNUC_PRINTF(2, 3);
+EV_PRIVATE
 void ev_profiler_stop  (EvProfileSection section,
                        const gchar     *format, ...) G_GNUC_PRINTF(2, 3);
 
+EV_PRIVATE
 EvDebugBorders ev_debug_get_debug_borders (void);
 
+#endif /* EV_ENABLE_DEBUG */
+
 G_END_DECLS
 
-#endif /* EV_ENABLE_DEBUG */
 #endif /* __EV_DEBUG_H__ */
diff --git a/libdocument/ev-document-annotations.h b/libdocument/ev-document-annotations.h
index f0137c2b8..98fdd7ab0 100644
--- a/libdocument/ev-document-annotations.h
+++ b/libdocument/ev-document-annotations.h
@@ -27,6 +27,7 @@
 
 #include <glib-object.h>
 
+#include "ev-macros.h"
 #include "ev-document.h"
 #include "ev-annotation.h"
 #include "ev-mapping-list.h"
@@ -98,21 +99,30 @@ struct _EvDocumentAnnotationsInterface
                                                 gdouble                 y);
 };
 
+EV_PUBLIC
 GType          ev_document_annotations_get_type             (void) G_GNUC_CONST;
+EV_PUBLIC
 EvMappingList *ev_document_annotations_get_annotations      (EvDocumentAnnotations *document_annots,
                                                             EvPage                *page);
+EV_PUBLIC
 gboolean       ev_document_annotations_document_is_modified (EvDocumentAnnotations *document_annots);
+EV_PUBLIC
 void           ev_document_annotations_add_annotation       (EvDocumentAnnotations *document_annots,
                                                             EvAnnotation          *annot,
                                                             EvRectangle           *rect);
+EV_PUBLIC
 void           ev_document_annotations_remove_annotation    (EvDocumentAnnotations *document_annots,
                                                              EvAnnotation          *annot);
 
+EV_PUBLIC
 void           ev_document_annotations_save_annotation      (EvDocumentAnnotations *document_annots,
                                                             EvAnnotation          *annot,
                                                             EvAnnotationsSaveMask  mask);
+EV_PUBLIC
 gboolean       ev_document_annotations_can_add_annotation    (EvDocumentAnnotations *document_annots);
+EV_PUBLIC
 gboolean       ev_document_annotations_can_remove_annotation (EvDocumentAnnotations *document_annots);
+EV_PUBLIC
 EvAnnotationsOverMarkup ev_document_annotations_over_markup  (EvDocumentAnnotations *document_annots,
                                                              EvAnnotation          *annot,
                                                              gdouble                x,
diff --git a/libdocument/ev-document-attachments.h b/libdocument/ev-document-attachments.h
index e699a824a..6ca43a2ed 100644
--- a/libdocument/ev-document-attachments.h
+++ b/libdocument/ev-document-attachments.h
@@ -28,6 +28,8 @@
 #include <glib-object.h>
 #include <glib.h>
 
+#include "ev-macros.h"
+
 G_BEGIN_DECLS
 
 #define EV_TYPE_DOCUMENT_ATTACHMENTS           (ev_document_attachments_get_type ())
@@ -49,9 +51,12 @@ struct _EvDocumentAttachmentsInterface
        GList    *(* get_attachments) (EvDocumentAttachments *document_attachments);
 };
 
+EV_PUBLIC
 GType     ev_document_attachments_get_type        (void) G_GNUC_CONST;
 
+EV_PUBLIC
 gboolean  ev_document_attachments_has_attachments (EvDocumentAttachments *document_attachments);
+EV_PUBLIC
 GList    *ev_document_attachments_get_attachments (EvDocumentAttachments *document_attachments);
 
 G_END_DECLS
diff --git a/libdocument/ev-document-factory.h b/libdocument/ev-document-factory.h
index 1ccdb9138..60d9c29ea 100644
--- a/libdocument/ev-document-factory.h
+++ b/libdocument/ev-document-factory.h
@@ -27,6 +27,7 @@
 
 #include <gtk/gtk.h>
 
+#include "ev-macros.h"
 #include "ev-document.h"
 
 G_BEGIN_DECLS
@@ -34,20 +35,25 @@ G_BEGIN_DECLS
 gboolean   _ev_document_factory_init         (void);
 void       _ev_document_factory_shutdown     (void);
 
+EV_PUBLIC
 EvDocument* ev_document_factory_get_document (const char *uri, GError **error);
+EV_PUBLIC
 EvDocument *ev_document_factory_get_document_full (const char           *uri,
                                                   EvDocumentLoadFlags   flags,
                                                   GError              **error);
+EV_PUBLIC
 EvDocument* ev_document_factory_get_document_for_gfile (GFile *file,
                                                         EvDocumentLoadFlags flags,
                                                         GCancellable *cancellable,
                                                         GError **error);
+EV_PUBLIC
 EvDocument* ev_document_factory_get_document_for_stream (GInputStream *stream,
                                                          const char *mime_type,
                                                          EvDocumentLoadFlags flags,
                                                          GCancellable *cancellable,
                                                          GError **error);
 
+EV_PUBLIC
 void       ev_document_factory_add_filters  (GtkWidget *chooser, EvDocument *document);
 
 G_END_DECLS
diff --git a/libdocument/ev-document-find.h b/libdocument/ev-document-find.h
index f50ef0a2a..b598452fa 100644
--- a/libdocument/ev-document-find.h
+++ b/libdocument/ev-document-find.h
@@ -29,6 +29,7 @@
 #include <glib-object.h>
 #include <glib.h>
 
+#include "ev-macros.h"
 #include "ev-document.h"
 
 G_BEGIN_DECLS
@@ -65,15 +66,19 @@ struct _EvDocumentFindInterface
        EvFindOptions (*get_supported_options)   (EvDocumentFind *document_find);
 };
 
+EV_PUBLIC
 GType         ev_document_find_get_type               (void) G_GNUC_CONST;
+EV_PUBLIC
 GList        *ev_document_find_find_text              (EvDocumentFind *document_find,
                                                       EvPage         *page,
                                                       const gchar    *text,
                                                       gboolean        case_sensitive);
+EV_PUBLIC
 GList        *ev_document_find_find_text_with_options (EvDocumentFind *document_find,
                                                       EvPage         *page,
                                                       const gchar    *text,
                                                       EvFindOptions   options);
+EV_PUBLIC
 EvFindOptions ev_document_find_get_supported_options  (EvDocumentFind *document_find);
 
 G_END_DECLS
diff --git a/libdocument/ev-document-fonts.h b/libdocument/ev-document-fonts.h
index 4edc92d3b..94e3e838c 100644
--- a/libdocument/ev-document-fonts.h
+++ b/libdocument/ev-document-fonts.h
@@ -32,6 +32,7 @@
 #include <glib.h>
 #include <gtk/gtk.h>
 
+#include "ev-macros.h"
 #include "ev-document.h"
 #include "ev-link.h"
 
@@ -67,12 +68,17 @@ struct _EvDocumentFontsInterface
         const gchar *(* get_fonts_summary) (EvDocumentFonts *document_fonts);
 };
 
+EV_PUBLIC
 GType        ev_document_fonts_get_type          (void);
+EV_PUBLIC
 gboolean     ev_document_fonts_scan              (EvDocumentFonts *document_fonts,
                                                   int              n_pages);
+EV_PUBLIC
 double       ev_document_fonts_get_progress      (EvDocumentFonts *document_fonts);
+EV_PUBLIC
 void         ev_document_fonts_fill_model        (EvDocumentFonts *document_fonts,
                                                   GtkTreeModel    *model);
+EV_PUBLIC
 const gchar *ev_document_fonts_get_fonts_summary (EvDocumentFonts *document_fonts);
 
 G_END_DECLS
diff --git a/libdocument/ev-document-forms.h b/libdocument/ev-document-forms.h
index f78dba6bd..552a74af8 100644
--- a/libdocument/ev-document-forms.h
+++ b/libdocument/ev-document-forms.h
@@ -27,6 +27,7 @@
 
 #include <glib-object.h>
 
+#include "ev-macros.h"
 #include "ev-document.h"
 #include "ev-form-field.h"
 #include "ev-mapping-list.h"
@@ -86,44 +87,60 @@ struct _EvDocumentFormsInterface
                                                               EvLinkAction      *action);
 };
 
+EV_PUBLIC
 GType          ev_document_forms_get_type                           (void) G_GNUC_CONST;
+EV_PUBLIC
 EvMappingList *ev_document_forms_get_form_fields                    (EvDocumentForms   *document_forms,
                                                                     EvPage            *page);
+EV_PUBLIC
 gboolean       ev_document_forms_document_is_modified               (EvDocumentForms   *document_forms);
 
+EV_PUBLIC
 gchar        *ev_document_forms_form_field_text_get_text           (EvDocumentForms   *document_forms,
                                                                     EvFormField       *field);
+EV_PUBLIC
 void          ev_document_forms_form_field_text_set_text           (EvDocumentForms   *document_forms,
                                                                     EvFormField       *field,
                                                                     const gchar       *text);
 
+EV_PUBLIC
 gboolean       ev_document_forms_form_field_button_get_state        (EvDocumentForms   *document_forms,
                                                                     EvFormField       *field);
+EV_PUBLIC
 void          ev_document_forms_form_field_button_set_state        (EvDocumentForms   *document_forms,
                                                                     EvFormField       *field,
                                                                     gboolean           state);
 
+EV_PUBLIC
 gchar         *ev_document_forms_form_field_choice_get_item         (EvDocumentForms   *document_forms,
                                                                     EvFormField       *field,
                                                                     gint               index);
+EV_PUBLIC
 gint          ev_document_forms_form_field_choice_get_n_items      (EvDocumentForms   *document_forms,
                                                                     EvFormField       *field);
+EV_PUBLIC
 gboolean       ev_document_forms_form_field_choice_is_item_selected (EvDocumentForms   *document_forms,
                                                                     EvFormField       *field,
                                                                     gint               index);
+EV_PUBLIC
 void          ev_document_forms_form_field_choice_select_item      (EvDocumentForms   *document_forms,
                                                                     EvFormField       *field,
                                                                     gint               index);
+EV_PUBLIC
 void          ev_document_forms_form_field_choice_toggle_item      (EvDocumentForms   *document_forms,
                                                                     EvFormField       *field,
                                                                     gint               index);
+EV_PUBLIC
 void          ev_document_forms_form_field_choice_unselect_all     (EvDocumentForms   *document_forms,
                                                                     EvFormField       *field);
+EV_PUBLIC
 void          ev_document_forms_form_field_choice_set_text         (EvDocumentForms   *document_forms,
                                                                     EvFormField       *field,
                                                                     const gchar       *text);
+EV_PUBLIC
 gchar         *ev_document_forms_form_field_choice_get_text         (EvDocumentForms   *document_forms,
                                                                     EvFormField       *field);
+EV_PUBLIC
 void           ev_document_forms_reset_form                         (EvDocumentForms   *document_forms,
                                                                     EvLinkAction      *action);
 
diff --git a/libdocument/ev-document-images.h b/libdocument/ev-document-images.h
index 8a028695e..7440e2dea 100644
--- a/libdocument/ev-document-images.h
+++ b/libdocument/ev-document-images.h
@@ -28,6 +28,7 @@
 #include <glib-object.h>
 #include <glib.h>
 
+#include "ev-macros.h"
 #include "ev-document.h"
 #include "ev-image.h"
 #include "ev-mapping-list.h"
@@ -54,9 +55,12 @@ struct _EvDocumentImagesInterface {
                                              EvImage          *image);
 };
 
+EV_PUBLIC
 GType          ev_document_images_get_type          (void) G_GNUC_CONST;
+EV_PUBLIC
 EvMappingList *ev_document_images_get_image_mapping (EvDocumentImages *document_images,
                                                     EvPage           *page);
+EV_PUBLIC
 GdkPixbuf     *ev_document_images_get_image         (EvDocumentImages *document_images,
                                                     EvImage          *image);
 
diff --git a/libdocument/ev-document-info.h b/libdocument/ev-document-info.h
index d05e48cc9..b75a970d3 100644
--- a/libdocument/ev-document-info.h
+++ b/libdocument/ev-document-info.h
@@ -28,6 +28,8 @@
 #include <glib-object.h>
 #include <glib.h>
 
+#include "ev-macros.h"
+
 G_BEGIN_DECLS
 
 typedef struct _EvDocumentInfo    EvDocumentInfo;
@@ -141,8 +143,11 @@ struct _EvDocumentInfo
 };
 G_GNUC_END_IGNORE_DEPRECATIONS
 
+EV_PUBLIC
 GType           ev_document_info_get_type (void) G_GNUC_CONST;
+EV_PUBLIC
 EvDocumentInfo *ev_document_info_copy     (EvDocumentInfo *info);
+EV_PUBLIC
 void            ev_document_info_free     (EvDocumentInfo *info);
 
 /* EvDocumentLicense */
@@ -152,12 +157,19 @@ struct _EvDocumentLicense {
        gchar *uri;
        gchar *web_statement;
 };
+EV_PUBLIC
 GType              ev_document_license_get_type          (void) G_GNUC_CONST;
+EV_PUBLIC
 EvDocumentLicense *ev_document_license_new               (void);
+EV_PUBLIC
 EvDocumentLicense *ev_document_license_copy              (EvDocumentLicense *license);
+EV_PUBLIC
 void               ev_document_license_free              (EvDocumentLicense *license);
+EV_PUBLIC
 const gchar       *ev_document_license_get_text          (EvDocumentLicense *license);
+EV_PUBLIC
 const gchar       *ev_document_license_get_uri           (EvDocumentLicense *license);
+EV_PUBLIC
 const gchar       *ev_document_license_get_web_statement (EvDocumentLicense *license);
 
 G_END_DECLS
diff --git a/libdocument/ev-document-layers.h b/libdocument/ev-document-layers.h
index 22b339fe3..2ba11927e 100644
--- a/libdocument/ev-document-layers.h
+++ b/libdocument/ev-document-layers.h
@@ -29,6 +29,7 @@
 #include <glib.h>
 #include <gtk/gtk.h>
 
+#include "ev-macros.h"
 #include "ev-layer.h"
 
 G_BEGIN_DECLS
@@ -69,14 +70,20 @@ struct _EvDocumentLayersInterface
                                            EvLayer          *layer);
 };
 
+EV_PUBLIC
 GType         ev_document_layers_get_type         (void) G_GNUC_CONST;
 
+EV_PUBLIC
 gboolean      ev_document_layers_has_layers       (EvDocumentLayers *document_layers);
+EV_PUBLIC
 GtkTreeModel *ev_document_layers_get_layers       (EvDocumentLayers *document_layers);
+EV_PUBLIC
 void          ev_document_layers_show_layer       (EvDocumentLayers *document_layers,
                                                   EvLayer          *layer);
+EV_PUBLIC
 void          ev_document_layers_hide_layer       (EvDocumentLayers *document_layers,
                                                   EvLayer          *layer);
+EV_PUBLIC
 gboolean      ev_document_layers_layer_is_visible (EvDocumentLayers *document_layers,
                                                   EvLayer          *layer);
 
diff --git a/libdocument/ev-document-links.h b/libdocument/ev-document-links.h
index 36fa25491..2e6dc5d8a 100644
--- a/libdocument/ev-document-links.h
+++ b/libdocument/ev-document-links.h
@@ -32,6 +32,7 @@
 #include <glib.h>
 #include <gtk/gtk.h>
 
+#include "ev-macros.h"
 #include "ev-document.h"
 #include "ev-link.h"
 #include "ev-mapping-list.h"
@@ -71,22 +72,32 @@ struct _EvDocumentLinksInterface
                                               const gchar     *link_name);
 };
 
+EV_PUBLIC
 GType          ev_document_links_get_type            (void) G_GNUC_CONST;
+EV_PUBLIC
 gboolean       ev_document_links_has_document_links  (EvDocumentLinks *document_links);
+EV_PUBLIC
 GtkTreeModel  *ev_document_links_get_links_model     (EvDocumentLinks *document_links);
 
+EV_PUBLIC
 EvMappingList *ev_document_links_get_links           (EvDocumentLinks *document_links,
                                                      EvPage          *page);
+EV_PUBLIC
 EvLinkDest    *ev_document_links_find_link_dest      (EvDocumentLinks *document_links,
                                                      const gchar     *link_name);
+EV_PUBLIC
 gint           ev_document_links_find_link_page      (EvDocumentLinks *document_links,
                                                      const gchar     *link_name);
+EV_PUBLIC
 gint           ev_document_links_get_dest_page       (EvDocumentLinks *document_links,
                                                      EvLinkDest      *dest);
+EV_PUBLIC
 gchar         *ev_document_links_get_dest_page_label (EvDocumentLinks *document_links,
                                                      EvLinkDest      *dest);
+EV_PUBLIC
 gint           ev_document_links_get_link_page       (EvDocumentLinks *document_links,
                                                      EvLink          *link);
+EV_PUBLIC
 gchar         *ev_document_links_get_link_page_label (EvDocumentLinks *document_links,
                                                      EvLink          *link);
 
diff --git a/libdocument/ev-document-media.h b/libdocument/ev-document-media.h
index ac8dbfbb5..db00f3cb3 100644
--- a/libdocument/ev-document-media.h
+++ b/libdocument/ev-document-media.h
@@ -28,6 +28,7 @@
 #include <glib-object.h>
 #include <glib.h>
 
+#include "ev-macros.h"
 #include "ev-document.h"
 #include "ev-media.h"
 #include "ev-mapping-list.h"
@@ -52,7 +53,9 @@ struct _EvDocumentMediaInterface {
                                               EvPage          *page);
 };
 
+EV_PUBLIC
 GType          ev_document_media_get_type          (void) G_GNUC_CONST;
+EV_PUBLIC
 EvMappingList *ev_document_media_get_media_mapping (EvDocumentMedia *document_media,
                                                     EvPage          *page);
 
diff --git a/libdocument/ev-document-misc.h b/libdocument/ev-document-misc.h
index e6d0d34fd..ea52a06ef 100644
--- a/libdocument/ev-document-misc.h
+++ b/libdocument/ev-document-misc.h
@@ -30,40 +30,49 @@
 
 #include <gdk-pixbuf/gdk-pixbuf.h>
 #include <gtk/gtk.h>
+
 #include "ev-macros.h"
 
 G_BEGIN_DECLS
 
 EV_DEPRECATED
+EV_PUBLIC
 GdkPixbuf *ev_document_misc_get_thumbnail_frame  (int           width,
                                                  int           height,
                                                  GdkPixbuf    *source_pixbuf);
 EV_DEPRECATED
+EV_PUBLIC
 GdkPixbuf *ev_document_misc_get_loading_thumbnail (int      width,
                                                   int      height,
                                                   gboolean inverted_colors);
 
+EV_PUBLIC
 GdkPixbuf *ev_document_misc_render_loading_thumbnail    (GtkWidget *widget,
                                                         int        width,
                                                         int        height,
                                                         gboolean   inverted_colors);
+EV_PUBLIC
 GdkPixbuf *ev_document_misc_render_thumbnail_with_frame (GtkWidget *widget,
                                                         GdkPixbuf *source_pixbuf);
 
+EV_PUBLIC
 cairo_surface_t *ev_document_misc_render_loading_thumbnail_surface (GtkWidget *widget,
                                                                    int        width,
                                                                    int        height,
                                                                    gboolean   inverted_colors);
+EV_PUBLIC
 cairo_surface_t *ev_document_misc_render_thumbnail_surface_with_frame (GtkWidget       *widget,
                                                                       cairo_surface_t *source_surface,
                                                                       int              width,
                                                                       int              height);
 
 EV_DEPRECATED
+EV_PUBLIC
 void       ev_document_misc_get_page_border_size (gint          page_width,
                                                  gint          page_height,
                                                  GtkBorder    *border);
 EV_DEPRECATED
+EV_PUBLIC
 void       ev_document_misc_paint_one_page       (cairo_t      *cr,
                                                  GtkWidget    *widget,
                                                  GdkRectangle *area,
@@ -71,25 +80,36 @@ void       ev_document_misc_paint_one_page       (cairo_t      *cr,
                                                  gboolean      highlight,
                                                  gboolean      inverted_colors);
 
+EV_PUBLIC
 cairo_surface_t *ev_document_misc_surface_from_pixbuf (GdkPixbuf *pixbuf);
+EV_PUBLIC
 GdkPixbuf       *ev_document_misc_pixbuf_from_surface (cairo_surface_t *surface);
+EV_PUBLIC
 cairo_surface_t *ev_document_misc_surface_rotate_and_scale (cairo_surface_t *surface,
                                                            gint             dest_width,
                                                            gint             dest_height,
                                                            gint             dest_rotation);
+EV_PUBLIC
 void             ev_document_misc_invert_surface (cairo_surface_t *surface);
+EV_PUBLIC
 void            ev_document_misc_invert_pixbuf  (GdkPixbuf       *pixbuf);
 
 EV_DEPRECATED_FOR(ev_document_misc_get_widget_dpi)
+EV_PUBLIC
 gdouble          ev_document_misc_get_screen_dpi (GdkScreen *screen);
+EV_PUBLIC
 gdouble          ev_document_misc_get_widget_dpi (GtkWidget *widget);
 
 G_GNUC_BEGIN_IGNORE_DEPRECATIONS
 EV_DEPRECATED_FOR (ev_document_misc_format_datetime)
+EV_PUBLIC
 gchar           *ev_document_misc_format_date     (GTime utime);
 G_GNUC_END_IGNORE_DEPRECATIONS
+
+EV_PUBLIC
 gchar           *ev_document_misc_format_datetime (GDateTime *dt);
 
+EV_PUBLIC
 void             ev_document_misc_get_pointer_position (GtkWidget *widget,
                                                        gint      *x,
                                                        gint      *y);
diff --git a/libdocument/ev-document-print.h b/libdocument/ev-document-print.h
index 26ed0b543..31bbda0b5 100644
--- a/libdocument/ev-document-print.h
+++ b/libdocument/ev-document-print.h
@@ -24,6 +24,7 @@
 #include <glib-object.h>
 #include <cairo.h>
 
+#include "ev-macros.h"
 #include "ev-page.h"
 
 G_BEGIN_DECLS
@@ -48,8 +49,10 @@ struct _EvDocumentPrintInterface
                             cairo_t         *cr);
 };
 
+EV_PUBLIC
 GType ev_document_print_get_type   (void) G_GNUC_CONST;
 
+EV_PUBLIC
 void  ev_document_print_print_page (EvDocumentPrint *document_print,
                                    EvPage          *page,
                                    cairo_t         *cr);
diff --git a/libdocument/ev-document-security.h b/libdocument/ev-document-security.h
index b4fbab6d3..3b5385a92 100644
--- a/libdocument/ev-document-security.h
+++ b/libdocument/ev-document-security.h
@@ -32,6 +32,7 @@
 #include <glib.h>
 #include <gdk/gdk.h>
 
+#include "ev-macros.h"
 #include "ev-document.h"
 
 G_BEGIN_DECLS
@@ -57,8 +58,11 @@ struct _EvDocumentSecurityInterface
                                                        const char         *password);
 };
 
+EV_PUBLIC
 GType    ev_document_security_get_type              (void);
+EV_PUBLIC
 gboolean ev_document_security_has_document_security (EvDocumentSecurity *document_security);
+EV_PUBLIC
 void     ev_document_security_set_password          (EvDocumentSecurity *document_security,
                                                     const char         *password);
 
diff --git a/libdocument/ev-document-text.h b/libdocument/ev-document-text.h
index 2e6e10d7f..6a2a06ec0 100644
--- a/libdocument/ev-document-text.h
+++ b/libdocument/ev-document-text.h
@@ -30,6 +30,7 @@
 #include <glib.h>
 #include <gdk/gdk.h>
 
+#include "ev-macros.h"
 #include "ev-document.h"
 
 G_BEGIN_DECLS
@@ -61,16 +62,21 @@ struct _EvDocumentTextInterface
                                              EvPage           *page);
 };
 
+EV_PUBLIC
 GType           ev_document_text_get_type         (void) G_GNUC_CONST;
 
+EV_PUBLIC
 gchar          *ev_document_text_get_text         (EvDocumentText  *document_text,
                                                   EvPage          *page);
+EV_PUBLIC
 gboolean        ev_document_text_get_text_layout  (EvDocumentText  *document_text,
                                                   EvPage          *page,
                                                   EvRectangle    **areas,
                                                   guint           *n_areas);
+EV_PUBLIC
 cairo_region_t *ev_document_text_get_text_mapping (EvDocumentText  *document_text,
                                                   EvPage          *page);
+EV_PUBLIC
 PangoAttrList  *ev_document_text_get_text_attrs   (EvDocumentText  *document_text,
                                                   EvPage          *page);
 G_END_DECLS
diff --git a/libdocument/ev-document-transition.h b/libdocument/ev-document-transition.h
index f2979033c..893520594 100644
--- a/libdocument/ev-document-transition.h
+++ b/libdocument/ev-document-transition.h
@@ -27,6 +27,7 @@
 
 #include <glib-object.h>
 
+#include "ev-macros.h"
 #include "ev-document.h"
 #include "ev-transition-effect.h"
 
@@ -53,9 +54,12 @@ struct _EvDocumentTransitionInterface
                                                    gint                  page);
 };
 
+EV_PUBLIC
 GType                ev_document_transition_get_type          (void) G_GNUC_CONST;
+EV_PUBLIC
 gdouble              ev_document_transition_get_page_duration (EvDocumentTransition *document_trans,
                                                               gint                  page);
+EV_PUBLIC
 EvTransitionEffect * ev_document_transition_get_effect        (EvDocumentTransition *document_trans,
                                                               gint                  page);
 
diff --git a/libdocument/ev-document-type-builtins.h.template 
b/libdocument/ev-document-type-builtins.h.template
index 4c52f8c7b..97483a620 100644
--- a/libdocument/ev-document-type-builtins.h.template
+++ b/libdocument/ev-document-type-builtins.h.template
@@ -9,6 +9,8 @@
 
 #include <glib-object.h>
 
+#include "ev-macros.h"
+
 G_BEGIN_DECLS
 /*** END file-header ***/
 
@@ -18,6 +20,7 @@ G_BEGIN_DECLS
 /*** END file-production ***/
 
 /*** BEGIN value-header ***/
+EV_PUBLIC
 GType @enum_name@_get_type (void) G_GNUC_CONST;
 #define EV_TYPE_@ENUMSHORT@ (@enum_name@_get_type ())
 /*** END value-header ***/
diff --git a/libdocument/ev-document.h b/libdocument/ev-document.h
index a3ed4c16a..b3a5fce18 100644
--- a/libdocument/ev-document.h
+++ b/libdocument/ev-document.h
@@ -33,6 +33,7 @@
 #include <gdk/gdk.h>
 #include <cairo.h>
 
+#include "ev-macros.h"
 #include "ev-document-info.h"
 #include "ev-page.h"
 #include "ev-render-context.h"
@@ -134,90 +135,130 @@ struct _EvDocumentClass
                                                     EvRenderContext     *rc);
 };
 
+EV_PUBLIC
 GType            ev_document_get_type             (void) G_GNUC_CONST;
+EV_PUBLIC
 GQuark           ev_document_error_quark          (void);
 
 /* Document mutex */
+EV_PUBLIC
 GMutex          *ev_document_get_doc_mutex        (void);
+EV_PUBLIC
 void             ev_document_doc_mutex_lock       (void);
+EV_PUBLIC
 void             ev_document_doc_mutex_unlock     (void);
+EV_PUBLIC
 gboolean         ev_document_doc_mutex_trylock    (void);
 
 /* FontConfig mutex */
+EV_PUBLIC
 GMutex          *ev_document_get_fc_mutex         (void);
+EV_PUBLIC
 void             ev_document_fc_mutex_lock        (void);
+EV_PUBLIC
 void             ev_document_fc_mutex_unlock      (void);
+EV_PUBLIC
 gboolean         ev_document_fc_mutex_trylock     (void);
 
+EV_PUBLIC
 EvDocumentInfo  *ev_document_get_info             (EvDocument      *document);
+EV_PUBLIC
 gboolean         ev_document_get_backend_info     (EvDocument      *document,
                                                   EvDocumentBackendInfo *info);
+EV_PUBLIC
 gboolean         ev_document_get_modified         (EvDocument      *document);
+EV_PUBLIC
 void             ev_document_set_modified         (EvDocument      *document,
                                                   gboolean         modified);
+EV_PUBLIC
 gboolean         ev_document_load                 (EvDocument      *document,
                                                   const char      *uri,
                                                   GError         **error);
+EV_PUBLIC
 gboolean         ev_document_load_full            (EvDocument           *document,
                                                   const char           *uri,
                                                   EvDocumentLoadFlags   flags,
                                                   GError              **error);
+EV_PUBLIC
 gboolean         ev_document_load_stream          (EvDocument         *document,
                                                    GInputStream       *stream,
                                                    EvDocumentLoadFlags flags,
                                                    GCancellable       *cancellable,
                                                    GError            **error);
+EV_PUBLIC
 gboolean         ev_document_load_gfile           (EvDocument         *document,
                                                    GFile              *file,
                                                    EvDocumentLoadFlags flags,
                                                    GCancellable       *cancellable,
                                                    GError            **error);
+EV_PUBLIC
 gboolean         ev_document_save                 (EvDocument      *document,
                                                   const char      *uri,
                                                   GError         **error);
+EV_PUBLIC
 gint             ev_document_get_n_pages          (EvDocument      *document);
+EV_PUBLIC
 EvPage          *ev_document_get_page             (EvDocument      *document,
                                                   gint             index);
+EV_PUBLIC
 void             ev_document_get_page_size        (EvDocument      *document,
                                                   gint             page_index,
                                                   double          *width,
                                                   double          *height);
+EV_PUBLIC
 gchar           *ev_document_get_page_label       (EvDocument      *document,
                                                   gint             page_index);
+EV_PUBLIC
 cairo_surface_t *ev_document_render               (EvDocument      *document,
                                                   EvRenderContext *rc);
+EV_PUBLIC
 GdkPixbuf       *ev_document_get_thumbnail        (EvDocument      *document,
                                                   EvRenderContext *rc);
+EV_PUBLIC
 cairo_surface_t *ev_document_get_thumbnail_surface (EvDocument      *document,
                                                    EvRenderContext *rc);
+EV_PUBLIC
 guint64          ev_document_get_size             (EvDocument      *document);
+EV_PUBLIC
 const gchar     *ev_document_get_uri              (EvDocument      *document);
+EV_PUBLIC
 const gchar     *ev_document_get_title            (EvDocument      *document);
+EV_PUBLIC
 gboolean         ev_document_is_page_size_uniform (EvDocument      *document);
+EV_PUBLIC
 void             ev_document_get_max_page_size    (EvDocument      *document,
                                                   gdouble         *width,
                                                   gdouble         *height);
+EV_PUBLIC
 void             ev_document_get_min_page_size    (EvDocument      *document,
                                                   gdouble         *width,
                                                   gdouble         *height);
+EV_PUBLIC
 gboolean         ev_document_check_dimensions     (EvDocument      *document);
+EV_PUBLIC
 gint             ev_document_get_max_label_len    (EvDocument      *document);
+EV_PUBLIC
 gboolean         ev_document_has_text_page_labels (EvDocument      *document);
+EV_PUBLIC
 gboolean         ev_document_find_page_by_label   (EvDocument      *document,
                                                   const gchar     *page_label,
                                                   gint            *page_index);
+EV_PUBLIC
 gboolean        ev_document_has_synctex          (EvDocument      *document);
 
+EV_PUBLIC
 EvSourceLink    *ev_document_synctex_backward_search
                                                   (EvDocument      *document,
                                                    gint             page_index,
                                                    gfloat           x,
                                                    gfloat           y);
 
+EV_PUBLIC
 EvMapping       *ev_document_synctex_forward_search
                                                   (EvDocument      *document,
                                                   EvSourceLink    *source_link);
 
+EV_PUBLIC
 gint             ev_rect_cmp                      (EvRectangle     *a,
                                                   EvRectangle     *b);
 
@@ -230,9 +271,13 @@ struct _EvRectangle
        gdouble y2;
 };
 
+EV_PUBLIC
 GType        ev_rectangle_get_type (void) G_GNUC_CONST;
+EV_PUBLIC
 EvRectangle *ev_rectangle_new      (void);
+EV_PUBLIC
 EvRectangle *ev_rectangle_copy     (EvRectangle *ev_rect);
+EV_PUBLIC
 void         ev_rectangle_free     (EvRectangle *ev_rect);
 
 struct _EvMapping {
@@ -248,11 +293,15 @@ struct _EvSourceLink
         gint   col;
 };
 
+EV_PUBLIC
 GType          ev_source_link_get_type (void) G_GNUC_CONST;
+EV_PUBLIC
 EvSourceLink  *ev_source_link_new      (const gchar *filename,
                                        gint         line,
                                        gint         col);
+EV_PUBLIC
 EvSourceLink  *ev_source_link_copy     (EvSourceLink *link);
+EV_PUBLIC
 void           ev_source_link_free     (EvSourceLink *link);
 
 /* convenience macro to ease interface addition in the CODE
@@ -296,8 +345,9 @@ static void     backend_name##_class_intern_init (gpointer klass)           \
        backend_name##_parent_class = g_type_class_peek_parent (klass);         \
        backend_name##_class_init ((BackendName##Class *) klass);               \
 }                                                                              \
-                                                                               \
-G_MODULE_EXPORT GType                                                          \
+                                                                                \
+EV_PUBLIC                                                                       \
+GType                                                                          \
 register_evince_backend (GTypeModule *module)                                  \
 {                                                                              \
        const GTypeInfo our_info = {                                            \
diff --git a/libdocument/ev-file-exporter.h b/libdocument/ev-file-exporter.h
index 6d92361c0..b3776d9bd 100644
--- a/libdocument/ev-file-exporter.h
+++ b/libdocument/ev-file-exporter.h
@@ -29,6 +29,7 @@
 
 #include <glib-object.h>
 
+#include "ev-macros.h"
 #include "ev-render-context.h"
 
 G_BEGIN_DECLS
@@ -88,14 +89,21 @@ struct _EvFileExporterInterface {
        EvFileExporterCapabilities (* get_capabilities) (EvFileExporter        *exporter);
 };
 
+EV_PUBLIC
 GType                      ev_file_exporter_get_type         (void) G_GNUC_CONST;
+EV_PUBLIC
 void                       ev_file_exporter_begin            (EvFileExporter        *exporter,
                                                              EvFileExporterContext *fc);
+EV_PUBLIC
 void                       ev_file_exporter_begin_page       (EvFileExporter        *exporter);
+EV_PUBLIC
 void                       ev_file_exporter_do_page          (EvFileExporter        *exporter,
                                                              EvRenderContext       *rc);
+EV_PUBLIC
 void                       ev_file_exporter_end_page         (EvFileExporter        *exporter);
+EV_PUBLIC
 void                       ev_file_exporter_end              (EvFileExporter        *exporter);
+EV_PUBLIC
 EvFileExporterCapabilities ev_file_exporter_get_capabilities (EvFileExporter        *exporter);
 
 G_END_DECLS
diff --git a/libdocument/ev-file-helpers.h b/libdocument/ev-file-helpers.h
index 45d1453f3..8f58e324e 100644
--- a/libdocument/ev-file-helpers.h
+++ b/libdocument/ev-file-helpers.h
@@ -27,6 +27,8 @@
 #include <glib.h>
 #include <gio/gio.h>
 
+#include "ev-macros.h"
+
 G_BEGIN_DECLS
 
 typedef enum {
@@ -40,36 +42,47 @@ void        _ev_file_helpers_init     (void);
 
 void        _ev_file_helpers_shutdown (void);
 
+EV_PUBLIC
 int          ev_mkstemp               (const char        *tmpl,
                                        char             **file_name,
                                        GError           **error);
+EV_PUBLIC
 GFile       *ev_mkstemp_file          (const char        *tmpl,
                                        GError           **error);
+EV_PUBLIC
 gchar       *ev_mkdtemp               (const char        *tmpl,
                                        GError           **error);
+EV_PUBLIC
 void         ev_tmp_filename_unlink   (const gchar       *filename);
+EV_PUBLIC
 void         ev_tmp_file_unlink       (GFile             *file);
+EV_PUBLIC
 void         ev_tmp_uri_unlink        (const gchar       *uri);
+EV_PUBLIC
 gboolean     ev_file_is_temp          (GFile             *file);
+EV_PUBLIC
 gboolean     ev_xfer_uri_simple       (const char        *from,
                                       const char        *to,
                                       GError           **error);
+EV_PUBLIC
 gboolean     ev_file_copy_metadata    (const char        *from,
                                        const char        *to,
                                        GError           **error);
 
+EV_PUBLIC
 gchar       *ev_file_get_mime_type    (const gchar       *uri,
                                       gboolean           fast,
                                       GError           **error);
 
+EV_PUBLIC
 gchar       *ev_file_uncompress       (const gchar       *uri,
                                       EvCompressionType  type,
                                       GError           **error);
+EV_PUBLIC
 gchar       *ev_file_compress         (const gchar       *uri,
                                       EvCompressionType  type,
                                       GError           **error);
 
-
 G_END_DECLS
 
 #endif /* EV_FILE_HELPERS_H */
diff --git a/libdocument/ev-form-field-private.h b/libdocument/ev-form-field-private.h
index 873978ba9..647968297 100644
--- a/libdocument/ev-form-field-private.h
+++ b/libdocument/ev-form-field-private.h
@@ -27,12 +27,15 @@
 
 //#include <glib-object.h>
 
+#include "ev-macros.h"
 #include "ev-form-field.h"
 
 G_BEGIN_DECLS
 
 /* EvFormField base class */
+EV_PRIVATE
 gchar *ev_form_field_get_alternate_name (EvFormField *field);
+EV_PRIVATE
 void   ev_form_field_set_alternate_name (EvFormField *field,
                                         gchar       *alternative_text);
 
diff --git a/libdocument/ev-form-field.h b/libdocument/ev-form-field.h
index d0571a2af..ffbd17c52 100644
--- a/libdocument/ev-form-field.h
+++ b/libdocument/ev-form-field.h
@@ -27,6 +27,7 @@
 
 #include <glib-object.h>
 
+#include "ev-macros.h"
 #include "ev-document.h"
 #include "ev-link.h"
 
@@ -188,25 +189,34 @@ struct _EvFormFieldSignatureClass
 };
 
 /* EvFormField base class */
+EV_PUBLIC
 GType        ev_form_field_get_type           (void) G_GNUC_CONST;
 
 /* EvFormFieldText */
+EV_PUBLIC
 GType        ev_form_field_text_get_type      (void) G_GNUC_CONST;
+EV_PUBLIC
 EvFormField *ev_form_field_text_new           (gint                  id,
                                               EvFormFieldTextType   type);
 
 /* EvFormFieldButton */
+EV_PUBLIC
 GType        ev_form_field_button_get_type    (void) G_GNUC_CONST;
+EV_PUBLIC
 EvFormField *ev_form_field_button_new         (gint                  id,
                                               EvFormFieldButtonType type);
 
 /* EvFormFieldChoice */
+EV_PUBLIC
 GType        ev_form_field_choice_get_type    (void) G_GNUC_CONST;
+EV_PUBLIC
 EvFormField *ev_form_field_choice_new         (gint                  id,
                                               EvFormFieldChoiceType type);
 
 /* EvFormFieldSignature */
+EV_PUBLIC
 GType        ev_form_field_signature_get_type (void) G_GNUC_CONST;
+EV_PUBLIC
 EvFormField *ev_form_field_signature_new      (gint                  id);
 
 
diff --git a/libdocument/ev-image.h b/libdocument/ev-image.h
index 8943091d7..e8b99108d 100644
--- a/libdocument/ev-image.h
+++ b/libdocument/ev-image.h
@@ -27,6 +27,8 @@
 #include <glib-object.h>
 #include <gdk/gdk.h>
 
+#include "ev-macros.h"
+
 G_BEGIN_DECLS
 
 typedef struct _EvImage        EvImage;
@@ -50,16 +52,24 @@ struct _EvImageClass {
        GObjectClass base_class;
 };
 
+EV_PUBLIC
 GType        ev_image_get_type         (void) G_GNUC_CONST;
+EV_PUBLIC
 EvImage     *ev_image_new              (gint             page,
                                        gint             img_id);
+EV_PUBLIC
 EvImage     *ev_image_new_from_pixbuf  (GdkPixbuf       *pixbuf);
 
+EV_PUBLIC
 gint         ev_image_get_id           (EvImage         *image);
+EV_PUBLIC
 gint         ev_image_get_page         (EvImage         *image);
+EV_PUBLIC
 GdkPixbuf   *ev_image_get_pixbuf       (EvImage         *image);
+EV_PUBLIC
 const gchar *ev_image_save_tmp         (EvImage         *image,
                                        GdkPixbuf       *pixbuf);
+EV_PUBLIC
 const gchar *ev_image_get_tmp_uri      (EvImage         *image);
 
 
diff --git a/libdocument/ev-init.h b/libdocument/ev-init.h
index 046ee9b6b..db66d4531 100644
--- a/libdocument/ev-init.h
+++ b/libdocument/ev-init.h
@@ -26,12 +26,17 @@
 
 #include <glib.h>
 
+#include "ev-macros.h"
+
 G_BEGIN_DECLS
 
+EV_PUBLIC
 const gchar* ev_get_locale_dir (void);
 
+EV_PUBLIC
 gboolean    ev_init           (void);
 
+EV_PUBLIC
 void        ev_shutdown       (void);
 
 gboolean   _ev_is_initialized (void);
diff --git a/libdocument/ev-layer.h b/libdocument/ev-layer.h
index 38b9411b0..60e9ce864 100644
--- a/libdocument/ev-layer.h
+++ b/libdocument/ev-layer.h
@@ -26,6 +26,8 @@
 
 #include <glib-object.h>
 
+#include "ev-macros.h"
+
 G_BEGIN_DECLS
 
 typedef struct _EvLayer        EvLayer;
@@ -49,10 +51,14 @@ struct _EvLayerClass {
        GObjectClass base_class;
 };
 
+EV_PUBLIC
 GType     ev_layer_get_type     (void) G_GNUC_CONST;
+EV_PUBLIC
 EvLayer  *ev_layer_new          (gboolean is_parent,
                                 gint     rb_group);
+EV_PUBLIC
 gboolean  ev_layer_is_parent    (EvLayer *layer);
+EV_PUBLIC
 gint      ev_layer_get_rb_group (EvLayer *layer);
 
 G_END_DECLS
diff --git a/libdocument/ev-link-action.h b/libdocument/ev-link-action.h
index 4dffeb74d..113361cfd 100644
--- a/libdocument/ev-link-action.h
+++ b/libdocument/ev-link-action.h
@@ -26,6 +26,8 @@
 #define EV_LINK_ACTION_H
 
 #include <glib-object.h>
+
+#include "ev-macros.h"
 #include "ev-link-dest.h"
 
 G_BEGIN_DECLS
@@ -53,33 +55,53 @@ typedef enum {
         * actions */
 } EvLinkActionType;
 
+EV_PUBLIC
 GType            ev_link_action_get_type                 (void) G_GNUC_CONST;
 
+EV_PUBLIC
 EvLinkActionType ev_link_action_get_action_type          (EvLinkAction *self);
+EV_PUBLIC
 EvLinkDest      *ev_link_action_get_dest                 (EvLinkAction *self);
+EV_PUBLIC
 const gchar     *ev_link_action_get_uri                  (EvLinkAction *self);
+EV_PUBLIC
 const gchar     *ev_link_action_get_filename             (EvLinkAction *self);
+EV_PUBLIC
 const gchar     *ev_link_action_get_params               (EvLinkAction *self);
+EV_PUBLIC
 const gchar     *ev_link_action_get_name                 (EvLinkAction *self);
+EV_PUBLIC
 GList           *ev_link_action_get_show_list            (EvLinkAction *self);
+EV_PUBLIC
 GList           *ev_link_action_get_hide_list            (EvLinkAction *self);
+EV_PUBLIC
 GList           *ev_link_action_get_toggle_list          (EvLinkAction *self);
+EV_PUBLIC
 GList           *ev_link_action_get_reset_fields         (EvLinkAction *self);
+EV_PUBLIC
 gboolean         ev_link_action_get_exclude_reset_fields (EvLinkAction *self);
 
+EV_PUBLIC
 EvLinkAction    *ev_link_action_new_dest                 (EvLinkDest   *dest);
+EV_PUBLIC
 EvLinkAction    *ev_link_action_new_remote               (EvLinkDest   *dest,
                                                          const gchar  *filename);
+EV_PUBLIC
 EvLinkAction    *ev_link_action_new_external_uri         (const gchar  *uri);
+EV_PUBLIC
 EvLinkAction    *ev_link_action_new_launch               (const gchar  *filename,
                                                          const gchar  *params);
+EV_PUBLIC
 EvLinkAction    *ev_link_action_new_named                (const gchar  *name);
+EV_PUBLIC
 EvLinkAction    *ev_link_action_new_layers_state         (GList        *show_list,
                                                          GList        *hide_list,
                                                          GList        *toggle_list);
+EV_PUBLIC
 EvLinkAction    *ev_link_action_new_reset_form           (GList        *fields,
                                                          gboolean      exclude_fields);
 
+EV_PUBLIC
 gboolean         ev_link_action_equal                    (EvLinkAction *a,
                                                           EvLinkAction *b);
 
diff --git a/libdocument/ev-link-dest.h b/libdocument/ev-link-dest.h
index 8e0e8eb61..1ac0389e4 100644
--- a/libdocument/ev-link-dest.h
+++ b/libdocument/ev-link-dest.h
@@ -27,6 +27,8 @@
 
 #include <glib-object.h>
 
+#include "ev-macros.h"
+
 G_BEGIN_DECLS
 
 typedef struct _EvLinkDest        EvLinkDest;
@@ -52,22 +54,34 @@ typedef enum {
        EV_LINK_DEST_TYPE_UNKNOWN
 } EvLinkDestType; 
 
+EV_PUBLIC
 GType           ev_link_dest_get_type       (void) G_GNUC_CONST;
 
+EV_PUBLIC
 EvLinkDestType  ev_link_dest_get_dest_type  (EvLinkDest  *self);
+EV_PUBLIC
 gint            ev_link_dest_get_page       (EvLinkDest  *self);
+EV_PUBLIC
 gdouble         ev_link_dest_get_top        (EvLinkDest  *self,
                                             gboolean    *change_top);
+EV_PUBLIC
 gdouble         ev_link_dest_get_left       (EvLinkDest  *self,
                                             gboolean    *change_left);
+EV_PUBLIC
 gdouble         ev_link_dest_get_bottom     (EvLinkDest  *self);
+EV_PUBLIC
 gdouble         ev_link_dest_get_right      (EvLinkDest  *self);
+EV_PUBLIC
 gdouble         ev_link_dest_get_zoom       (EvLinkDest  *self,
                                             gboolean    *change_zoom);
+EV_PUBLIC
 const gchar    *ev_link_dest_get_named_dest (EvLinkDest  *self);
+EV_PUBLIC
 const gchar    *ev_link_dest_get_page_label (EvLinkDest  *self);
 
+EV_PUBLIC
 EvLinkDest     *ev_link_dest_new_page       (gint         page);
+EV_PUBLIC
 EvLinkDest     *ev_link_dest_new_xyz        (gint         page,
                                             gdouble      left,
                                             gdouble      top,
@@ -75,21 +89,28 @@ EvLinkDest     *ev_link_dest_new_xyz        (gint         page,
                                             gboolean     change_left,
                                             gboolean     change_top,
                                             gboolean     change_zoom);
+EV_PUBLIC
 EvLinkDest     *ev_link_dest_new_fit        (gint         page);
+EV_PUBLIC
 EvLinkDest     *ev_link_dest_new_fith       (gint         page,
                                             gdouble      top,
                                             gboolean     change_top);
+EV_PUBLIC
 EvLinkDest     *ev_link_dest_new_fitv       (gint         page,
                                             gdouble      left,
                                             gboolean     change_left);
+EV_PUBLIC
 EvLinkDest     *ev_link_dest_new_fitr       (gint         page,
                                             gdouble      left,
                                             gdouble      bottom,
                                             gdouble      right,
                                             gdouble      top);
+EV_PUBLIC
 EvLinkDest     *ev_link_dest_new_named      (const gchar *named_dest);
+EV_PUBLIC
 EvLinkDest     *ev_link_dest_new_page_label (const gchar *page_label);
 
+EV_PUBLIC
 gboolean        ev_link_dest_equal          (EvLinkDest  *a,
                                              EvLinkDest  *b);
 
diff --git a/libdocument/ev-link.h b/libdocument/ev-link.h
index 4d498b2e2..fd97cdeb8 100644
--- a/libdocument/ev-link.h
+++ b/libdocument/ev-link.h
@@ -25,6 +25,8 @@
 #define EV_LINK_H
 
 #include <glib-object.h>
+
+#include "ev-macros.h"
 #include "ev-document.h"
 #include "ev-link-action.h"
 
@@ -41,12 +43,16 @@ typedef struct _EvLinkPrivate EvLinkPrivate;
 #define EV_IS_LINK_CLASS(klass)   (G_TYPE_CHECK_CLASS_TYPE((klass), EV_TYPE_LINK))
 #define EV_LINK_GET_CLASS(object) (G_TYPE_INSTANCE_GET_CLASS((object), EV_TYPE_LINK, EvLinkClass))
 
+EV_PUBLIC
 GType         ev_link_get_type  (void) G_GNUC_CONST;
 
+EV_PUBLIC
 EvLink      *ev_link_new        (const gchar  *title,
                                  EvLinkAction *action);
 
+EV_PUBLIC
 const gchar  *ev_link_get_title  (EvLink       *self);
+EV_PUBLIC
 EvLinkAction *ev_link_get_action (EvLink       *self);
 
 G_END_DECLS
diff --git a/libdocument/ev-macros.h b/libdocument/ev-macros.h
index ece677c7d..43a7f0d28 100644
--- a/libdocument/ev-macros.h
+++ b/libdocument/ev-macros.h
@@ -29,4 +29,15 @@
 #define EV_UNAVAILABLE(maj,min) G_UNAVAILABLE(maj,min)
 #endif
 
+#ifdef __has_attribute
+#if __has_attribute(__visibility__)
+#define EV_PUBLIC __attribute__((__visibility__("default"))) extern
+#endif
+#endif
+#ifndef EV_PUBLIC
+#define EV_PUBLIC extern
+#endif
+
+#define EV_PRIVATE EV_PUBLIC
+
 #endif /* #ifndef EV_MACROS_H */
diff --git a/libdocument/ev-mapping-list.h b/libdocument/ev-mapping-list.h
index dcbb50b78..e2c9c9aa5 100644
--- a/libdocument/ev-mapping-list.h
+++ b/libdocument/ev-mapping-list.h
@@ -25,6 +25,7 @@
 #ifndef EV_MAPPING_LIST_H
 #define EV_MAPPING_LIST_H
 
+#include "ev-macros.h"
 #include "ev-document.h"
 
 G_BEGIN_DECLS
@@ -32,31 +33,44 @@ G_BEGIN_DECLS
 typedef struct _EvMappingList EvMappingList;
 
 #define        EV_TYPE_MAPPING_LIST        (ev_mapping_list_get_type())
+EV_PUBLIC
 GType          ev_mapping_list_get_type    (void) G_GNUC_CONST;
 
+EV_PUBLIC
 EvMappingList *ev_mapping_list_new         (guint          page,
                                            GList         *list,
                                            GDestroyNotify data_destroy_func);
+EV_PUBLIC
 EvMappingList *ev_mapping_list_ref         (EvMappingList *mapping_list);
+EV_PUBLIC
 void           ev_mapping_list_unref       (EvMappingList *mapping_list);
 
+EV_PUBLIC
 guint          ev_mapping_list_get_page    (EvMappingList *mapping_list);
+EV_PUBLIC
 GList         *ev_mapping_list_get_list    (EvMappingList *mapping_list);
+EV_PUBLIC
 void           ev_mapping_list_remove      (EvMappingList *mapping_list,
                                            EvMapping     *mapping);
+EV_PUBLIC
 EvMapping     *ev_mapping_list_find        (EvMappingList *mapping_list,
                                            gconstpointer  data);
+EV_PUBLIC
 EvMapping     *ev_mapping_list_find_custom (EvMappingList *mapping_list,
                                            gconstpointer  data,
                                            GCompareFunc   func);
+EV_PUBLIC
 EvMapping     *ev_mapping_list_get         (EvMappingList *mapping_list,
                                            gdouble        x,
                                            gdouble        y);
+EV_PUBLIC
 gpointer       ev_mapping_list_get_data    (EvMappingList *mapping_list,
                                            gdouble        x,
                                            gdouble        y);
+EV_PUBLIC
 EvMapping     *ev_mapping_list_nth         (EvMappingList *mapping_list,
                                             guint          n);
+EV_PUBLIC
 guint          ev_mapping_list_length      (EvMappingList *mapping_list);
 
 G_END_DECLS
diff --git a/libdocument/ev-media.h b/libdocument/ev-media.h
index a92cd2b4a..dd8866598 100644
--- a/libdocument/ev-media.h
+++ b/libdocument/ev-media.h
@@ -25,6 +25,8 @@
 #define __EV_MEDIA_H__
 
 #include <glib-object.h>
+
+#include "ev-macros.h"
 #include "ev-page.h"
 
 G_BEGIN_DECLS
@@ -50,13 +52,19 @@ struct _EvMediaClass {
         GObjectClass base_class;
 };
 
+EV_PUBLIC
 GType        ev_media_get_type          (void) G_GNUC_CONST;
 
+EV_PUBLIC
 EvMedia     *ev_media_new_for_uri       (EvPage      *page,
                                          const gchar *uri);
+EV_PUBLIC
 const gchar *ev_media_get_uri           (EvMedia     *media);
+EV_PUBLIC
 guint        ev_media_get_page_index    (EvMedia     *media);
+EV_PUBLIC
 gboolean     ev_media_get_show_controls (EvMedia     *media);
+EV_PUBLIC
 void         ev_media_set_show_controls (EvMedia     *media,
                                          gboolean     show_controls);
 
diff --git a/libdocument/ev-page.h b/libdocument/ev-page.h
index c5e56a525..98cae8de5 100644
--- a/libdocument/ev-page.h
+++ b/libdocument/ev-page.h
@@ -26,6 +26,8 @@
 
 #include <glib-object.h>
 
+#include "ev-macros.h"
+
 G_BEGIN_DECLS
 
 #define EV_TYPE_PAGE              (ev_page_get_type())
@@ -54,8 +56,10 @@ struct _EvPageClass {
        GObjectClass base_class;
 };
 
+EV_PUBLIC
 GType   ev_page_get_type (void) G_GNUC_CONST;
 
+EV_PUBLIC
 EvPage *ev_page_new      (gint index);
 
 G_END_DECLS
diff --git a/libdocument/ev-render-context.h b/libdocument/ev-render-context.h
index 76b3740a2..218a0a3db 100644
--- a/libdocument/ev-render-context.h
+++ b/libdocument/ev-render-context.h
@@ -26,6 +26,7 @@
 
 #include <glib-object.h>
 
+#include "ev-macros.h"
 #include "ev-page.h"
 
 G_BEGIN_DECLS
@@ -55,29 +56,38 @@ struct _EvRenderContext
 };
 
 
+EV_PUBLIC
 GType            ev_render_context_get_type        (void) G_GNUC_CONST;
+EV_PUBLIC
 EvRenderContext *ev_render_context_new             (EvPage          *page,
                                                    gint             rotation,
                                                    gdouble          scale);
+EV_PUBLIC
 void             ev_render_context_set_page        (EvRenderContext *rc,
                                                    EvPage          *page);
+EV_PUBLIC
 void             ev_render_context_set_rotation    (EvRenderContext *rc,
                                                    gint             rotation);
+EV_PUBLIC
 void             ev_render_context_set_scale       (EvRenderContext *rc,
                                                    gdouble          scale);
+EV_PUBLIC
 void             ev_render_context_set_target_size (EvRenderContext *rc,
                                                     int              target_width,
                                                     int              target_height);
+EV_PUBLIC
 void             ev_render_context_compute_scaled_size      (EvRenderContext *rc,
                                                              double           width_points,
                                                              double           height_points,
                                                              int             *scaled_width,
                                                              int             *scaled_height);
+EV_PUBLIC
 void             ev_render_context_compute_transformed_size (EvRenderContext *rc,
                                                              double          width_points,
                                                              double          height_points,
                                                              int            *transformed_width,
                                                              int            *transformed_height);
+EV_PUBLIC
 void             ev_render_context_compute_scales  (EvRenderContext *rc,
                                                     double           width_points,
                                                     double           height_points,
diff --git a/libdocument/ev-selection.h b/libdocument/ev-selection.h
index dff12e0a4..b9f8603fe 100644
--- a/libdocument/ev-selection.h
+++ b/libdocument/ev-selection.h
@@ -28,6 +28,8 @@
 #include <glib-object.h>
 #include <glib.h>
 #include <gdk/gdk.h>
+
+#include "ev-macros.h"
 #include "ev-document.h"
 
 G_BEGIN_DECLS
@@ -70,7 +72,9 @@ struct _EvSelectionInterface
                                                   EvRectangle      *points);
 };
 
+EV_PUBLIC
 GType           ev_selection_get_type             (void) G_GNUC_CONST;
+EV_PUBLIC
 void            ev_selection_render_selection     (EvSelection      *selection,
                                                   EvRenderContext  *rc,
                                                   cairo_surface_t **surface,
@@ -79,10 +83,12 @@ void            ev_selection_render_selection     (EvSelection      *selection,
                                                   EvSelectionStyle  style,
                                                   GdkColor         *text,
                                                   GdkColor         *base);
+EV_PUBLIC
 gchar          *ev_selection_get_selected_text    (EvSelection      *selection,
                                                   EvPage           *page,
                                                   EvSelectionStyle  style,
                                                   EvRectangle      *points);
+EV_PUBLIC
 cairo_region_t *ev_selection_get_selection_region (EvSelection      *selection,
                                                   EvRenderContext  *rc,
                                                   EvSelectionStyle  style,
diff --git a/libdocument/ev-transition-effect.h b/libdocument/ev-transition-effect.h
index e7f303077..a8a1691eb 100644
--- a/libdocument/ev-transition-effect.h
+++ b/libdocument/ev-transition-effect.h
@@ -27,6 +27,8 @@
 
 #include <glib-object.h>
 
+#include "ev-macros.h"
+
 G_BEGIN_DECLS
 
 #define EV_TYPE_TRANSITION_EFFECT                (ev_transition_effect_get_type ())
@@ -75,8 +77,10 @@ struct _EvTransitionEffectClass
        GObjectClass parent_class;
 };
 
+EV_PUBLIC
 GType                 ev_transition_effect_get_type           (void) G_GNUC_CONST;
 
+EV_PUBLIC
 EvTransitionEffect   *ev_transition_effect_new                (EvTransitionEffectType  type,
                                                               const gchar            *first_property_name,
                                                               ...);
diff --git a/libdocument/meson.build b/libdocument/meson.build
index cb518af63..02cc36a6c 100644
--- a/libdocument/meson.build
+++ b/libdocument/meson.build
@@ -144,9 +144,8 @@ libevdocument = shared_library(
   include_directories: top_inc,
   dependencies: deps,
   c_args: cflags,
-  link_args: lib_ldflags,
-  link_depends: lib_symbol_map,
   install: true,
+  gnu_symbol_visibility: 'hidden',
 )
 
 libevdocument_dep = declare_dependency(


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]