diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2024-02-05 08:50:24 +0200 |
---|---|---|
committer | Noel Grandin <noel.grandin@collabora.co.uk> | 2024-02-12 18:52:42 +0100 |
commit | b663d94cf67a5af4fd89c1ac8bdffd6059f6bf85 (patch) | |
tree | 15f5b07139c932ca25ec68b760b020ab899337a0 | |
parent | cea0371ac77145ad1f3db7e558c279aeed6f4d00 (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.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 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),) |