[Libreoffice-commits] core.git: config_host.mk.in configure.ac download.lst external/libepubgen external/Module_external.mk Makefile.fetch RepositoryExternal.mk

Miklos Vajna vmiklos at collabora.co.uk
Wed Aug 2 15:20:46 UTC 2017


 Makefile.fetch                                    |    1 
 RepositoryExternal.mk                             |   31 ++++++++++++++
 config_host.mk.in                                 |    3 +
 configure.ac                                      |    2 
 download.lst                                      |    2 
 external/Module_external.mk                       |    1 
 external/libepubgen/ExternalProject_libepubgen.mk |   39 ++++++++++++++++++
 external/libepubgen/Makefile                      |    7 +++
 external/libepubgen/Module_libepubgen.mk          |   17 ++++++++
 external/libepubgen/README                        |    3 +
 external/libepubgen/UnpackedTarball_libepubgen.mk |   22 ++++++++++
 external/libepubgen/libepubgen-vc.patch.1         |   46 ++++++++++++++++++++++
 12 files changed, 174 insertions(+)

New commits:
commit 3f16306964d5bb81dda3c681bcabbacadf424e7b
Author: Miklos Vajna <vmiklos at collabora.co.uk>
Date:   Wed Aug 2 16:29:48 2017 +0200

    external: bundle libepubgen
    
    And backport a post-release fix that fixes the Windows build.
    
    EPUBExportFilter in writerperfect will want to use this.
    
    Change-Id: I020cd2abfd0daa731f4079320b18a6d857874278
    Reviewed-on: https://gerrit.libreoffice.org/40679
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Miklos Vajna <vmiklos at collabora.co.uk>

