From 28868c7f14d97453885d0cc9508bc5108b957b99 Mon Sep 17 00:00:00 2001 From: Remi Collet Date: Mon, 16 Sep 2019 12:25:49 +0200 Subject: - build with system libxlsxio using patch from https://github.com/viest/php-ext-excel-export/pull/165 --- 165.patch | 137 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 137 insertions(+) create mode 100644 165.patch (limited to '165.patch') diff --git a/165.patch b/165.patch new file mode 100644 index 0000000..49f98da --- /dev/null +++ b/165.patch @@ -0,0 +1,137 @@ +From 8139123b63f5a7885466e5450aba502f77a9a592 Mon Sep 17 00:00:00 2001 +From: Remi Collet +Date: Mon, 16 Sep 2019 12:04:08 +0200 +Subject: [PATCH 1/2] allow to build with system libxlsxio + +--- + config.m4 | 61 ++++++++++++++++++++++++++++++++++++++++++------------- + 1 file changed, 47 insertions(+), 14 deletions(-) + +diff --git a/config.m4 b/config.m4 +index 2c5f9be..f3fb280 100644 +--- a/config.m4 ++++ b/config.m4 +@@ -1,8 +1,11 @@ + PHP_ARG_WITH(xlswriter, xlswriter support, +-[ --with-xlswriter Include xlswriter support], yes) ++[ --with-xlswriter Include xlswriter support], yes) + +-PHP_ARG_WITH(libxlsxwriter, system libxlsswriter, +-[ --with-libxlsxwriter=DIR Use system library], no, no) ++PHP_ARG_WITH(libxlsxwriter, system libxlsxwriter, ++[ --with-libxlsxwriter=DIR Use system libxlsxwriter], no, no) ++ ++PHP_ARG_WITH(libxlsxio, system libxlsxio, ++[ --with-libxlsxio=DIR Use system libxlsxio], no, no) + + PHP_ARG_ENABLE(reader, enable xlsx reader support, + [ --enable-reader Enable xlsx reader?], no, no) +@@ -135,22 +138,52 @@ if test "$PHP_XLSWRITER" != "no"; then + fi + + if test "$PHP_READER" = "yes"; then +- xls_writer_sources="$xls_writer_sources $xls_read_sources" ++ AC_MSG_CHECKING([Check libxlsxwriter library]) ++ if test "$PHP_LIBXLSXIO" != "no"; then ++ ++ for i in $PHP_LIBXLSXIO /usr/local /usr; do ++ if test -r $i/include/xlsxio_read.h; then ++ XLSXIO_DIR=$i ++ AC_MSG_RESULT([found in $i]) ++ break ++ fi ++ done ++ ++ if test -z "$XLSXIO_DIR"; then ++ AC_MSG_ERROR([libxlsxio library not found]) ++ else ++ PHP_ADD_INCLUDE($XLSXIO_DIR/include) ++ PHP_CHECK_LIBRARY(xlsxio_read, xlsxioread_sheet_open, ++ [ ++ PHP_ADD_LIBRARY_WITH_PATH(xlsxio_read, $i/$PHP_LIBDIR, XLSWRITER_SHARED_LIBADD) ++ ],[ ++ AC_MSG_ERROR([Wrong libxlsxio version or library not found]) ++ ],[ ++ -L$XLSXWRITER_DIR/$PHP_LIBDIR -lm ++ ]) ++ fi + +- AC_DEFINE(ENABLE_READER, 1, [enable reader]) ++ AC_DEFINE(HAVE_LIBXLSXIO, 1, [ use system libxlsxwriter ]) ++ else ++ AC_MSG_RESULT([use the bundled library]) + +- xls_writer_sources="$xls_writer_sources $libexpat" +- PHP_ADD_INCLUDE([$srcdir/library/libexpat/expat/lib]) +- PHP_ADD_BUILD_DIR([$abs_builddir/library/libexpat/expat/lib]) +- LIBOPT="$LIBOPT -DXML_POOR_ENTROPY" ++ xls_writer_sources="$xls_writer_sources $libexpat" ++ PHP_ADD_INCLUDE([$srcdir/library/libexpat/expat/lib]) ++ PHP_ADD_BUILD_DIR([$abs_builddir/library/libexpat/expat/lib]) ++ LIBOPT="$LIBOPT -DXML_POOR_ENTROPY" + +- xls_writer_sources="$xls_writer_sources $libxlsxio" +- PHP_ADD_INCLUDE([$srcdir/library/libxlsxio/include]) +- PHP_ADD_BUILD_DIR([$abs_builddir/library/libxlsxio/lib]) +- LIBOPT="$LIBOPT -DUSE_MINIZIP" ++ xls_writer_sources="$xls_writer_sources $libxlsxio" ++ PHP_ADD_INCLUDE([$srcdir/library/libxlsxio/include]) ++ PHP_ADD_BUILD_DIR([$abs_builddir/library/libxlsxio/lib]) ++ LIBOPT="$LIBOPT -DUSE_MINIZIP" ++ ++ fi ++ ++ xls_writer_sources="$xls_writer_sources $xls_read_sources" ++ AC_DEFINE(ENABLE_READER, 1, [enable reader]) + fi + +- if test "$PHP_READER" = "yes" || test "$PHP_LIBXLSXWRITER" = "no"; then ++ if test "$PHP_LIBXLSXIO" = "no" || test "$PHP_LIBXLSXWRITER" = "no"; then + xls_writer_sources="$xls_writer_sources $minizip_sources" + fi + + +From feb5b1a4c963d06ee70ab3eb74401160ccc201e1 Mon Sep 17 00:00:00 2001 +From: Remi Collet +Date: Mon, 16 Sep 2019 12:04:21 +0200 +Subject: [PATCH 2/2] report libxlsxio in phpinfo + +--- + xlswriter.c | 17 +++++++++++++++++ + 1 file changed, 17 insertions(+) + +diff --git a/xlswriter.c b/xlswriter.c +index 8faa7f6..7b223c3 100644 +--- a/xlswriter.c ++++ b/xlswriter.c +@@ -18,6 +18,11 @@ + #include "ext/standard/info.h" + #include "xlswriter.h" + ++#if ENABLE_READER ++#include ++#include ++#endif ++ + int le_xls_writer; + + /* {{{ PHP_MINIT_FUNCTION +@@ -85,6 +90,18 @@ PHP_MINFO_FUNCTION(xlswriter) + php_info_print_table_row(2, "bundled libxlsxwriter version", LXW_VERSION); + #endif + #endif ++ ++#if ENABLE_READER ++#if HAVE_LIBXLSXIO ++ /* Build time */ ++ php_info_print_table_row(2, "libxlsxio headers version", XLSXIO_VERSION_STRING); ++ /* Run time */ ++ php_info_print_table_row(2, "libxlsxio library version", xlsxioread_get_version_string()); ++#else ++ php_info_print_table_row(2, "bundled libxlsxio version", XLSXIO_VERSION_STRING); ++#endif ++#endif ++ + php_info_print_table_end(); + } + /* }}} */ -- cgit