summaryrefslogtreecommitdiff
path: root/external/librevenge/0001-properly-export-API-symbols.patch
diff options
context:
space:
mode:
Diffstat (limited to 'external/librevenge/0001-properly-export-API-symbols.patch')
-rw-r--r--external/librevenge/0001-properly-export-API-symbols.patch752
1 files changed, 752 insertions, 0 deletions
diff --git a/external/librevenge/0001-properly-export-API-symbols.patch b/external/librevenge/0001-properly-export-API-symbols.patch
new file mode 100644
index 000000000000..64513a0a5c36
--- /dev/null
+++ b/external/librevenge/0001-properly-export-API-symbols.patch
@@ -0,0 +1,752 @@
+From d0df6db52ae8db3b3e9549837e698a091474e727 Mon Sep 17 00:00:00 2001
+From: David Tardon <dtardon@redhat.com>
+Date: Sun, 25 May 2014 08:52:57 +0200
+Subject: [PATCH] properly export API symbols
+
+---
+ inc/librevenge-generators/Makefile.am | 1 +
+ .../RVNGCSVSpreadsheetGenerator.h | 4 ++-
+ inc/librevenge-generators/RVNGHTMLTextGenerator.h | 4 ++-
+ .../RVNGRawDrawingGenerator.h | 4 ++-
+ .../RVNGRawPresentationGenerator.h | 4 ++-
+ .../RVNGRawSpreadsheetGenerator.h | 4 ++-
+ inc/librevenge-generators/RVNGRawTextGenerator.h | 4 ++-
+ .../RVNGSVGPresentationGenerator.h | 4 ++-
+ .../RVNGTextDrawingGenerator.h | 4 ++-
+ .../RVNGTextPresentationGenerator.h | 9 +++++-
+ .../RVNGTextSpreadsheetGenerator.h | 4 ++-
+ inc/librevenge-generators/RVNGTextTextGenerator.h | 4 ++-
+ .../librevenge-generators-api.h | 36 ++++++++++++++++++++++
+ inc/librevenge-stream/Makefile.am | 1 +
+ inc/librevenge-stream/RVNGDirectoryStream.h | 4 ++-
+ inc/librevenge-stream/RVNGStream.h | 4 ++-
+ inc/librevenge-stream/RVNGStreamImplementation.h | 6 ++--
+ inc/librevenge-stream/librevenge-stream-api.h | 36 ++++++++++++++++++++++
+ inc/librevenge/Makefile.am | 1 +
+ inc/librevenge/RVNGBinaryData.h | 5 ++-
+ inc/librevenge/RVNGDrawingInterface.h | 4 ++-
+ inc/librevenge/RVNGPresentationInterface.h | 4 ++-
+ inc/librevenge/RVNGProperty.h | 7 +++--
+ inc/librevenge/RVNGPropertyList.h | 5 ++-
+ inc/librevenge/RVNGPropertyListVector.h | 4 ++-
+ inc/librevenge/RVNGSVGDrawingGenerator.h | 4 ++-
+ inc/librevenge/RVNGSpreadsheetInterface.h | 4 ++-
+ inc/librevenge/RVNGString.h | 4 ++-
+ inc/librevenge/RVNGStringVector.h | 4 ++-
+ inc/librevenge/RVNGTextInterface.h | 4 ++-
+ inc/librevenge/librevenge-api.h | 36 ++++++++++++++++++++++
+ src/lib/Makefile.am | 6 ++++
+ 32 files changed, 202 insertions(+), 27 deletions(-)
+ create mode 100644 inc/librevenge-generators/librevenge-generators-api.h
+ create mode 100644 inc/librevenge-stream/librevenge-stream-api.h
+ create mode 100644 inc/librevenge/librevenge-api.h
+
+diff --git a/inc/librevenge-generators/RVNGCSVSpreadsheetGenerator.h b/inc/librevenge-generators/RVNGCSVSpreadsheetGenerator.h
+index 40cce77..084b55c 100644
+--- a/inc/librevenge-generators/RVNGCSVSpreadsheetGenerator.h
++++ b/inc/librevenge-generators/RVNGCSVSpreadsheetGenerator.h
+@@ -21,6 +21,8 @@
+ #ifndef RVNGCSVSPREADSHEETGENERATOR_H
+ #define RVNGCSVSPREADSHEETGENERATOR_H
+
++#include "librevenge-generators-api.h"
++
+ #include <librevenge/librevenge.h>
+ #include <librevenge-stream/librevenge-stream.h>
+
+@@ -32,7 +34,7 @@ struct RVNGCSVSpreadsheetGeneratorImpl;
+ *
+ * See \c ::librevenge::RVNGSpreadsheetInterface for documentation of the basic interface.
+ */
+-class RVNGCSVSpreadsheetGenerator : public RVNGSpreadsheetInterface
++class REVENGE_GENERATORS_API RVNGCSVSpreadsheetGenerator : public RVNGSpreadsheetInterface
+ {
+ //! unimplemented copy constructor to prevent copy
+ RVNGCSVSpreadsheetGenerator(const RVNGCSVSpreadsheetGenerator &other);
+diff --git a/inc/librevenge-generators/RVNGHTMLTextGenerator.h b/inc/librevenge-generators/RVNGHTMLTextGenerator.h
+index 9bb9b77..6dacfb8 100644
+--- a/inc/librevenge-generators/RVNGHTMLTextGenerator.h
++++ b/inc/librevenge-generators/RVNGHTMLTextGenerator.h
+@@ -21,6 +21,8 @@
+ #ifndef RVNGHTMLTEXTGENERATOR_H
+ #define RVNGHTMLTEXTGENERATOR_H
+
++#include "librevenge-generators-api.h"
++
+ #include <librevenge/librevenge.h>
+ #include <librevenge-stream/librevenge-stream.h>
+
+@@ -29,7 +31,7 @@ namespace librevenge
+
+ struct RVNGHTMLTextGeneratorImpl;
+
+-class RVNGHTMLTextGenerator : public RVNGTextInterface
++class REVENGE_GENERATORS_API RVNGHTMLTextGenerator : public RVNGTextInterface
+ {
+ public:
+ explicit RVNGHTMLTextGenerator(RVNGString &document);
+diff --git a/inc/librevenge-generators/RVNGRawDrawingGenerator.h b/inc/librevenge-generators/RVNGRawDrawingGenerator.h
+index 2b60cc3..a0a6475 100644
+--- a/inc/librevenge-generators/RVNGRawDrawingGenerator.h
++++ b/inc/librevenge-generators/RVNGRawDrawingGenerator.h
+@@ -22,6 +22,8 @@
+ #ifndef RVNGRAWDRAWINGGENERATOR_H
+ #define RVNGRAWDRAWINGGENERATOR_H
+
++#include "librevenge-generators-api.h"
++
+ #include <librevenge-stream/librevenge-stream.h>
+ #include <librevenge/librevenge.h>
+
+@@ -30,7 +32,7 @@ namespace librevenge
+
+ struct RVNGRawDrawingGeneratorImpl;
+
+-class RVNGRawDrawingGenerator : public RVNGDrawingInterface
++class REVENGE_GENERATORS_API RVNGRawDrawingGenerator : public RVNGDrawingInterface
+ {
+ // disable copying
+ RVNGRawDrawingGenerator(const RVNGRawDrawingGenerator &other);
+diff --git a/inc/librevenge-generators/RVNGRawPresentationGenerator.h b/inc/librevenge-generators/RVNGRawPresentationGenerator.h
+index 8a3f1c9..9438541 100644
+--- a/inc/librevenge-generators/RVNGRawPresentationGenerator.h
++++ b/inc/librevenge-generators/RVNGRawPresentationGenerator.h
+@@ -15,6 +15,8 @@
+ #ifndef RVNGRAWPRESENTATIONGENERATOR_H
+ #define RVNGRAWPRESENTATIONGENERATOR_H
+
++#include "librevenge-generators-api.h"
++
+ #include <librevenge/librevenge.h>
+ #include <librevenge-stream/librevenge-stream.h>
+
+@@ -23,7 +25,7 @@ namespace librevenge
+
+ struct RVNGRawPresentationGeneratorImpl;
+
+-class RVNGRawPresentationGenerator : public RVNGPresentationInterface
++class REVENGE_GENERATORS_API RVNGRawPresentationGenerator : public RVNGPresentationInterface
+ {
+ // disable copying
+ RVNGRawPresentationGenerator(const RVNGRawPresentationGenerator &other);
+diff --git a/inc/librevenge-generators/RVNGRawSpreadsheetGenerator.h b/inc/librevenge-generators/RVNGRawSpreadsheetGenerator.h
+index ff584c7..84be1c1 100644
+--- a/inc/librevenge-generators/RVNGRawSpreadsheetGenerator.h
++++ b/inc/librevenge-generators/RVNGRawSpreadsheetGenerator.h
+@@ -21,6 +21,8 @@
+ #ifndef RVNGRAWSPREADSHEETGENERATOR_H
+ #define RVNGRAWSPREADSHEETGENERATOR_H
+
++#include "librevenge-generators-api.h"
++
+ #include <librevenge/librevenge.h>
+ #include <librevenge-stream/librevenge-stream.h>
+
+@@ -29,7 +31,7 @@ namespace librevenge
+
+ struct RVNGRawSpreadsheetGeneratorImpl;
+
+-class RVNGRawSpreadsheetGenerator : public RVNGSpreadsheetInterface
++class REVENGE_GENERATORS_API RVNGRawSpreadsheetGenerator : public RVNGSpreadsheetInterface
+ {
+ // disable copying
+ RVNGRawSpreadsheetGenerator(const RVNGRawSpreadsheetGenerator &other);
+diff --git a/inc/librevenge-generators/RVNGRawTextGenerator.h b/inc/librevenge-generators/RVNGRawTextGenerator.h
+index 2df33d4..7781b07 100644
+--- a/inc/librevenge-generators/RVNGRawTextGenerator.h
++++ b/inc/librevenge-generators/RVNGRawTextGenerator.h
+@@ -21,6 +21,8 @@
+ #ifndef RVNGRAWTEXTGENERATOR_H
+ #define RVNGRAWTEXTGENERATOR_H
+
++#include "librevenge-generators-api.h"
++
+ #include <librevenge/librevenge.h>
+ #include <librevenge-stream/librevenge-stream.h>
+
+@@ -29,7 +31,7 @@ namespace librevenge
+
+ struct RVNGRawTextGeneratorImpl;
+
+-class RVNGRawTextGenerator : public RVNGTextInterface
++class REVENGE_GENERATORS_API RVNGRawTextGenerator : public RVNGTextInterface
+ {
+ // disable copying
+ RVNGRawTextGenerator(const RVNGRawTextGenerator &other);
+diff --git a/inc/librevenge-generators/RVNGSVGPresentationGenerator.h b/inc/librevenge-generators/RVNGSVGPresentationGenerator.h
+index 996ee35..2e18da1 100644
+--- a/inc/librevenge-generators/RVNGSVGPresentationGenerator.h
++++ b/inc/librevenge-generators/RVNGSVGPresentationGenerator.h
+@@ -15,6 +15,8 @@
+ #ifndef RVNGSVGPRESENTATIONGENERATOR_H
+ #define RVNGSVGPRESENTATIONGENERATOR_H
+
++#include "librevenge-generators-api.h"
++
+ #include <librevenge/librevenge.h>
+ #include <librevenge-stream/librevenge-stream.h>
+
+@@ -23,7 +25,7 @@ namespace librevenge
+
+ struct RVNGSVGPresentationGeneratorImpl;
+
+-class RVNGSVGPresentationGenerator : public RVNGPresentationInterface
++class REVENGE_GENERATORS_API RVNGSVGPresentationGenerator : public RVNGPresentationInterface
+ {
+ // disable copying
+ RVNGSVGPresentationGenerator(const RVNGSVGPresentationGenerator &other);
+diff --git a/inc/librevenge-generators/RVNGTextDrawingGenerator.h b/inc/librevenge-generators/RVNGTextDrawingGenerator.h
+index ba9a9cc..2b3160e 100644
+--- a/inc/librevenge-generators/RVNGTextDrawingGenerator.h
++++ b/inc/librevenge-generators/RVNGTextDrawingGenerator.h
+@@ -15,6 +15,8 @@
+ #ifndef RVNGTEXTDRAWINGGENERATOR_H
+ #define RVNGTEXTDRAWINGGENERATOR_H
+
++#include "librevenge-generators-api.h"
++
+ #include <librevenge-stream/librevenge-stream.h>
+ #include <librevenge/librevenge.h>
+
+@@ -23,7 +25,7 @@ namespace librevenge
+
+ struct RVNGTextDrawingGeneratorImpl;
+
+-class RVNGTextDrawingGenerator : public RVNGDrawingInterface
++class REVENGE_GENERATORS_API RVNGTextDrawingGenerator : public RVNGDrawingInterface
+ {
+ // disable copying
+ RVNGTextDrawingGenerator(const RVNGTextDrawingGenerator &other);
+diff --git a/inc/librevenge-generators/RVNGTextPresentationGenerator.h b/inc/librevenge-generators/RVNGTextPresentationGenerator.h
+index f89691e..9bef369 100644
+--- a/inc/librevenge-generators/RVNGTextPresentationGenerator.h
++++ b/inc/librevenge-generators/RVNGTextPresentationGenerator.h
+@@ -12,6 +12,11 @@
+ * applicable instead of those above.
+ */
+
++#ifndef RVNGTEXTPRESENTATIONGENERATOR_H
++#define RVNGTEXTPRESENTATIONGENERATOR_H
++
++#include "librevenge-generators-api.h"
++
+ #include <librevenge/librevenge.h>
+ #include <librevenge-stream/librevenge-stream.h>
+
+@@ -20,7 +25,7 @@ namespace librevenge
+
+ struct RVNGTextPresentationGeneratorImpl;
+
+-class RVNGTextPresentationGenerator : public RVNGPresentationInterface
++class REVENGE_GENERATORS_API RVNGTextPresentationGenerator : public RVNGPresentationInterface
+ {
+ // disable copying
+ RVNGTextPresentationGenerator(const RVNGTextPresentationGenerator &other);
+@@ -124,4 +129,6 @@ private:
+
+ }
+
++#endif
++
+ /* vim:set shiftwidth=4 softtabstop=4 noexpandtab: */
+diff --git a/inc/librevenge-generators/RVNGTextSpreadsheetGenerator.h b/inc/librevenge-generators/RVNGTextSpreadsheetGenerator.h
+index e140153..9ac9dc8 100644
+--- a/inc/librevenge-generators/RVNGTextSpreadsheetGenerator.h
++++ b/inc/librevenge-generators/RVNGTextSpreadsheetGenerator.h
+@@ -21,6 +21,8 @@
+ #ifndef RVNGTEXTSPREADSHEETGENERATOR_H
+ #define RVNGTEXTSPREADSHEETGENERATOR_H
+
++#include "librevenge-generators-api.h"
++
+ #include <librevenge/librevenge.h>
+ #include <librevenge-stream/librevenge-stream.h>
+
+@@ -32,7 +34,7 @@ struct RVNGTextSpreadsheetGeneratorImpl;
+ *
+ * See \c ::librevenge::RVNGSpreadsheetInterface for documentation of the basic interface.
+ */
+-class RVNGTextSpreadsheetGenerator : public RVNGSpreadsheetInterface
++class REVENGE_GENERATORS_API RVNGTextSpreadsheetGenerator : public RVNGSpreadsheetInterface
+ {
+ //! unimplemented copy constructor to prevent copy
+ RVNGTextSpreadsheetGenerator(const RVNGTextSpreadsheetGenerator &other);
+diff --git a/inc/librevenge-generators/RVNGTextTextGenerator.h b/inc/librevenge-generators/RVNGTextTextGenerator.h
+index 87828fd..ec657d5 100644
+--- a/inc/librevenge-generators/RVNGTextTextGenerator.h
++++ b/inc/librevenge-generators/RVNGTextTextGenerator.h
+@@ -21,6 +21,8 @@
+ #ifndef RVNGTEXTTEXTGENERATOR_H
+ #define RVNGTEXTTEXTGENERATOR_H
+
++#include "librevenge-generators-api.h"
++
+ #include <librevenge/librevenge.h>
+ #include <librevenge-stream/librevenge-stream.h>
+
+@@ -29,7 +31,7 @@ namespace librevenge
+
+ struct RVNGTextTextGeneratorImpl;
+
+-class RVNGTextTextGenerator : public RVNGTextInterface
++class REVENGE_GENERATORS_API RVNGTextTextGenerator : public RVNGTextInterface
+ {
+ // disable copying
+ RVNGTextTextGenerator(const RVNGTextTextGenerator &other);
+diff --git a/inc/librevenge-generators/librevenge-generators-api.h b/inc/librevenge-generators/librevenge-generators-api.h
+new file mode 100644
+index 0000000..8d4a5ea
+--- /dev/null
++++ b/inc/librevenge-generators/librevenge-generators-api.h
+@@ -0,0 +1,36 @@
++/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
++/* librevenge
++ * Version: MPL 2.0 / LGPLv2.1+
++ *
++ * This Source Code Form is subject to the terms of the Mozilla Public
++ * License, v. 2.0. If a copy of the MPL was not distributed with this
++ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
++ *
++ * Major Contributor(s):
++ * Copyright (C) 2002 William Lachance (wrlach@gmail.com)
++ * Copyright (C) 2002 Marc Maurer (uwog@uwog.net)
++ *
++ * For minor contributions see the git repository.
++ *
++ * Alternatively, the contents of this file may be used under the terms
++ * of the GNU Lesser General Public License Version 2.1 or later
++ * (LGPLv2.1+), in which case the provisions of the LGPLv2.1+ are
++ * applicable instead of those above.
++ */
++
++#ifndef INCLUDED_LIBREVENGE_GENERATORS_LIBREVENGE_GENERATORS_API_H
++#define INCLUDED_LIBREVENGE_GENERATORS_LIBREVENGE_GENERATORS_API_H
++
++#ifdef DLL_EXPORT
++#ifdef LIBREVENGE_GENERATORS_BUILD
++#define REVENGE_GENERATORS_API __declspec(dllexport)
++#else
++#define REVENGE_GENERATORS_API __declspec(dllimport)
++#endif
++#else
++#define REVENGE_GENERATORS_API
++#endif
++
++#endif /* INCLUDED_LIBREVENGE_GENERATORS_LIBREVENGE_GENERATORS_API_H */
++
++/* vim:set shiftwidth=4 softtabstop=4 noexpandtab: */
+diff --git a/inc/librevenge-stream/RVNGDirectoryStream.h b/inc/librevenge-stream/RVNGDirectoryStream.h
+index dee185e..46d2101 100644
+--- a/inc/librevenge-stream/RVNGDirectoryStream.h
++++ b/inc/librevenge-stream/RVNGDirectoryStream.h
+@@ -22,6 +22,8 @@
+ #ifndef RVNGDIRECTORYSTREAM_H_INCLUDED
+ #define RVNGDIRECTORYSTREAM_H_INCLUDED
+
++#include "librevenge-stream-api.h"
++
+ #include "RVNGStream.h"
+
+ namespace librevenge
+@@ -29,7 +31,7 @@ namespace librevenge
+
+ struct RVNGDirectoryStreamImpl;
+
+-class RVNGDirectoryStream : public RVNGInputStream
++class REVENGE_STREAM_API RVNGDirectoryStream : public RVNGInputStream
+ {
+ // disable copying
+ RVNGDirectoryStream(const RVNGDirectoryStream &);
+diff --git a/inc/librevenge-stream/RVNGStream.h b/inc/librevenge-stream/RVNGStream.h
+index 6b1b38e..1b40bef 100644
+--- a/inc/librevenge-stream/RVNGStream.h
++++ b/inc/librevenge-stream/RVNGStream.h
+@@ -20,6 +20,8 @@
+ #ifndef RVNGSTREAM_H
+ #define RVNGSTREAM_H
+
++#include "librevenge-stream-api.h"
++
+ namespace librevenge
+ {
+
+@@ -30,7 +32,7 @@ enum RVNG_SEEK_TYPE
+ RVNG_SEEK_END
+ };
+
+-class RVNGInputStream
++class REVENGE_STREAM_API RVNGInputStream
+ {
+ public:
+ RVNGInputStream() {}
+diff --git a/inc/librevenge-stream/RVNGStreamImplementation.h b/inc/librevenge-stream/RVNGStreamImplementation.h
+index 06ff938..f4c1a74 100644
+--- a/inc/librevenge-stream/RVNGStreamImplementation.h
++++ b/inc/librevenge-stream/RVNGStreamImplementation.h
+@@ -20,6 +20,8 @@
+ #ifndef RVNGSTREAMIMPLEMENTATION_H
+ #define RVNGSTREAMIMPLEMENTATION_H
+
++#include "librevenge-stream-api.h"
++
+ #include "RVNGStream.h"
+
+ namespace librevenge
+@@ -27,7 +29,7 @@ namespace librevenge
+
+ class RVNGFileStreamPrivate;
+
+-class RVNGFileStream: public RVNGInputStream
++class REVENGE_STREAM_API RVNGFileStream: public RVNGInputStream
+ {
+ public:
+ explicit RVNGFileStream(const char *filename);
+@@ -53,7 +55,7 @@ private:
+
+ class RVNGStringStreamPrivate;
+
+-class RVNGStringStream: public RVNGInputStream
++class REVENGE_STREAM_API RVNGStringStream: public RVNGInputStream
+ {
+ public:
+ RVNGStringStream(const unsigned char *data, const unsigned int dataSize);
+diff --git a/inc/librevenge-stream/librevenge-stream-api.h b/inc/librevenge-stream/librevenge-stream-api.h
+new file mode 100644
+index 0000000..5b544fc
+--- /dev/null
++++ b/inc/librevenge-stream/librevenge-stream-api.h
+@@ -0,0 +1,36 @@
++/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
++/* librevenge
++ * Version: MPL 2.0 / LGPLv2.1+
++ *
++ * This Source Code Form is subject to the terms of the Mozilla Public
++ * License, v. 2.0. If a copy of the MPL was not distributed with this
++ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
++ *
++ * Major Contributor(s):
++ * Copyright (C) 2002 William Lachance (wrlach@gmail.com)
++ * Copyright (C) 2002 Marc Maurer (uwog@uwog.net)
++ *
++ * For minor contributions see the git repository.
++ *
++ * Alternatively, the contents of this file may be used under the terms
++ * of the GNU Lesser General Public License Version 2.1 or later
++ * (LGPLv2.1+), in which case the provisions of the LGPLv2.1+ are
++ * applicable instead of those above.
++ */
++
++#ifndef INCLUDED_LIBREVENGE_STREAM_LIBREVENGE_STREAM_API_H
++#define INCLUDED_LIBREVENGE_STREAM_LIBREVENGE_STREAM_API_H
++
++#ifdef DLL_EXPORT
++#ifdef LIBREVENGE_STREAM_BUILD
++#define REVENGE_STREAM_API __declspec(dllexport)
++#else
++#define REVENGE_STREAM_API __declspec(dllimport)
++#endif
++#else
++#define REVENGE_STREAM_API
++#endif
++
++#endif /* INCLUDED_LIBREVENGE_STREAM_LIBREVENGE_STREAM_API_H */
++
++/* vim:set shiftwidth=4 softtabstop=4 noexpandtab: */
+diff --git a/inc/librevenge/RVNGBinaryData.h b/inc/librevenge/RVNGBinaryData.h
+index c09b26a..825f4dc 100644
+--- a/inc/librevenge/RVNGBinaryData.h
++++ b/inc/librevenge/RVNGBinaryData.h
+@@ -20,7 +20,10 @@
+ #ifndef RVNGBINARYDATA_H
+ #define RVNGBINARYDATA_H
+
++#include "librevenge-api.h"
++
+ #include <librevenge-stream/librevenge-stream.h>
++
+ #include "RVNGString.h"
+
+ namespace librevenge
+@@ -28,7 +31,7 @@ namespace librevenge
+
+ struct RVNGBinaryDataImpl;
+
+-class RVNGBinaryData
++class REVENGE_API RVNGBinaryData
+ {
+ public:
+ RVNGBinaryData();
+diff --git a/inc/librevenge/RVNGDrawingInterface.h b/inc/librevenge/RVNGDrawingInterface.h
+index 0030e49..3b87cda 100644
+--- a/inc/librevenge/RVNGDrawingInterface.h
++++ b/inc/librevenge/RVNGDrawingInterface.h
+@@ -21,6 +21,8 @@
+ #ifndef RVNGDRAWINGINTERFACE_H
+ #define RVNGDRAWINGINTERFACE_H
+
++#include "librevenge-api.h"
++
+ #include "RVNGPropertyList.h"
+ #include "RVNGPropertyListVector.h"
+ #include "RVNGBinaryData.h"
+@@ -28,7 +30,7 @@
+ namespace librevenge
+ {
+
+-class RVNGDrawingInterface
++class REVENGE_API RVNGDrawingInterface
+ {
+ public:
+ virtual ~RVNGDrawingInterface() {}
+diff --git a/inc/librevenge/RVNGPresentationInterface.h b/inc/librevenge/RVNGPresentationInterface.h
+index 2142082..32fec64 100644
+--- a/inc/librevenge/RVNGPresentationInterface.h
++++ b/inc/librevenge/RVNGPresentationInterface.h
+@@ -15,6 +15,8 @@
+ #ifndef RVNGPRESENTATIONINTERFACE_H
+ #define RVNGPRESENTATIONINTERFACE_H
+
++#include "librevenge-api.h"
++
+ #include "RVNGPropertyList.h"
+ #include "RVNGPropertyListVector.h"
+
+@@ -23,7 +25,7 @@ namespace librevenge
+
+ /** Interface for import of presentations.
+ */
+-class RVNGPresentationInterface
++class REVENGE_API RVNGPresentationInterface
+ {
+ public:
+ virtual ~RVNGPresentationInterface() {}
+diff --git a/inc/librevenge/RVNGProperty.h b/inc/librevenge/RVNGProperty.h
+index 46c94fa..df56c2c 100644
+--- a/inc/librevenge/RVNGProperty.h
++++ b/inc/librevenge/RVNGProperty.h
+@@ -19,6 +19,9 @@
+
+ #ifndef RVNGPROPERTY_H
+ #define RVNGPROPERTY_H
++
++#include "librevenge-api.h"
++
+ #include "RVNGString.h"
+
+ namespace librevenge
+@@ -26,7 +29,7 @@ namespace librevenge
+
+ enum RVNGUnit { RVNG_INCH, RVNG_PERCENT, RVNG_POINT, RVNG_TWIP, RVNG_GENERIC, RVNG_UNIT_ERROR };
+
+-class RVNGProperty
++class REVENGE_API RVNGProperty
+ {
+ public:
+ virtual ~RVNGProperty();
+@@ -38,7 +41,7 @@ public:
+ virtual RVNGProperty *clone() const = 0;
+ };
+
+-class RVNGPropertyFactory
++class REVENGE_API RVNGPropertyFactory
+ {
+ public:
+ static RVNGProperty *newStringProp(const RVNGString &str);
+diff --git a/inc/librevenge/RVNGPropertyList.h b/inc/librevenge/RVNGPropertyList.h
+index 8d08bc9..c00af07 100644
+--- a/inc/librevenge/RVNGPropertyList.h
++++ b/inc/librevenge/RVNGPropertyList.h
+@@ -20,6 +20,9 @@
+
+ #ifndef RVNGPROPERTYLIST_H
+ #define RVNGPROPERTYLIST_H
++
++#include "librevenge-api.h"
++
+ #include "RVNGProperty.h"
+
+ namespace librevenge
+@@ -32,7 +35,7 @@ class RVNGPropertyListImpl;
+ class RVNGPropertyListIterImpl;
+ class RVNGPropertyListVector;
+
+-class RVNGPropertyList
++class REVENGE_API RVNGPropertyList
+ {
+ public:
+ RVNGPropertyList();
+diff --git a/inc/librevenge/RVNGPropertyListVector.h b/inc/librevenge/RVNGPropertyListVector.h
+index 33c4f22..850326e 100644
+--- a/inc/librevenge/RVNGPropertyListVector.h
++++ b/inc/librevenge/RVNGPropertyListVector.h
+@@ -21,6 +21,8 @@
+ #ifndef RVNGPROPERTYLISTVECTOR_H
+ #define RVNGPROPERTYLISTVECTOR_H
+
++#include "librevenge-api.h"
++
+ #include "RVNGPropertyList.h"
+
+ namespace librevenge
+@@ -29,7 +31,7 @@ namespace librevenge
+ class RVNGPropertyListVectorImpl;
+ class RVNGPropertyListVectorIterImpl;
+
+-class RVNGPropertyListVector : public RVNGProperty
++class REVENGE_API RVNGPropertyListVector : public RVNGProperty
+ {
+ public:
+ RVNGPropertyListVector(const RVNGPropertyListVector &);
+diff --git a/inc/librevenge/RVNGSVGDrawingGenerator.h b/inc/librevenge/RVNGSVGDrawingGenerator.h
+index 4a90a99..9bfce26 100644
+--- a/inc/librevenge/RVNGSVGDrawingGenerator.h
++++ b/inc/librevenge/RVNGSVGDrawingGenerator.h
+@@ -21,6 +21,8 @@
+ #ifndef RVNGSVGDRAWINGGENERATOR_H
+ #define RVNGSVGDRAWINGGENERATOR_H
+
++#include "librevenge-api.h"
++
+ #include "RVNGDrawingInterface.h"
+ #include "RVNGStringVector.h"
+
+@@ -29,7 +31,7 @@ namespace librevenge
+
+ struct RVNGSVGDrawingGeneratorPrivate;
+
+-class RVNGSVGDrawingGenerator : public RVNGDrawingInterface
++class REVENGE_API RVNGSVGDrawingGenerator : public RVNGDrawingInterface
+ {
+ public:
+ RVNGSVGDrawingGenerator(RVNGStringVector &vec, const RVNGString &nmspace);
+diff --git a/inc/librevenge/RVNGSpreadsheetInterface.h b/inc/librevenge/RVNGSpreadsheetInterface.h
+index 28093b1..c839eec 100644
+--- a/inc/librevenge/RVNGSpreadsheetInterface.h
++++ b/inc/librevenge/RVNGSpreadsheetInterface.h
+@@ -22,6 +22,8 @@
+ #ifndef RVNGSPREADSHEETINTERFACE_H
+ #define RVNGSPREADSHEETINTERFACE_H
+
++#include "librevenge-api.h"
++
+ #include "RVNGString.h"
+ #include "RVNGPropertyList.h"
+ #include "RVNGPropertyListVector.h"
+@@ -46,7 +48,7 @@ definitions listed here.
+ if neededlibrevenge:name the numbering style name
+ */
+
+-class RVNGSpreadsheetInterface
++class REVENGE_API RVNGSpreadsheetInterface
+ {
+ public:
+
+diff --git a/inc/librevenge/RVNGString.h b/inc/librevenge/RVNGString.h
+index 79f7494..cbea3bc 100644
+--- a/inc/librevenge/RVNGString.h
++++ b/inc/librevenge/RVNGString.h
+@@ -21,12 +21,14 @@
+ #ifndef RVNGSTRING_H
+ #define RVNGSTRING_H
+
++#include "librevenge-api.h"
++
+ namespace librevenge
+ {
+
+ class RVNGStringImpl;
+
+-class RVNGString
++class REVENGE_API RVNGString
+ {
+ public:
+ RVNGString();
+diff --git a/inc/librevenge/RVNGStringVector.h b/inc/librevenge/RVNGStringVector.h
+index 4a83609..912159a 100644
+--- a/inc/librevenge/RVNGStringVector.h
++++ b/inc/librevenge/RVNGStringVector.h
+@@ -20,6 +20,8 @@
+ #ifndef RVNGSTRINGVECTOR_H
+ #define RVNGSTRINGVECTOR_H
+
++#include "librevenge-api.h"
++
+ #include "RVNGString.h"
+
+ namespace librevenge
+@@ -27,7 +29,7 @@ namespace librevenge
+
+ class RVNGStringVectorImpl;
+
+-class RVNGStringVector
++class REVENGE_API RVNGStringVector
+ {
+ public:
+ RVNGStringVector();
+diff --git a/inc/librevenge/RVNGTextInterface.h b/inc/librevenge/RVNGTextInterface.h
+index 8c1c6d4..843b13e 100644
+--- a/inc/librevenge/RVNGTextInterface.h
++++ b/inc/librevenge/RVNGTextInterface.h
+@@ -22,6 +22,8 @@
+ #ifndef RVNGTEXTINTERFACE_H
+ #define RVNGTEXTINTERFACE_H
+
++#include "librevenge-api.h"
++
+ #include "RVNGPropertyList.h"
+ #include "RVNGPropertyListVector.h"
+
+@@ -36,7 +38,7 @@ definitions listed here.
+
+ class RVNGInputStream;
+
+-class RVNGTextInterface
++class REVENGE_API RVNGTextInterface
+ {
+ public:
+ virtual ~RVNGTextInterface() {}
+diff --git a/inc/librevenge/librevenge-api.h b/inc/librevenge/librevenge-api.h
+new file mode 100644
+index 0000000..708c8a1
+--- /dev/null
++++ b/inc/librevenge/librevenge-api.h
+@@ -0,0 +1,36 @@
++/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: t; c-basic-offset: 4 -*- */
++/* librevenge
++ * Version: MPL 2.0 / LGPLv2.1+
++ *
++ * This Source Code Form is subject to the terms of the Mozilla Public
++ * License, v. 2.0. If a copy of the MPL was not distributed with this
++ * file, You can obtain one at http://mozilla.org/MPL/2.0/.
++ *
++ * Major Contributor(s):
++ * Copyright (C) 2002 William Lachance (wrlach@gmail.com)
++ * Copyright (C) 2002 Marc Maurer (uwog@uwog.net)
++ *
++ * For minor contributions see the git repository.
++ *
++ * Alternatively, the contents of this file may be used under the terms
++ * of the GNU Lesser General Public License Version 2.1 or later
++ * (LGPLv2.1+), in which case the provisions of the LGPLv2.1+ are
++ * applicable instead of those above.
++ */
++
++#ifndef INCLUDED_LIBREVENGE_LIBREVENGE_API_H
++#define INCLUDED_LIBREVENGE_LIBREVENGE_API_H
++
++#ifdef DLL_EXPORT
++#ifdef LIBREVENGE_BUILD
++#define REVENGE_API __declspec(dllexport)
++#else
++#define REVENGE_API __declspec(dllimport)
++#endif
++#else
++#define REVENGE_API
++#endif
++
++#endif /* INCLUDED_LIBREVENGE_LIBREVENGE_API_H */
++
++/* vim:set shiftwidth=4 softtabstop=4 noexpandtab: */
+--
+1.9.0
+