diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2024-02-05 08:50:24 +0200 |
---|---|---|
committer | Michael Meeks <michael.meeks@collabora.com> | 2024-02-20 16:22:06 +0100 |
commit | e28e048ac5fd4a9463326aeab4f4dd04ca55182a (patch) | |
tree | a95092d50306238feb885288bc82bb4370a783bd | |
parent | f8f89de7a49db563b870dbaada6f010f2f75254f (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.in | 1 | ||||
-rw-r--r-- | config_host/config_options.h.in | 2 | ||||
-rw-r--r-- | configure.ac | 31 | ||||
-rw-r--r-- | solenv/gbuild/extensions/pre_MergedLibsList.mk | 60 |
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),) |