summaryrefslogtreecommitdiffstats
path: root/external/libvisio
diff options
context:
space:
mode:
Diffstat (limited to 'external/libvisio')
-rw-r--r--external/libvisio/ExternalProject_libvisio.mk47
-rw-r--r--external/libvisio/Makefile7
-rw-r--r--external/libvisio/Module_libvisio.mk17
-rw-r--r--external/libvisio/README3
-rw-r--r--external/libvisio/UnpackedTarball_libvisio.mk22
-rw-r--r--external/libvisio/ubsan.patch11
6 files changed, 107 insertions, 0 deletions
diff --git a/external/libvisio/ExternalProject_libvisio.mk b/external/libvisio/ExternalProject_libvisio.mk
new file mode 100644
index 000000000..0911fcd87
--- /dev/null
+++ b/external/libvisio/ExternalProject_libvisio.mk
@@ -0,0 +1,47 @@
+# -*- 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,libvisio))
+
+$(eval $(call gb_ExternalProject_use_autoconf,libvisio,build))
+
+$(eval $(call gb_ExternalProject_register_targets,libvisio,\
+ build \
+))
+
+$(eval $(call gb_ExternalProject_use_externals,libvisio,\
+ boost_headers \
+ icu \
+ libxml2 \
+ revenge \
+))
+
+$(call gb_ExternalProject_get_state_target,libvisio,build) :
+ $(call gb_Trace_StartRange,libvisio,EXTERNAL)
+ $(call gb_ExternalProject_run,build,\
+ export PKG_CONFIG="" \
+ && MAKE=$(MAKE) ./configure \
+ --with-pic \
+ --enable-static \
+ --disable-shared \
+ --without-docs \
+ --disable-tests \
+ --disable-tools \
+ $(if $(ENABLE_DEBUG),--enable-debug,--disable-debug) \
+ --disable-werror \
+ $(if $(verbose),--disable-silent-rules,--enable-silent-rules) \
+ $(if $(gb_FULLDEPS),,--disable-dependency-tracking) \
+ CXXFLAGS="$(gb_CXXFLAGS) $(if $(ENABLE_OPTIMIZED),$(gb_COMPILEROPTFLAGS),$(gb_COMPILERNOOPTFLAGS))" \
+ CPPFLAGS="$(CPPFLAGS) $(BOOST_CPPFLAGS)" \
+ $(if $(CROSS_COMPILING),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)) \
+ && $(MAKE) \
+ )
+ $(call gb_Trace_EndRange,libvisio,EXTERNAL)
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/libvisio/Makefile b/external/libvisio/Makefile
new file mode 100644
index 000000000..e4968cf85
--- /dev/null
+++ b/external/libvisio/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/libvisio/Module_libvisio.mk b/external/libvisio/Module_libvisio.mk
new file mode 100644
index 000000000..00b05d25d
--- /dev/null
+++ b/external/libvisio/Module_libvisio.mk
@@ -0,0 +1,17 @@
+# -*- 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,libvisio))
+
+$(eval $(call gb_Module_add_targets,libvisio,\
+ ExternalProject_libvisio \
+ UnpackedTarball_libvisio \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/libvisio/README b/external/libvisio/README
new file mode 100644
index 000000000..d3ddc6c9b
--- /dev/null
+++ b/external/libvisio/README
@@ -0,0 +1,3 @@
+Libvisio is library providing ability to interpret and import visio diagrams into various applications.
+
+[https://wiki.documentfoundation.org/DLP/Libraries/libvisio]
diff --git a/external/libvisio/UnpackedTarball_libvisio.mk b/external/libvisio/UnpackedTarball_libvisio.mk
new file mode 100644
index 000000000..e19878740
--- /dev/null
+++ b/external/libvisio/UnpackedTarball_libvisio.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_UnpackedTarball_UnpackedTarball,libvisio))
+
+$(eval $(call gb_UnpackedTarball_set_tarball,libvisio,$(VISIO_TARBALL)))
+
+$(eval $(call gb_UnpackedTarball_set_patchlevel,libvisio,0))
+
+$(eval $(call gb_UnpackedTarball_update_autoconf_configs,libvisio))
+
+$(eval $(call gb_UnpackedTarball_add_patches,libvisio, \
+ external/libvisio/ubsan.patch \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/libvisio/ubsan.patch b/external/libvisio/ubsan.patch
new file mode 100644
index 000000000..c9ffbd98f
--- /dev/null
+++ b/external/libvisio/ubsan.patch
@@ -0,0 +1,11 @@
+--- src/lib/VSDContentCollector.cpp
++++ src/lib/VSDContentCollector.cpp
+@@ -3220,7 +3220,7 @@
+ }
+ if (U_SUCCESS(status) && conv)
+ {
+- const auto *src = (const char *)&characters[0];
++ const auto *src = (const char *)characters.data();
+ const char *srcLimit = (const char *)src + characters.size();
+ while (src < srcLimit)
+ {