diff --git a/Makefile.fetch b/Makefile.fetch
index 24b9d965d246..e93af0bb5e48 100644
--- a/Makefile.fetch
+++ b/Makefile.fetch
@@ -120,6 +120,7 @@ $(WORKDIR)/download: $(BUILDDIR)/config_$(gb_Side).mk $(SRCDIR)/download.lst $(S
 		$(call fetch_Optional,CURL,CURL_TARBALL) \
 		$(call fetch_Optional,EBOOK,EBOOK_TARBALL) \
 		$(call fetch_Optional,EPM,EPM_TARBALL) \
+		$(call fetch_Optional,EPUBGEN,EPUBGEN_TARBALL) \
 		$(call fetch_Optional,ETONYEK,ETONYEK_TARBALL) \
 		$(call fetch_Optional,EXPAT,EXPAT_TARBALL) \
 		$(call fetch_Optional,FIREBIRD,FIREBIRD_TARBALL) \
diff --git a/RepositoryExternal.mk b/RepositoryExternal.mk
index 2cd7d824fabb..44a89738fb74 100644
--- a/RepositoryExternal.mk
+++ b/RepositoryExternal.mk
@@ -1799,6 +1799,37 @@ endif
 
 endif # SYSTEM_ODFGEN
 
+ifneq ($(SYSTEM_EPUBGEN),)
+
+define gb_LinkTarget__use_epubgen
+$(call gb_LinkTarget_set_include,$(1),\
+	$$(INCLUDE) \
+    $(EPUBGEN_CFLAGS) \
+)
+$(call gb_LinkTarget_add_libs,$(1),$(EPUBGEN_LIBS))
+
+endef
+gb_ExternalProject__use_epubgen :=
+
+else # !SYSTEM_EPUBGEN
+
+define gb_LinkTarget__use_epubgen
+$(call gb_LinkTarget_set_include,$(1),\
+	-I$(call gb_UnpackedTarball_get_dir,libepubgen)/inc \
+	$$(INCLUDE) \
+)
+$(call gb_LinkTarget_add_libs,$(1),\
+	$(call gb_UnpackedTarball_get_dir,libepubgen)/src/lib/.libs/libepubgen-0.0$(gb_StaticLibrary_PLAINEXT) \
+)
+$(call gb_LinkTarget_use_external_project,$(1),libepubgen)
+
+endef
+define gb_ExternalProject__use_epubgen
+$(call gb_ExternalProject_use_external_project,$(1),libepubgen)
+
+endef
+
+endif # SYSTEM_EPUBGEN
 
 ifneq ($(SYSTEM_REVENGE),)
 
diff --git a/config_host.mk.in b/config_host.mk.in
index 674db3cd98aa..75298b966716 100644
--- a/config_host.mk.in
+++ b/config_host.mk.in
@@ -173,6 +173,8 @@ export ENABLE_VLC=@ENABLE_VLC@
 export ENABLE_WERROR=@ENABLE_WERROR@
 export EPM=@EPM@
 export EPM_FLAGS=@EPM_FLAGS@
+export EPUBGEN_CFLAGS=$(gb_SPACE)@EPUBGEN_CFLAGS@
+export EPUBGEN_LIBS=$(gb_SPACE)@EPUBGEN_LIBS@
 export ETONYEK_CFLAGS=$(gb_SPACE)@ETONYEK_CFLAGS@
 export ETONYEK_LIBS=$(gb_SPACE)@ETONYEK_LIBS@
 export debug=@ENABLE_DEBUG@
@@ -519,6 +521,7 @@ export SYSTEM_CDR=@SYSTEM_CDR@
 export SYSTEM_CMIS=@SYSTEM_CMIS@
 export SYSTEM_EBOOK=@SYSTEM_EBOOK@
 export SYSTEM_ETONYEK=@SYSTEM_ETONYEK@
+export SYSTEM_EPUBGEN=@SYSTEM_EPUBGEN@
 export SYSTEM_FREEHAND=@SYSTEM_FREEHAND@
 export SYSTEM_LIBATOMIC_OPS=@SYSTEM_LIBATOMIC_OPS@
 export SYSTEM_LIBEOT=@SYSTEM_LIBEOT@
diff --git a/configure.ac b/configure.ac
index 962cc2591733..c925914405fc 100644
--- a/configure.ac
+++ b/configure.ac
@@ -7714,6 +7714,8 @@ libo_CHECK_SYSTEM_MODULE([librevenge],[REVENGE],[librevenge-0.0 >= 0.0.1],["-I${
 
 libo_CHECK_SYSTEM_MODULE([libodfgen],[ODFGEN],[libodfgen-0.1])
 
+libo_CHECK_SYSTEM_MODULE([libepubgen],[EPUBGEN],[libepubgen-0.0])
+
 AS_IF([test "$COM" = "MSC"],
       [libwpd_libdir="${WORKDIR}/LinkTarget/Library"],
       [libwpd_libdir="${WORKDIR}/UnpackedTarball/libwpd/src/lib/.libs"]
diff --git a/download.lst b/download.lst
index 14495cbadc1e..fd1e93d9a238 100644
--- a/download.lst
+++ b/download.lst
@@ -38,6 +38,8 @@ export EPOXY_SHA256SUM := 1d8668b0a259c709899e1c4bab62d756d9002d546ce4f59c9665e2
 export EPOXY_TARBALL := libepoxy-1.3.1.tar.bz2
 export EPM_SHA256SUM := b3fc4c5445de6c9a801504a3ea3efb2d4ea9d5a622c9427e716736e7713ddb91
 export EPM_TARBALL := 3ade8cfe7e59ca8e65052644fed9fca4-epm-3.7.tar.gz
+export EPUBGEN_SHA256SUM := eea910b042526ed52f7ab9292b7fa31fca32f9e042285818074ff33664db4fa2
+export EPUBGEN_TARBALL := libepubgen-0.0.1.tar.bz2
 export ETONYEK_SHA256SUM := 032f53e8d7691e48a73ddbe74fa84c906ff6ff32a33e6ee2a935b6fdb6aecb78
 export ETONYEK_VERSION_MICRO := 6
 export ETONYEK_TARBALL := libetonyek-0.1.$(ETONYEK_VERSION_MICRO).tar.bz2
diff --git a/external/Module_external.mk b/external/Module_external.mk
index 2f5373535f78..6a3ed4c2c3ba 100644
--- a/external/Module_external.mk
+++ b/external/Module_external.mk
@@ -35,6 +35,7 @@ $(eval $(call gb_Module_add_moduledirs,external,\
 	$(call gb_Helper_optional,EBOOK,libebook) \
 	$(call gb_Helper_optional,EPM,epm) \
 	$(call gb_Helper_optional,EPOXY,epoxy) \
+	$(call gb_Helper_optional,EPUBGEN,libepubgen) \
 	$(call gb_Helper_optional,ETONYEK,libetonyek) \
 	$(call gb_Helper_optional,EXPAT,expat) \
 	$(call gb_Helper_optional,FIREBIRD,firebird) \
diff --git a/external/libepubgen/ExternalProject_libepubgen.mk b/external/libepubgen/ExternalProject_libepubgen.mk
new file mode 100644
index 000000000000..70a16af147eb
--- /dev/null
+++ b/external/libepubgen/ExternalProject_libepubgen.mk
@@ -0,0 +1,39 @@
+# -*- 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,libepubgen))
+
+$(eval $(call gb_ExternalProject_use_autoconf,libepubgen,build))
+
+$(eval $(call gb_ExternalProject_register_targets,libepubgen,\
+	build \
+))
+
+$(eval $(call gb_ExternalProject_use_externals,libepubgen,\
+	boost_headers \
+	revenge \
+))
+
+$(call gb_ExternalProject_get_state_target,libepubgen,build) :
+	$(call gb_ExternalProject_run,build,\
+		export PKG_CONFIG="" \
+		&& MAKE=$(MAKE) ./configure \
+			--with-pic \
+			--enable-static \
+			--disable-shared \
+			--without-docs \
+			--disable-debug \
+			--disable-werror \
+			$(if $(verbose),--disable-silent-rules,--enable-silent-rules) \
+			CXXFLAGS="$(CXXFLAGS) $(BOOST_CPPFLAGS)" \
+			$(if $(CROSS_COMPILING),--build=$(BUILD_PLATFORM) --host=$(HOST_PLATFORM)) \
+		&& $(MAKE) \
+	)
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/libepubgen/Makefile b/external/libepubgen/Makefile
new file mode 100644
index 000000000000..e4968cf85fb6
--- /dev/null
+++ b/external/libepubgen/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/libepubgen/Module_libepubgen.mk b/external/libepubgen/Module_libepubgen.mk
new file mode 100644
index 000000000000..a0ed770be8f8
--- /dev/null
+++ b/external/libepubgen/Module_libepubgen.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,libepubgen))
+
+$(eval $(call gb_Module_add_targets,libepubgen,\
+	ExternalProject_libepubgen \
+	UnpackedTarball_libepubgen \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/libepubgen/README b/external/libepubgen/README
new file mode 100644
index 000000000000..4d1dca7f8912
--- /dev/null
+++ b/external/libepubgen/README
@@ -0,0 +1,3 @@
+An EPUB generator library for librevenge from
+
+[https://sourceforge.net/projects/libepubgen/]
diff --git a/external/libepubgen/UnpackedTarball_libepubgen.mk b/external/libepubgen/UnpackedTarball_libepubgen.mk
new file mode 100644
index 000000000000..cd4ec7d56e83
--- /dev/null
+++ b/external/libepubgen/UnpackedTarball_libepubgen.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/.
+#
+
+epubgen_patches :=
+# Backport of <https://sourceforge.net/p/libepubgen/code/ci/49f6461d4751d3b16e32ab8f9c93a3856b33be49/>.
+epubgen_patches += libepubgen-vc.patch.1
+
+$(eval $(call gb_UnpackedTarball_UnpackedTarball,libepubgen))
+
+$(eval $(call gb_UnpackedTarball_set_tarball,libepubgen,$(EPUBGEN_TARBALL)))
+
+$(eval $(call gb_UnpackedTarball_add_patches,libepubgen,\
+	$(foreach patch,$(epubgen_patches),external/libepubgen/$(patch)) \
+))
+
+# vim: set noet sw=4 ts=4:
diff --git a/external/libepubgen/libepubgen-vc.patch.1 b/external/libepubgen/libepubgen-vc.patch.1
new file mode 100644
index 000000000000..d14b122f9575
--- /dev/null
+++ b/external/libepubgen/libepubgen-vc.patch.1
@@ -0,0 +1,46 @@
+From 49f6461d4751d3b16e32ab8f9c93a3856b33be49 Mon Sep 17 00:00:00 2001
+From: Miklos Vajna <vmiklos at collabora.co.uk>
+Date: Wed, 2 Aug 2017 14:53:36 +0200
+Subject: [PATCH] m4: MSVC defines __cplusplus as 199711L still
+
+See e.g.
+<https://stackoverflow.com/questions/37503029/cplusplus-is-equal-to-199711-in-msvc-does-it-support-c11>,
+on MSVC we can't depend on the value of __cplusplus, since that one is a
+too low value, even if everything else works fine.
+---
+ m4/ax_cxx_compile_stdcxx.m4 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff -Naur a/configure b/configure
+--- a/configure	2017-08-02 14:50:09.000000000 +0200
++++ b/configure	2017-08-02 14:50:57.000000000 +0200
+@@ -16001,7 +16001,7 @@
+ 
+ #error "This is not a C++ compiler"
+ 
+-#elif __cplusplus < 201103L
++#elif __cplusplus < 201103L && !(defined _MSC_VER)
+ 
+ #error "This is not a C++11 compiler"
+ 
+@@ -16314,7 +16314,7 @@
+ 
+ #error "This is not a C++ compiler"
+ 
+-#elif __cplusplus < 201103L
++#elif __cplusplus < 201103L && !(defined _MSC_VER)
+ 
+ #error "This is not a C++11 compiler"
+ 
+@@ -16636,7 +16636,7 @@
+ 
+ #error "This is not a C++ compiler"
+ 
+-#elif __cplusplus < 201103L
++#elif __cplusplus < 201103L && !(defined _MSC_VER)
+ 
+ #error "This is not a C++11 compiler"
+ 
+-- 
+2.12.3
+


More information about the Libreoffice-commits mailing list