From 0e6ee5eba2295cf2d9963496085c4892e94abc48 Mon Sep 17 00:00:00 2001 From: David Tardon Date: Sat, 24 May 2014 08:39:54 +0200 Subject: [PATCH 2/9] bundle librevenge Change-Id: Ic36c1670866545db2cf2f29867de7e5b0ad2d57d --- Makefile.fetch | 1 + RepositoryExternal.mk | 53 ++ config_host.mk.in | 2 + configure.ac | 5 + download.lst | 2 + external/Module_external.mk | 1 + .../0001-properly-export-API-symbols.patch | 752 +++++++++++++++++++++ external/librevenge/ExternalPackage_librevenge.mk | 22 + external/librevenge/ExternalProject_librevenge.mk | 44 ++ external/librevenge/Library_revenge.mk | 48 ++ external/librevenge/Makefile | 7 + external/librevenge/Module_librevenge.mk | 31 + external/librevenge/README | 3 + external/librevenge/UnpackedTarball_librevenge.mk | 20 + 14 files changed, 991 insertions(+) create mode 100644 external/librevenge/0001-properly-export-API-symbols.patch create mode 100644 external/librevenge/ExternalPackage_librevenge.mk create mode 100644 external/librevenge/ExternalProject_librevenge.mk create mode 100644 external/librevenge/Library_revenge.mk create mode 100644 external/librevenge/Makefile create mode 100644 external/librevenge/Module_librevenge.mk create mode 100644 external/librevenge/README create mode 100644 external/librevenge/UnpackedTarball_librevenge.mk diff --git a/Makefile.fetch b/Makefile.fetch index b9f500f..204c8f8 100644 --- a/Makefile.fetch +++ b/Makefile.fetch @@ -195,6 +195,7 @@ $(WORKDIR)/download: $(BUILDDIR)/config_host.mk $(SRCDIR)/download.lst $(SRCDIR) $(call fetch_Optional,REDLAND,RAPTOR_TARBALL) \ $(call fetch_Optional,REDLAND,RASQAL_TARBALL) \ $(call fetch_Optional,REDLAND,REDLAND_TARBALL) \ + $(call fetch_Optional,REVENGE,REVENGE_TARBALL) \ $(call fetch_Optional,RHINO,RHINO_TARBALL) \ $(call fetch_Optional,RHINO,SWING_TARBALL) \ $(call fetch_Optional,SERF,SERF_TARBALL) \ diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk index 52c4c6d..13eb221 100644 --- a/RepositoryExternal.mk +++ b/RepositoryExternal.mk @@ -1761,6 +1761,59 @@ endif endif # SYSTEM_ODFGEN +ifneq ($(SYSTEM_REVENGE),) + +define gb_LinkTarget__use_revenge +$(call gb_LinkTarget_set_include,$(1),\ + $$(INCLUDE) \ + $(REVENGE_CFLAGS) \ +) +$(call gb_LinkTarget_add_libs,$(1),$(REVENGE_LIBS)) + +endef + +else # !SYSTEM_REVENGE + +ifeq ($(COM),MSC) + +$(eval $(call gb_Helper_register_libraries_for_install,PLAINLIBS_OOO,ooo,\ + revenge \ +)) + +define gb_LinkTarget__use_revenge +$(call gb_LinkTarget_set_include,$(1),\ + -I$(call gb_UnpackedTarball_get_dir,librevenge)/inc \ + $$(INCLUDE) \ +) +$(call gb_LinkTarget_use_libraries,$(1),\ + revenge \ +) + +endef + +else # !MSC + +$(eval $(call gb_Helper_register_packages_for_install,ooo, \ + librevenge \ +)) + +define gb_LinkTarget__use_revenge +$(call gb_LinkTarget_use_package,$(1),librevenge) + +$(call gb_LinkTarget_set_include,$(1),\ + -I$(call gb_UnpackedTarball_get_dir,librevenge)/inc \ + $$(INCLUDE) \ +) +$(call gb_LinkTarget_add_libs,$(1),\ + -L$(call gb_UnpackedTarball_get_dir,librevenge)/src/lib/.libs -lrevenge-0.0 \ +) +endef + +endif # MSC + +endif # SYSTEM_REVENGE + + ifneq ($(SYSTEM_ABW),) define gb_LinkTarget__use_abw diff --git a/config_host.mk.in b/config_host.mk.in index b287539..27615e9 100644 --- a/config_host.mk.in +++ b/config_host.mk.in @@ -464,6 +464,8 @@ export RASQAL_MAJOR=@RASQAL_MAJOR@ export REDLAND_CFLAGS=$(gb_SPACE)@REDLAND_CFLAGS@ export REDLAND_LIBS=$(gb_SPACE)@REDLAND_LIBS@ export REDLAND_MAJOR=@REDLAND_MAJOR@ +export REVENGE_CFLAGS=$(gb_SPACE)@REVENGE_CFLAGS@ +export REVENGE_LIBS=$(gb_SPACE)@REVENGE_LIBS@ export RHINO_JAR=@RHINO_JAR@ export RPM=@RPM@ export RTL_ARCH=@RTL_ARCH@ diff --git a/configure.ac b/configure.ac index d407a5e..ad27916 100644 --- a/configure.ac +++ b/configure.ac @@ -7663,6 +7663,11 @@ fi AC_SUBST([ENABLE_EOT]) dnl =================================================================== +dnl Check for system librevenge +dnl =================================================================== +libo_CHECK_SYSTEM_MODULE([librevenge],[REVENGE],[librevenge-0.0]) + +dnl =================================================================== dnl Check for system libe-book dnl =================================================================== libo_CHECK_SYSTEM_MODULE([libebook],[EBOOK],[libe-book-0.0 >= 0.0.2],["-I${WORKDIR}/UnpackedTarball/libebook/inc"],["-L${WORKDIR}/UnpackedTarball/libebook/src/lib/.libs -le-book-0.0"]) diff --git a/download.lst b/download.lst index 0601ccd..19cfb4b 100644 --- a/download.lst +++ b/download.lst @@ -121,6 +121,8 @@ export PYTHON_TARBALL := Python-3.3.5.tgz export RAPTOR_TARBALL := 4ceb9316488b0ea01acf011023cf7fff-raptor2-2.0.9.tar.gz export RASQAL_TARBALL := b12c5f9cfdb6b04efce5a4a186b8416b-rasqal-0.9.30.tar.gz export REDLAND_TARBALL := 32f8e1417a64d3c6f2c727f9053f55ea-redland-1.0.16.tar.gz +export REVENGE_MD5SUM := b483b99af21c92c763a1c6a28ebee958 +export REVENGE_TARBALL := librevenge-0.0.0.tar.bz2 export RHINO_TARBALL := 798b2ffdc8bcfe7bca2cf92b62caf685-rhino1_5R5.zip export SERF_MD5SUM := 4f8e76c9c6567aee1d66aba49f76a58b export SERF_TARBALL := serf-1.2.1.tar.bz2 diff --git a/external/Module_external.mk b/external/Module_external.mk index 4f9dde6..7049278 100644 --- a/external/Module_external.mk +++ b/external/Module_external.mk @@ -84,6 +84,7 @@ $(eval $(call gb_Module_add_moduledirs,external,\ $(call gb_Helper_optional,POSTGRESQL,postgresql) \ $(call gb_Helper_optional,PYTHON,python3) \ $(call gb_Helper_optional,REDLAND,redland) \ + $(call gb_Helper_optional,REVENGE,librevenge) \ $(call gb_Helper_optional,RHINO,rhino) \ $(call gb_Helper_optional,SERF,serf) \ $(call gb_Helper_optional,UCPP,ucpp) \ 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 0000000..64513a0 --- /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 +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 + #include + +@@ -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 + #include + +@@ -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 + #include + +@@ -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 + #include + +@@ -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 + #include + +@@ -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 + #include + +@@ -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 + #include + +@@ -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 + #include + +@@ -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 + #include + +@@ -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 + #include + +@@ -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 + #include + +@@ -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 ++ + #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 + diff --git a/external/librevenge/ExternalPackage_librevenge.mk b/external/librevenge/ExternalPackage_librevenge.mk new file mode 100644 index 0000000..d65fdca --- /dev/null +++ b/external/librevenge/ExternalPackage_librevenge.mk @@ -0,0 +1,22 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# 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/. +# + +$(eval $(call gb_ExternalPackage_ExternalPackage,librevenge,librevenge)) + +$(eval $(call gb_ExternalPackage_use_external_project,librevenge,librevenge)) + +ifeq ($(OS),MACOSX) +$(eval $(call gb_ExternalPackage_add_file,librevenge,$(LIBO_LIB_FOLDER)/librevenge-0.0.0.dylib,src/lib/.libs/librevenge-0.0.dylib)) +else ifeq ($(OS),WNT) +$(eval $(call gb_ExternalPackage_add_file,librevenge,$(LIBO_LIB_FOLDER)/librevenge-0.0.dll,src/lib/.libs/librevenge-0.0.dll)) +else ifeq ($(filter IOS ANDROID,$(OS)),) +$(eval $(call gb_ExternalPackage_add_file,librevenge,$(LIBO_LIB_FOLDER)/librevenge-0.0.so.0,src/lib/.libs/librevenge-0.0.so.0.0.0)) +endif + +# vim: set noet sw=4 ts=4: diff --git a/external/librevenge/ExternalProject_librevenge.mk b/external/librevenge/ExternalProject_librevenge.mk new file mode 100644 index 0000000..e9a826c --- /dev/null +++ b/external/librevenge/ExternalProject_librevenge.mk @@ -0,0 +1,44 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# 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/. +# + +$(eval $(call gb_ExternalProject_ExternalProject,librevenge)) + +$(eval $(call gb_ExternalProject_use_autoconf,librevenge,build)) + +$(eval $(call gb_ExternalProject_register_targets,librevenge,\ + build \ +)) + +# TODO: test for zlib is unconditional in configure by mistake. Remove on the next release. +$(eval $(call gb_ExternalProject_use_externals,librevenge,\ + boost_headers \ + zlib \ +)) + +$(call gb_ExternalProject_get_state_target,librevenge,build) : + $(call gb_ExternalProject_run,build,\ + export PKG_CONFIG="" \ + && ./configure \ + --with-pic \ + --enable-shared \ + --disable-static \ + --disable-debug \ + --disable-werror \ + --disable-weffc \ + --disable-streams \ + --disable-generators \ + --without-docs \ + $(if $(VERBOSE)$(verbose),--enable-silent-rules) \ + CXXFLAGS="$(if $(SYSTEM_BOOST),$(BOOST_CPPFLAGS),-I$(call gb_UnpackedTarball_get_dir,boost) -I$(BUILDDIR)/config_$(gb_Side))" \ + $(if $(CROSS_COMPILING),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)) \ + $(if $(filter MACOSX,$(OS)),--prefix=/@.__________________________________________________OOO) \ + && $(MAKE) \ + ) + +# vim: set noet sw=4 ts=4: diff --git a/external/librevenge/Library_revenge.mk b/external/librevenge/Library_revenge.mk new file mode 100644 index 0000000..1976781 --- /dev/null +++ b/external/librevenge/Library_revenge.mk @@ -0,0 +1,48 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# 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/. +# + +$(eval $(call gb_Library_Library,revenge)) + +$(eval $(call gb_Library_use_unpacked,revenge,librevenge)) + +$(eval $(call gb_Library_use_externals,revenge,\ + boost_headers \ +)) + +$(eval $(call gb_Library_set_warnings_not_errors,revenge)) + +$(eval $(call gb_Library_set_include,revenge,\ + -I$(call gb_UnpackedTarball_get_dir,librevenge)/inc \ + $$(INCLUDE) \ +)) + +# -DLIBREVENGE_STREAM_BUILD is present so that linker does not complain +# about unresolved external symbol RVNGStream::~RVNGStream +$(eval $(call gb_Library_add_defs,revenge,\ + -DBOOST_ALL_NO_LIB \ + -DDLL_EXPORT \ + -DLIBREVENGE_BUILD \ + -DLIBREVENGE_STREAM_BUILD \ + -DNDEBUG \ +)) + +$(eval $(call gb_Library_set_generated_cxx_suffix,revenge,cpp)) + +$(eval $(call gb_Library_add_generated_exception_objects,revenge,\ + UnpackedTarball/librevenge/src/lib/RVNGBinaryData \ + UnpackedTarball/librevenge/src/lib/RVNGMemoryStream \ + UnpackedTarball/librevenge/src/lib/RVNGProperty \ + UnpackedTarball/librevenge/src/lib/RVNGPropertyList \ + UnpackedTarball/librevenge/src/lib/RVNGPropertyListVector \ + UnpackedTarball/librevenge/src/lib/RVNGString \ + UnpackedTarball/librevenge/src/lib/RVNGStringVector \ + UnpackedTarball/librevenge/src/lib/RVNGSVGDrawingGenerator \ +)) + +# vim: set noet sw=4 ts=4: diff --git a/external/librevenge/Makefile b/external/librevenge/Makefile new file mode 100644 index 0000000..e4968cf --- /dev/null +++ b/external/librevenge/Makefile @@ -0,0 +1,7 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- + +module_directory:=$(dir $(realpath $(firstword $(MAKEFILE_LIST)))) + +include $(module_directory)/../../solenv/gbuild/partial_build.mk + +# vim: set noet sw=4 ts=4: diff --git a/external/librevenge/Module_librevenge.mk b/external/librevenge/Module_librevenge.mk new file mode 100644 index 0000000..cd11805 --- /dev/null +++ b/external/librevenge/Module_librevenge.mk @@ -0,0 +1,31 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# 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/. +# + +$(eval $(call gb_Module_Module,librevenge)) + +$(eval $(call gb_Module_add_targets,librevenge,\ + UnpackedTarball_librevenge \ +)) + +ifeq ($(COM),MSC) + +$(eval $(call gb_Module_add_targets,librevenge,\ + Library_revenge \ +)) + +else + +$(eval $(call gb_Module_add_targets,librevenge,\ + ExternalPackage_librevenge \ + ExternalProject_librevenge \ +)) + +endif + +# vim: set noet sw=4 ts=4: diff --git a/external/librevenge/README b/external/librevenge/README new file mode 100644 index 0000000..23007ff --- /dev/null +++ b/external/librevenge/README @@ -0,0 +1,3 @@ +From [http://sourceforge.net/p/libwpd/wiki/librevenge/]. A base library +for writing document import filters. It has interfaces for text documents, +vector graphics, spreadsheets and presentations. diff --git a/external/librevenge/UnpackedTarball_librevenge.mk b/external/librevenge/UnpackedTarball_librevenge.mk new file mode 100644 index 0000000..8311eab --- /dev/null +++ b/external/librevenge/UnpackedTarball_librevenge.mk @@ -0,0 +1,20 @@ +# -*- Mode: makefile-gmake; tab-width: 4; indent-tabs-mode: t -*- +# +# This file is part of the LibreOffice project. +# +# 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/. +# + +$(eval $(call gb_UnpackedTarball_UnpackedTarball,librevenge)) + +$(eval $(call gb_UnpackedTarball_set_tarball,librevenge,$(REVENGE_TARBALL))) + +$(eval $(call gb_UnpackedTarball_set_patchlevel,librevenge,1)) + +$(eval $(call gb_UnpackedTarball_add_patches,librevenge,\ + external/librevenge/0001-properly-export-API-symbols.patch \ +)) + +# vim: set noet sw=4 ts=4: -- 1.9.3