summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2024-02-05 08:50:24 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2024-02-12 18:52:42 +0100
commitb663d94cf67a5af4fd89c1ac8bdffd6059f6bf85 (patch)
tree15f5b07139c932ca25ec68b760b020ab899337a0
parentcea0371ac77145ad1f3db7e558c279aeed6f4d00 (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>
-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 ddca2a41ca05..04745d508fc3 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 6440f1f734dc..48b325790b80 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1525,8 +1525,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,
@@ -14815,6 +14818,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
@@ -14823,16 +14827,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 2763929de360..c2ec1e3b083b 100644
--- a/solenv/gbuild/extensions/pre_MergedLibsList.mk
+++ b/solenv/gbuild/extensions/pre_MergedLibsList.mk
@@ -113,6 +113,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),)