summaryrefslogtreecommitdiffstats
path: root/external/libpagemaker
diff options
context:
space:
mode:
authorDavid Tardon <dtardon@redhat.com>2014-06-27 11:36:04 +0200
committerDavid Tardon <dtardon@redhat.com>2014-06-27 11:36:04 +0200
commit1e735d9394e7154250188046e14b9e21aa99eb09 (patch)
tree11875008bdbf6c08da681005a6d6133978075ce1 /external/libpagemaker
parentdownload libpagemaker tarball (diff)
downloadcore-1e735d9394e7154250188046e14b9e21aa99eb09.tar.gz
core-1e735d9394e7154250188046e14b9e21aa99eb09.zip
fix build of libpagemaker on windows
Change-Id: Iac9920b9886fda514e6db35dc89facefeebe4d68
Diffstat (limited to 'external/libpagemaker')
-rw-r--r--external/libpagemaker/0001-define-M_PI-if-not-available.patch35
-rw-r--r--external/libpagemaker/0002-add-missing-typedef-on-windows.patch24
-rw-r--r--external/libpagemaker/0003-round-is-not-available-on-windows.patch37
-rw-r--r--external/libpagemaker/UnpackedTarball_libpagemaker.mk8
4 files changed, 104 insertions, 0 deletions
diff --git a/external/libpagemaker/0001-define-M_PI-if-not-available.patch b/external/libpagemaker/0001-define-M_PI-if-not-available.patch
new file mode 100644
index 000000000000..0fe043e0b638
--- /dev/null
+++ b/external/libpagemaker/0001-define-M_PI-if-not-available.patch
@@ -0,0 +1,35 @@
+From ae6e41e1026a2a84641bb42aa7fb89a9a30a9114 Mon Sep 17 00:00:00 2001
+From: David Tardon <dtardon@redhat.com>
+Date: Fri, 27 Jun 2014 11:30:38 +0200
+Subject: [PATCH 1/3] define M_PI if not available
+
+---
+ src/lib/libpagemaker_utils.h | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+diff --git a/src/lib/libpagemaker_utils.h b/src/lib/libpagemaker_utils.h
+index fed5f3d..ab070b5 100644
+--- a/src/lib/libpagemaker_utils.h
++++ b/src/lib/libpagemaker_utils.h
+@@ -10,6 +10,7 @@
+ #ifndef __LIBPAGEMAKER_UTILS_H__
+ #define __LIBPAGEMAKER_UTILS_H__
+
++#include <cmath>
+ #include <cstdio>
+
+ #include <string>
+@@ -19,6 +20,10 @@
+ #include <librevenge-stream/librevenge-stream.h>
+ #include <librevenge/librevenge.h>
+
++#ifndef M_PI
++#define M_PI 3.14159265358979323846
++#endif
++
+ #ifdef _MSC_VER
+
+ typedef unsigned char uint8_t;
+--
+1.9.3
+
diff --git a/external/libpagemaker/0002-add-missing-typedef-on-windows.patch b/external/libpagemaker/0002-add-missing-typedef-on-windows.patch
new file mode 100644
index 000000000000..7f566b91da84
--- /dev/null
+++ b/external/libpagemaker/0002-add-missing-typedef-on-windows.patch
@@ -0,0 +1,24 @@
+From 7c9cc06fecd69e88428ee5b0cf5a3a3cf40db44b Mon Sep 17 00:00:00 2001
+From: David Tardon <dtardon@redhat.com>
+Date: Fri, 27 Jun 2014 11:30:50 +0200
+Subject: [PATCH 2/3] add missing typedef on windows
+
+---
+ src/lib/libpagemaker_utils.h | 1 +
+ 1 file changed, 1 insertion(+)
+
+diff --git a/src/lib/libpagemaker_utils.h b/src/lib/libpagemaker_utils.h
+index ab070b5..73d2a59 100644
+--- a/src/lib/libpagemaker_utils.h
++++ b/src/lib/libpagemaker_utils.h
+@@ -27,6 +27,7 @@
+ #ifdef _MSC_VER
+
+ typedef unsigned char uint8_t;
++typedef signed char int8_t;
+ typedef unsigned short uint16_t;
+ typedef short int16_t;
+ typedef unsigned uint32_t;
+--
+1.9.3
+
diff --git a/external/libpagemaker/0003-round-is-not-available-on-windows.patch b/external/libpagemaker/0003-round-is-not-available-on-windows.patch
new file mode 100644
index 000000000000..e13d7056f15d
--- /dev/null
+++ b/external/libpagemaker/0003-round-is-not-available-on-windows.patch
@@ -0,0 +1,37 @@
+From e5700eff3f09a6c0b78663b397c141f677c5b16b Mon Sep 17 00:00:00 2001
+From: David Tardon <dtardon@redhat.com>
+Date: Fri, 27 Jun 2014 11:33:09 +0200
+Subject: [PATCH 3/3] round is not available on windows
+
+---
+ src/lib/PMDParser.cpp | 7 +++----
+ 1 file changed, 3 insertions(+), 4 deletions(-)
+
+diff --git a/src/lib/PMDParser.cpp b/src/lib/PMDParser.cpp
+index 7c9ff2d..736ea1c 100644
+--- a/src/lib/PMDParser.cpp
++++ b/src/lib/PMDParser.cpp
+@@ -12,7 +12,6 @@
+ #include <cassert>
+ #include <vector>
+ #include <limits>
+-#include <math.h>
+ #include <librevenge/librevenge.h>
+ #include <boost/optional.hpp>
+ #include <boost/shared_ptr.hpp>
+@@ -608,9 +607,9 @@ void PMDParser::parseColors(const PMDRecordContainer &container)
+
+ uint16_t max = (std::numeric_limits<uint16_t>::max)();
+
+- red = 255* round((1 - std::min(1.0, (double)cyan/max + (double)black/max)));
+- green = 255*round((1 - std::min(1.0, (double)magenta/max + (double)black/max)));
+- blue = 255*round((1 - std::min(1.0, (double)yellow/max + (double)black/max)));
++ red = 255* std::floor((1 - std::min(1.0, (double)cyan/max + (double)black/max) + 0.5));
++ green = 255*std::floor((1 - std::min(1.0, (double)magenta/max + (double)black/max) + 0.5));
++ blue = 255*std::floor((1 - std::min(1.0, (double)yellow/max + (double)black/max) + 0.5));
+ }
+ else if (colorModel == HLS)
+ { }
+--
+1.9.3
+
diff --git a/external/libpagemaker/UnpackedTarball_libpagemaker.mk b/external/libpagemaker/UnpackedTarball_libpagemaker.mk
index fec1c03871dd..5a66397cd2aa 100644
--- a/external/libpagemaker/UnpackedTarball_libpagemaker.mk
+++ b/external/libpagemaker/UnpackedTarball_libpagemaker.mk
@@ -11,4 +11,12 @@ $(eval $(call gb_UnpackedTarball_UnpackedTarball,libpagemaker))
$(eval $(call gb_UnpackedTarball_set_tarball,libpagemaker,$(PAGEMAKER_TARBALL)))
+$(eval $(call gb_UnpackedTarball_set_patchlevel,libpagemaker,1))
+
+$(eval $(call gb_UnpackedTarball_add_patches,libpagemaker,\
+ external/libpagemaker/0001-define-M_PI-if-not-available.patch \
+ external/libpagemaker/0002-add-missing-typedef-on-windows.patch \
+ external/libpagemaker/0003-round-is-not-available-on-windows.patch \
+))
+
# vim: set noet sw=4 ts=4: