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>
This commit is contained in:
Noel Grandin
2024-02-12 18:52:42 +01:00
parent cea0371ac7
commit b663d94cf6
4 changed files with 87 additions and 7 deletions
+1
View File
@@ -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@
+2
View File
@@ -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
+24 -7
View File
@@ -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
@@ -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),)