configure.ac                                    |    8 ++
 external/libassuan/ExternalProject_libassuan.mk |   16 ++++
 external/libassuan/UnpackedTarball_libassuan.mk |    1 
 external/libassuan/w32-build-fixes.patch.1      |   77 ++++++++++++++++++++++++
 4 files changed, 101 insertions(+), 1 deletion(-)

New commits:
commit 5f981d30e2f186ab6b7fc925832b6eb1ae658308
Author: David Ostrovsky <da...@ostrovsky.org>
Date:   Sun Sep 24 10:28:05 2017 +0200

    gpg4libre: build libassuan natively on windows
    
    Change-Id: Id374ebc5ed70a1b4313dc74461524ac2b864b114
    Reviewed-on: https://gerrit.libreoffice.org/42745
    Reviewed-by: Siegmund Gorr <siegmund.g...@cib.de>
    Reviewed-by: Thorsten Behrens <thorsten.behr...@cib.de>
    Tested-by: Thorsten Behrens <thorsten.behr...@cib.de>

diff --git a/configure.ac b/configure.ac
index fe5731470d2e..dacb5ee98ffe 100644
--- a/configure.ac
+++ b/configure.ac
@@ -10160,7 +10160,13 @@ if test "$_os" = "Linux" -o "$_os" = "Darwin"; then
         LIBASSUAN_LIBS="-L${WORKDIR}/UnpackedTarball/libassuan/src/.libs 
-lassuan"
     fi
 else
-    BUILD_TYPE="$BUILD_TYPE LIBGPGERROR"
+    # TODO(davido): Windows build must be protected with a configure option
+    # unless CI doesn't support libtool with windres with gcc preprocessor
+    BUILD_TYPE="$BUILD_TYPE LIBASSUAN LIBGPGERROR"
+    GPG_ERROR_CFLAGS="-I${WORKDIR}/UnpackedTarball/libgpg-error/src"
+    GPG_ERROR_LIBS="-L${WORKDIR}/UnpackedTarball/libgpg-error/src/.libs 
-lgpg-error"
+    LIBASSUAN_CFLAGS="-I${WORKDIR}/UnpackedTarball/libassuan/src"
+    LIBASSUAN_LIBS="-L${WORKDIR}/UnpackedTarball/libassuan/src/.libs -lassuan"
 fi
 AC_SUBST(SYSTEM_GPGMEPP)
 AC_SUBST(GPG_ERROR_CFLAGS)
diff --git a/external/libassuan/ExternalProject_libassuan.mk 
b/external/libassuan/ExternalProject_libassuan.mk
index bcfc08a82cca..e796f16bf017 100644
--- a/external/libassuan/ExternalProject_libassuan.mk
+++ b/external/libassuan/ExternalProject_libassuan.mk
@@ -19,6 +19,21 @@ $(eval $(call gb_ExternalProject_use_externals,libassuan,\
        libgpg-error \
 ))
 
+ifeq ($(COM),MSC)
+$(call gb_ExternalProject_get_state_target,libassuan,build):
+       $(call gb_ExternalProject_run,build,\
+               autoreconf \
+               && ./configure \
+               --enable-static \
+               --disable-shared \
+               CXXFLAGS="$(CXXFLAGS)" \
+               GPG_ERROR_CFLAGS="$(GPG_ERROR_CFLAGS)" \
+               GPG_ERROR_LIBS="$(GPG_ERROR_LIBS)" \
+               --host=$(if $(filter 
INTEL,$(CPUNAME)),i686-mingw32,x86_64-w64-mingw32) \
+         && $(MAKE) \
+       )
+
+else
 $(call gb_ExternalProject_get_state_target,libassuan,build):
        $(call gb_ExternalProject_run,build,\
                autoreconf \
@@ -32,4 +47,5 @@ $(call gb_ExternalProject_get_state_target,libassuan,build):
          && $(MAKE) \
        )
 
+endif
 # vim: set noet sw=4 ts=4:
diff --git a/external/libassuan/UnpackedTarball_libassuan.mk 
b/external/libassuan/UnpackedTarball_libassuan.mk
index 924d610bf9c9..f23608eb6a6c 100644
--- a/external/libassuan/UnpackedTarball_libassuan.mk
+++ b/external/libassuan/UnpackedTarball_libassuan.mk
@@ -16,6 +16,7 @@ $(eval $(call gb_UnpackedTarball_set_patchlevel,libassuan,0))
 $(eval $(call gb_UnpackedTarball_add_patches,libassuan, \
     external/libassuan/find-libgpg-error.patch \
     external/libassuan/fix-autoconf-macros.patch \
+    $(if $(filter MSC,$(COM)),external/libassuan/w32-build-fixes.patch.1) \
 ))
 
 # vim: set noet sw=4 ts=4:
