summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon A. Cruz <jon@joncruz.org>2011-06-10 09:46:50 +0000
committerJon A. Cruz <jon@joncruz.org>2011-06-10 09:46:50 +0000
commit8bfebadcfb9a99361782320eab0183410a1fdabf (patch)
tree3c1a98d2f676d524a7fce256ba9a04083367f8af
parentimproving measurement tool (diff)
downloadinkscape-8bfebadcfb9a99361782320eab0183410a1fdabf.tar.gz
inkscape-8bfebadcfb9a99361782320eab0183410a1fdabf.zip
Modified build to conditionally build against either libwpg 0.1.x or 0.2.x. Fixes bug #778951.
Fixed bugs: - https://launchpad.net/bugs/778951 (bzr r10266)
-rw-r--r--configure.ac22
-rw-r--r--src/extension/internal/wpg-input.cpp17
2 files changed, 34 insertions, 5 deletions
diff --git a/configure.ac b/configure.ac
index 8d0006dbc..f93c1a84b 100644
--- a/configure.ac
+++ b/configure.ac
@@ -713,15 +713,29 @@ dnl ******************************
dnl Check for libwpg for extension
dnl ******************************
-PKG_CHECK_MODULES(LIBWPG, libwpg-0.1 libwpg-stream-0.1, with_libwpg=yes, with_libwpg=no)
+PKG_CHECK_MODULES(LIBWPG01, libwpg-0.1 libwpg-stream-0.1, with_libwpg01=yes, with_libwpg01=no)
+if test "x$with_libwpg01" = "xyes"; then
+ AC_DEFINE(WITH_LIBWPG01,1,[Build in libwpg 0.1.x])
+ with_libwpg=yes
+ AC_SUBST(LIBWPG_LIBS, $LIBWPG01_LIBS)
+ AC_SUBST(LIBWPG_CFLAGS, $LIBWPG01_CFLAGS)
+fi
+AM_CONDITIONAL(WITH_LIBWPG01, test "x$with_libwpg01" = "xyes")
+
+PKG_CHECK_MODULES(LIBWPG02, libwpg-0.2 libwpd-0.9 libwpd-stream-0.9, with_libwpg02=yes, with_libwpg02=no)
+if test "x$with_libwpg02" = "xyes"; then
+ AC_DEFINE(WITH_LIBWPG02,1,[Build in libwpg 0.2.x])
+ with_libwpg=yes
+ AC_SUBST(LIBWPG_LIBS, $LIBWPG02_LIBS)
+ AC_SUBST(LIBWPG_CFLAGS, $LIBWPG02_CFLAGS)
+fi
+AM_CONDITIONAL(WITH_LIBWPG02, test "x$with_libwpg02" = "xyes")
+
if test "x$with_libwpg" = "xyes"; then
AC_DEFINE(WITH_LIBWPG,1,[Build in libwpg])
fi
AM_CONDITIONAL(WITH_LIBWPG, test "x$with_libwpg" = "xyes")
-AC_SUBST(LIBWPG_LIBS)
-AC_SUBST(LIBWPG_CFLAGS)
-
dnl ******************************
dnl Support doing a local install
dnl (mostly for distcheck)
diff --git a/src/extension/internal/wpg-input.cpp b/src/extension/internal/wpg-input.cpp
index 70fa28967..b6425b380 100644
--- a/src/extension/internal/wpg-input.cpp
+++ b/src/extension/internal/wpg-input.cpp
@@ -50,8 +50,11 @@
#include "document.h"
#include "libwpg/libwpg.h"
+#if WITH_LIBWPG01
#include "libwpg/WPGStreamImplementation.h"
-
+#elif WITH_LIBWPG02
+#include "libwpd-stream/libwpd-stream.h"
+#endif
using namespace libwpg;
@@ -62,9 +65,17 @@ namespace Internal {
SPDocument *
WpgInput::open(Inkscape::Extension::Input * mod, const gchar * uri) {
+#if WITH_LIBWPG01
WPXInputStream* input = new libwpg::WPGFileStream(uri);
+#elif WITH_LIBWPG02
+ WPXInputStream* input = new WPXFileStream(uri);
+#endif
if (input->isOLEStream()) {
+#if WITH_LIBWPG01
WPXInputStream* olestream = input->getDocumentOLEStream();
+#elif WITH_LIBWPG02
+ WPXInputStream* olestream = input->getDocumentOLEStream("PerfectOffice_MAIN");
+#endif
if (olestream) {
delete input;
input = olestream;
@@ -79,7 +90,11 @@ WpgInput::open(Inkscape::Extension::Input * mod, const gchar * uri) {
return NULL;
}
+#if WITH_LIBWPG01
libwpg::WPGString output;
+#elif WITH_LIBWPG02
+ WPXString output;
+#endif
if (!libwpg::WPGraphics::generateSVG(input, output)) {
delete input;
return NULL;