summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2024-02-05 08:50:24 +0200
committerMichael Meeks <michael.meeks@collabora.com>2024-02-20 16:22:06 +0100
commite28e048ac5fd4a9463326aeab4f4dd04ca55182a (patch)
treea95092d50306238feb885288bc82bb4370a783bd
parentf8f89de7a49db563b870dbaada6f010f2f75254f (diff)
create --enable-mergelibs=more
The existing --enable-mergelibs is in use by Linux distro people, who do not want any further mergeing because they want to be able to split libreoffice up into things like nogui, calc, writer, dbaccess, etc. So this work is to enable combining even more into libmerged for platforms like Windows and macOS and COOL, where we really want everything in one big lump of code. Change-Id: I4b268864955747d9859e16ebb569debbfc32fa78 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/162999 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk> (cherry picked from commit b663d94cf67a5af4fd89c1ac8bdffd6059f6bf85) Reviewed-on: https://gerrit.libreoffice.org/c/core/+/163539 Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoffice@gmail.com> Reviewed-by: Michael Meeks <michael.meeks@collabora.com>
-rw-r--r--config_host.mk.in1
-rw-r--r--config_host/config_options.h.in2
-rw-r--r--configure.ac31
-rw-r--r--solenv/gbuild/extensions/pre_MergedLibsList.mk60
4 files changed, 87 insertions, 7 deletions
diff --git a/config_host.mk.in b/config_host.mk.in
index 8674ccc0f077..fbf388abb5f1 100644
--- a/config_host.mk.in
+++ b/config_host.mk.in
@@ -479,6 +479,7 @@ export BUNDLE_MARIADB_CONNECTOR_C=@BUNDLE_MARIADB_CONNECTOR_C@
export MDDS_CFLAGS=$(gb_SPACE)@MDDS_CFLAGS@
export MDDS_LIBS=$(gb_SPACE)@MDDS_LIBS@
export MERGELIBS=@MERGELIBS@
+export MERGELIBS_MORE=@MERGELIBS_MORE@
export ML_EXE=@ML_EXE@
export MOC5=@MOC5@
export MOC6=@MOC6@
diff --git a/config_host/config_options.h.in b/config_host/config_options.h.in
index 37f044f1b493..abce3417e45a 100644
--- a/config_host/config_options.h.in
+++ b/config_host/config_options.h.in
@@ -7,6 +7,8 @@
#define ENABLE_MERGELIBS 0
+#define ENABLE_MERGELIBS_MORE 0
+
#define ENABLE_RUNTIME_OPTIMIZATIONS 0
// Used to turn off visibility for some classes/symbols when linking with --enable-mergelibs
diff --git a/configure.ac b/configure.ac
index 5c191abaf50a..862187dac960 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1514,8 +1514,11 @@ libo_FUZZ_ARG_ENABLE(skia,
dnl ---------- *** ----------
libo_FUZZ_ARG_ENABLE(mergelibs,
- AS_HELP_STRING([--enable-mergelibs],
- [Merge several of the smaller libraries into one big, "merged", one.])
+ AS_HELP_STRING([--enable-mergelibs=yes/no/more],
+ [Merge several of the smaller libraries into one big "merged" library.
+ The "more" option will link even more of the smaller libraries.
+ "more" not appropriate for distros which split up LibreOffice into multiple packages.
+ It is only appropriate for situations where all of LO is delivered in a single install/package. ])
)
libo_FUZZ_ARG_ENABLE(breakpad,
@@ -14793,6 +14796,7 @@ AC_LANG_POP([C++])
# ===================================================================
AC_MSG_CHECKING([whether to create huge library])
MERGELIBS=
+MERGELIBS_MORE=
if test $_os = iOS -o $_os = Android; then
# Never any point in mergelibs for these as we build just static
@@ -14801,16 +14805,29 @@ if test $_os = iOS -o $_os = Android; then
fi
if test -n "$enable_mergelibs" -a "$enable_mergelibs" != "no"; then
- if test $_os != Linux -a $_os != WINNT; then
- add_warning "--enable-mergelibs is not tested for this platform"
+ if test "$enable_mergelibs" = "more"; then
+ if test $_os != Linux; then
+ add_warning "--enable-mergelibs=more is not tested for this platform"
+ fi
+ MERGELIBS="TRUE"
+ MERGELIBS_MORE="TRUE"
+ AC_MSG_RESULT([yes (more)])
+ AC_DEFINE(ENABLE_MERGELIBS)
+ elif test "$enable_mergelibs" = "yes" -o "$enable_mergelibs" = ""; then
+ if test $_os != Linux -a $_os != WINNT; then
+ add_warning "--enable-mergelibs is not tested for this platform"
+ fi
+ MERGELIBS="TRUE"
+ AC_MSG_RESULT([yes])
+ AC_DEFINE(ENABLE_MERGELIBS)
+ else
+ AC_MSG_ERROR([unknown value --enable-mergelibs=$enable_mergelibs])
fi
- MERGELIBS="TRUE"
- AC_MSG_RESULT([yes])
- AC_DEFINE(ENABLE_MERGELIBS)
else
AC_MSG_RESULT([no])
fi
AC_SUBST([MERGELIBS])
+AC_SUBST([MERGELIBS_MORE])
dnl ===================================================================
dnl icerun is a wrapper that stops us spawning tens of processes
diff --git a/solenv/gbuild/extensions/pre_MergedLibsList.mk b/solenv/gbuild/extensions/pre_MergedLibsList.mk
index 6bf0157a361b..49254737cb07 100644
--- a/solenv/gbuild/extensions/pre_MergedLibsList.mk
+++ b/solenv/gbuild/extensions/pre_MergedLibsList.mk
@@ -106,6 +106,66 @@ gb_MERGE_LIBRARY_LIST := \
xsltfilter \
xstor \
+# if we have --enable-mergelibs=more
+ifneq ($(MERGELIBS_MORE),)
+
+gb_MERGE_LIBRARY_LIST += \
+ analysis \
+ animcore \
+ $(call gb_Helper_optional,AVMEDIA, \
+ $(if $(filter MACOSX,$(OS)),\
+ avmediaMacAVF \
+ ) \
+ ) \
+ bib \
+ cached1 \
+ $(if $(ENABLE_CAIRO_CANVAS),cairocanvas) \
+ date \
+ $(call gb_Helper_optional,DBCONNECTIVITY,dbpool2) \
+ dlgprov \
+ $(if $(filter WNT,$(OS)), \
+ fps \
+ ) \
+ $(if $(filter MACOSX,$(OS)),\
+ fps_aqua \
+ ) \
+ graphicfilter \
+ hwp \
+ $(if $(filter WNT,$(OS)), \
+ inprocserv \
+ ) \
+ log \
+ $(if $(ENABLE_LWP),lwpft) \
+ msforms \
+ $(if $(filter WNT,$(OS)), \
+ oleautobridge \
+ ) \
+ pdffilter \
+ pricing \
+ $(call gb_Helper_optional,SCRIPTING,protocolhandler) \
+ $(call gb_Helper_optional,SCRIPTING,scriptframe) \
+ slideshow \
+ $(if $(filter WNT,$(OS)), \
+ smplmail \
+ ) \
+ storagefd \
+ svgfilter \
+ t602filter \
+ textconversiondlgs \
+ $(if $(filter WNT,$(OS)), \
+ UAccCOM \
+ ) \
+ $(call gb_Helper_optional,XMLHELP,ucpchelp1) \
+ $(if $(ENABLE_LIBCMIS),ucpcmis1) \
+ $(if $(WITH_WEBDAV),ucpdav1) \
+ ucppkg1 \
+ $(if $(filter WNT,$(OS)), \
+ wininetbe1 \
+ ) \
+ writerperfect \
+ xmlsecurity \
+
+endif
# allow module-deps.pl to color based on this.
ifneq ($(ENABLE_PRINT_DEPS),)