diff --git a/external/libassuan/w32-build-fixes.patch.1 
b/external/libassuan/w32-build-fixes.patch.1
new file mode 100755
index 000000000000..c9250c4e5573
--- /dev/null
+++ b/external/libassuan/w32-build-fixes.patch.1
@@ -0,0 +1,77 @@
+--- libassuan.orig/src/Makefile.in     2017-09-15 08:16:41.601057500 +0200
++++ libassuan/src/Makefile.in  2017-09-24 13:01:24.950711300 +0200
+@@ -424,7 +424,7 @@
+ nodist_include_HEADERS = assuan.h
+ @HAVE_LD_VERSION_SCRIPT_FALSE@libassuan_version_script_cmd = 
+ @HAVE_LD_VERSION_SCRIPT_TRUE@libassuan_version_script_cmd = 
-Wl,--version-script=$(srcdir)/libassuan.vers
+-CLEANFILES = mkheader assuan.h
++CLEANFILES = mkheader$(EXEEXT) assuan.h
+ BUILT_SOURCES = assuan.h
+ parts_of_assuan_h = \
+       posix-includes.inc.h   w32-includes.inc.h \
+@@ -1183,10 +1183,10 @@
+ @HAVE_W32CE_SYSTEM_TRUE@      mv -f $(DESTDIR)$(bindir)/libgpgcedev-0.dll \
+ @HAVE_W32CE_SYSTEM_TRUE@              $(DESTDIR)$(bindir)/gpgcedev.dll
+ 
+-mkheader: mkheader.c Makefile
++mkheader$(EXEEXT): mkheader.c Makefile
+       $(CC_FOR_BUILD) -I. -I$(srcdir) -o $@ $(srcdir)/mkheader.c
+ 
+-assuan.h: assuan.h.in mkheader $(parts_of_assuan_h)
++assuan.h: assuan.h.in mkheader$(EXEEXT) $(parts_of_assuan_h)
+       ./mkheader $(host_os) $(srcdir)/assuan.h.in \
+                    @VERSION@ @VERSION_NUMBER@ >$@
+ 
+--- libassuan.orig/src/mkheader.c      2013-03-15 20:26:09.000000000 +0100
++++ libassuan/src/mkheader.c   2017-09-24 14:17:33.584583300 +0200
+@@ -99,7 +99,7 @@
+                "# include <unistd.h>\n"
+                "#endif\n", stdout);
+       else
+-        fputs ("#include <unistd.h>\n", stdout);
++        fputs ("#include <io.h>\n", stdout);
+     }
+   else if (!strcmp (tag, "include:types"))
+     {
+diff -ru libassuan.orig/src/Makefile.am libassuan/src/Makefile.am
+--- libassuan.orig/src/Makefile.am     2017-09-24 14:20:05.906065400 +0200
++++ libassuan/src/Makefile.am  2017-09-24 14:40:59.038850200 +0200
+@@ -142,11 +142,11 @@
+               $(DESTDIR)$(bindir)/gpgcedev.dll
+ endif
+ 
+-mkheader: mkheader.c Makefile
++mkheader$(EXEEXT): mkheader.c Makefile
+       $(CC_FOR_BUILD) -I. -I$(srcdir) -o $@ $(srcdir)/mkheader.c
+ 
+-assuan.h: assuan.h.in mkheader $(parts_of_assuan_h)
+-      ./mkheader $(host_os) $(srcdir)/assuan.h.in \
++assuan.h: assuan.h.in mkheader$(EXEEXT) $(parts_of_assuan_h)
++      ./mkheader$(EXEEXT) $(host_os) $(srcdir)/assuan.h.in \
+                    @VERSION@ @VERSION_NUMBER@ >$@
+ 
+ 
+diff -ru libassuan.orig/src/assuan-handler.c libassuan/src/assuan-handler.c
+--- libassuan.orig/src/assuan-handler.c 2016-06-25 16:27:49.000000000 +0200
++++ libassuan/src/assuan-handler.c      2017-09-24 15:32:51.200956200 +0200
+@@ -395,7 +395,7 @@
+
+   { "INPUT",  std_handler_input, std_help_input, 0 },
+   { "OUTPUT", std_handler_output, std_help_output, 0 },
+-  { } };
++};
+
+
+ /**
+diff -ru libassuan.orig/Makefile.am libassuan/Makefile.am
+--- libassuan.orig/Makefile.am 2016-07-14 10:09:22.000000000 +0200
++++ libassuan/Makefile.am      2017-09-25 21:20:19.928317500 +0200
+@@ -28,7 +28,7 @@
+              tests/ChangeLog-2011 contrib/ChangeLog-2011              \
+              build-aux/git-log-footer build-aux/git-log-fix
+ 
+-SUBDIRS = m4 src doc tests
++SUBDIRS = m4 src doc
+ 
+ 
+ dist-hook: gen-ChangeLog
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to